スクラム開発をLEGOで体験してみた #スクラム

みなさん、スクラム開発をやっていますか？

「難しそう。。」
「ガイドが抽象的過ぎて分からない。。」

なんて思っていませんか？

そんなあなたに朗報です。

**LEGOブロックを使って、楽しくスクラム開発を学びましょう！！**

というわけで、LEGOブロックを使ってスクラム開発ワークショップを体験してきました。今回は、そのことについて書きます。

#### 参加動機

- 仕事でスクラム開発を経験して3か月が経過し、他ではどうやっているのか気になった
- ワークショップ形式なので学びが深そう
- LEGOが好きだから

#### 参加のきっかけ

connpassからのイベント案内で知りました。

#### 勉強会の情報

公式はこちらです。
https://taco.connpass.com/event/144311/

#### さあ、実際にやってみよう！！

最初に流れを説明します。

1. プロダクトオーナーから作りたいものについて指示を受けます
2. チームで作成プランを作ります　（５分）
3. 実際に作ります　（５分）
4. プロダクトオーナーに作ったものを見せて、フィードバックをもらいます
5. チームで、作業内容をふりかえります　（５分）

あとは、作成プランを作る⇒実際に作る⇒フィードバックをもらう⇒ふりかえる　の繰り返しです。
「プラン作成～ふりかえり」までの一連の流れを「スプリント」といいます。今回は３スプリントまでやりました。

では、実際にどうやっていったのか見ていきましょう。

##### プロダクトオーナーから作りたいものについて指示を受けます

今回の状況について説明します。

プロダクトオーナーは主催側の人がやります。市長さんという設定です。「住みよい街を作りたい！」という思いを実現するために、われわれ参加者は大工として、建物を作っていくわけです。

まずは、市長が作りたいものをひとつずつポストイットに書いて、模造紙に貼って整理してくれました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/34636/299b79bf-51c8-2acc-e38d-3c6ea2da47e9.png)

ある程度整理されたところで、大工から質問が出ました。

「どの建物から先に作りますか？」
「建物の色は統一しますか？」

市長は質問を検討し、作るものの優先度や、詳細な仕様を固めて作りたいものを完成させました。スクラム開発では、これをプロダクトバックログと呼びます。スクラム開発では、プロダクトバックログを起点として開発が進んでいきます。

さて、作りたいものが固まったので、割り当てを決めることにしました。

大工は１５人ほどいたので、３つのチームA, B, Cに分けました。それぞれに、優先度の高い順から作りたいものを割り当てていきました。自分はチームAのメンバーとなりました。

※　このように複数のチームで１つのプロダクトを作っていくスタイルを、ラージスケールスクラムというらしいです。

##### 第１スプリント

###### チームで作成プランを作ります

チームAに割り当てられたのは、「１階建て住宅×２、パン屋、学校」でした。チームごとに、一人ずつ経験豊富な現場監督が付くことになりました。この役割の人をスクラム開発では「スクラムマスター」といいます。

スクラムマスターの提案で、一回の作業でいくつ建物を作れそうかメンバー全員で計画し、３つとしました。

###### 実際に作ります

第一優先となっていたのは家だったので、家から取り掛かりました。

ふと、メンバーがふと気づきました。「どんな家にすればいいんだろう？」

そういえば、**どんな家にすべきか詳細に決めていませんでした**。そこで、スクラムマスターの提案でまずは各自が思う家をそれぞれ作り、良かったものを採用しました。

次に、パン屋、学校と作っていき、実際に作る作業は終わりました。成果物が下記の写真です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/34636/eeeb59ec-4668-7cae-86d8-a3c586fdc57d.png)

５分は、あっという間に過ぎました。。

###### プロダクトオーナーに作ったものを見せて、フィードバックをもらいます

市長に見てもらったところ、家は良い感じだと言われました。
ただ、「パン屋と学校は入口がないし、建物の大きさも小さいので改善してほしい」と言われました。

なお、フィードバックは全チームに対して行われます。本当は模造紙に書いた街のベースに建物を置かないといけなかったのですが、全チーム忘れていたので一箇所に集まってフィードバックができませんでした。。反省点です。

###### チームで、作業をふりかえります

フィードバックをもらったあとで、各チーム内でスクラムマスターが進行役となり、作業を振り返りました。
具体的には、「良かったところ、悪かったところ、次への改善点」をメンバー同士で出し合いました。

ざっとまとめると、以下のようになりました。

- 家のかたちについて最初に合意を取れたのはよかったね
- 家は他のチームも作ってたけど、合意を取れなかったね
- ほかのチームと合意を取って進めようか

これで、スプリントは一区切りです。さあ、次のスプリントに移りましょう。

##### 第２スプリント

###### もらったフィードバックとふりかえりの内容を踏まえて、再び作成プランを作ります

スクラムマスターが進行役となります。

まず、家については他のチームも担当していたので、合意を取って、協力して進めることにしました。

パン屋と学校については、フィードバック通りに入口を作り、大きさを改善することにしました。一階建ての家の３倍くらいにしようと計画しました。

作った建物は街に置かないといけないので、その時間も確保しないといけません。作業全体のタイムマネジメントはスクラムマスターに促してもらうことにしました。

###### 実際につくります

家づくり２名、パン屋・学校づくり２名のサブチームに分かれました。家づくりサブチームは他のチームB, Cと協力して、合意を取りながら家をブラッシュアップしました。

パン屋・学校づくりサブチームは、入口ってどんな感じに作ろうかとまた悩みました。そういえば、家については色の指示が市長からあったけど、パン屋はどうしよう？という疑問も新たに生まれました。大きくするにはブロックも増やさないといけません。それはどこから調達しよう？という課題も生まれました。

そうこうしてるうちに時間が過ぎ、パン屋・学校づくりサブチームは、すべてを完成させるのが難しくなりました。しかたなく、優先度の高いパン屋を作りきろうとスクラムマスターから指示が出ました。色についても、考慮する暇がなく、ありあわせのブロックを使ってとにかく計画した大きさの通りに作りきることにしました。

なんとか作業終了。今度は、街に置く時間も考慮できていたので、建物を置くことができました。
他のチームも建物を置けました。街の全体が見えてきましたね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/34636/819cceb4-fb39-e487-7925-6e12b86032bc.png)

###### フィードバックをもらいます

さて、市長からフィードバックです。
１階建ての家は、完璧！と言われました。よかった！
パン屋は、「大きさは良いけれど、色がバラバラ。統一感がほしい」と言われました。

タワー、橋、ほかの家についてもフィードバックが出ました。タワーについては足の形を統一すること、橋については、昇り降りしやすい足場にすること、ほかの家については屋根の形をなめらかにすることが挙げられました。

###### チームでのふりかえり、その前に。。。

フィードバックも貰えたし、さあチームで振り返ろうと思ったところ、市長が今の状況について再度整理しようと言ってくれました。

現状は、スケジュールと比較してかなり遅れてます。左のバックログがまだ沢山あるのに、右のVマークが付いておらずに未完のものが沢山残っています。そして、スプリントは残り１つしかありません。さて、どうしよう！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/34636/533a27be-3df3-cece-21d9-6f51b04278dc.png)

市長が先導し、皆で案を出し合った結果、以下のようにすることにしました。（先導できるプロダクトオーナーがいるとスムーズに物事が進むので嬉しいですね）

- 絶対に必要なものを完成できるようにしましょう。学校は、パン屋を優先してプロダクトバックログに戻しましょう。
- チームBはタスクを完了していますが、まったく新しい何かを作るにはリスクがあります。左のプロダクトバックログから、作成経験のある２階建ての家を選びましょう。
- チームCはタスクが溜まっています。チームBと協力してすべて完成させるようにしましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/34636/31f0ff46-1ed0-87dd-57bd-6bf61c8f22b6.png)


また、各チームのスクラムマスターが集まり、市長と全体的な改善策を話し合いました。
その結果、作業前にタスクのポストイットを自席に移動させ、終わったら模造紙に戻すようにして意識付けすることにしました。また、市長にはこまめに中間フィードバックをもらうようにして、認識齟齬を埋めようということにしました。

###### ふりかえり

全体でふりかえりをした後、改めて、チーム内で良かった点、悪かった点、改善点を話します。

- 良かった点
    - 他のチームと共同で作業した結果、市長が満足する住宅を完成できた。
    - スクラムマスターが時間管理した結果、建物を街に置けた。
- 悪かった点
    - 計画性がなかった。とにかく作ることに集中しすぎた。学校にまったく手を付けられなかった。
- 改善点
    - 最初の１分くらいで設計する
    - 途中まで作ったら市長にフィードバックをもらう

第１スプリントの前は、３つタスクを消化できると見積もっていましたが、実際にここまでの状況をふりかえると２つが限界だとみんな気付きました。見積もりは強気でやってしまうのが人間の性なんでしょうか？？

##### 第３スプリント
さあ、いよいよ最終スプリントです。予定していたタスクはすべて完了できるのでしょうか！？

###### 計画

パン屋の色を統一するため、色を決めました。足りないブロックは、他のチームから調達することにしました。

フィードバックのタイミングや市長への連絡は、スクラムマスターが担当することにしました。**今思えば、タイムマネジメントもやりながら、外部との調整もやって、本当にスクラムマスターは大変な役割です**。

###### 作業

どんな色にするか、どんな大きさにするか、最初に設計しました。そういえばパン焼き窯の煙突がなかったので、付けることにしました。構築は他のメンバーが担当し、自分は同じ色のブロックを集める係になりました。しかし、もうブロックは他の建物に使われていて、予想よりも数を集めることができませんでした。スクラムマスターへ報告すると、「それなら多少小さくても良いから、色の統一を優先させよう」となったので、色を統一して作ることに集中しました。ある程度完成して市長へ中間フィードバックをもらい、OKが出たのでそのまま完成させました。

最終スプリントでは、とにかく、チーム間のやりとりが活発に行われていた記憶があります。**スクラムマスターが窓口役となっても良かったかもしれませんが、時間を考えると難しかったと思います**。

時間いっぱいとなり、最終的な街の姿はこうなりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/34636/9e64e9fa-aa44-d933-5b3d-f7955143f809.png)

###### フィードバック

市長からの最終フィードバックです。

- ２階建て、３階建ての家は、屋根が統一できていて良い。
- 橋は、足場が乗り降りしやすくなった。
- タワーの足の部分が統一され、格好良くなった。
- パン屋は色が統一され、煙突も出来ており、とても良くなった。

**街の形はとても良くなり、市長を満足させることができました！**

予定したタスクを、すべて完了することができました。目的達成です。

#### まとめ

**スクラムマスターの役割は非常に大事だと感じました**。急造チームで成果を挙げられたのは、スクラムマスターの功績が大きいです。ファシリテーション能力、タイムマネジメント能力、プロダクトオーナーとの調整力に優れたスクラムマスターの存在は、チームの力を引き出してくれます。自分の仕事場では開発メンバーがスクラムマスターも兼任しているので、実務をせずにファシリテーションに集中できるスクラムマスターの存在がとても心強かったです。

**「クイックに！」と主催の方が強調していたのが印象的でした**。制限時間通りに動き、行動から学びを得ることを重視していると思いました。

**振り返りは、チームでやることが大事だと学びました**。スクラムマスターが司会進行役となり、メンバー全員に話を振ってくれたので、色んな角度からの意見を聞けました。

LEGOブロックで街を作る、という疑似体験を通してではありますが、スクラム開発の勘所はつかめたと思います。とても楽しい経験でした。直近では、第二回目の開催が予定されているので興味のある方は確認してみてください。
https://taco.connpass.com/event/145112/