すくすくスクラムに行ってきました

先日知り合ったid:ebackyさんとid:wayaguchiさんに紹介されて、すくすくスクラムに行ってきました。

林さんという方とミルズさんという方が公演してくれました。
特にミルズさんはAmazonスクラムをずっとしていたそうで、筋金入りのスクラマーという感じでした。

スクラムとは

スクラムとは、アジャイル開発手法の一つです。名前的にてっきりアメフトかなんかから出来たものの思ってましたが、実は日本の製造業のモデルをベースに考案されたそうです(富士ゼロックスキヤノン本田技研工業など)。
開発者主導の開発を行うための手法で、特にITに特化していないそうです。
いわゆるイテレーションしていくタイプの開発手法です。開発者が主導的に製品開発を行うことでよい製品が出来るという思想のもとに、それを実現するためのエッセンスがつまっています。

スクラムチーム・スクラムマスター

開発を行うチームを「スクラムチーム」と呼びます。スクラムチームは、チーム内にいる「スクラムマスター」と呼ばれる人が
推進をします。
スクラムマスターの役目は、チームを引っ張っていくのではなく、外部との折衝をしたり、チームを雑音から守ったり、ミーティングをファシリテートすることだそうです。
(ファシリテートとは、議論を活性化させるための調整のこと)
スクラムでは、1人のリーダーの指揮の下に進めていくのではなく、チーム自体が開発の方向性を決めます。
チームにはどの作業を行うかを決める権限があり、作業はすべて「スプリントバックログ」と呼ばれるタスクリストに書き出した後、どれをやるかを決めます。
スプリントバックログに乗せるタスクは、1つが1時間から16時間ぐらいまでの作業で、それ以上の大きさのタスクは分割します。
チームにはタスクを決める権限と責任があります。

プロダクトオーナー

スクラムチームとは別に、スクラムには「プロダクトオーナー」という人が存在します。
プロダクトオーナーは「プロダクトバックログ」という、業務視点で優先順位付けされた機能のリストを作成します。
プロダクトオーナーは、社内開発であれば例えば営業とか企画とかの部門、受託開発であればお客やコンサルタントが該当すると思います。

プロダクトバックログは、現実的に価値の高い機能の順位付けリストなので、スクラムチームはその内容を理解し、どのタスクを先にやるかを決めます。

イテレーション

スクラムでは、「スプリント」と呼ばれる期間を1単位として開発を行います。スプリントは大体1ヶ月ぐらいです。
スプリント開始時にそのスプリントで実現する機能を決め、作業を行います。
スクラムチームは「デイリースプリント」と呼ばれる15分程度のミーティングを毎日行い、前日何をしたか、これから何をするか、なにか作業の障害になることが無いかを報告します。
各作業者はスプリントバックログからタスクを自分で選んで、実施ごとにログを更新していきます。

スプリント終了後、ふりかえりを行い、次に実現する機能を決めて、つぎのスプリントに入ります。
これの繰り返しで製品を完成されます。

感想

やはりスクラムマスターの存在が、他の手法とは大きく違うところかなと思いました。
結局人間は自分で決めて行動をするわけなので、一人ひとりが開発の方向や作業の内容を理解して、かつ自分でやりたいと思ってやるのが一番いい。
なので、スクラムマスターはスクラムチームのメンバーがそうなるようにひたすら調整役に回る、という構図のように感じましたが、確かに一理あるなと思いました。


タスクはチーム全員で決めるため、トップダウンでタスク分割された場合によくある「実際はここは結構かかるんだよなぁ」とか「これやるには調査とかしないといけないけどなぁ」ということが防げます。タスクはスプリントバックログで表現されるため、どのぐらい出来てるか目で確認できるし、他の人の作業も見えます。
また開発者がタスクを決めると、やりたい作業や自分で作りたい機能を優先しがちですが、プロダクトバックログで開発者が現実の利益を確認することで開発者自身が利益に貢献する意識が持てるため、タスクの優先順位もよりよい物になるのだと思います。


OSSの場合、スプリントバックログは自分で作るし、自分がほしい物のプロダクトバックログも自分で作るため、ある意味オレオレスクラム状態になっている場合が多いでしょう。
そういう場合に生産性が高いことは、OSSで知り合った人たちを見ていてよく理解できます。
スクラムという手法は、そういう生産性をチームにもたらすためにスクラムマスターが促進役をする仕組みと捉えると、とても納得感があるなと思いました。


公演の後、直接ミルズさんとお話をさせてもらったのですが、バックログをつけるにはTracを2つ(スプリントログとプロダクトログ用)使ったり、エクセルでやったりしてますとおっしゃっていました。リモートでスクラムをやったりすることもあるし、バーンダウンチャートも有効だという話もあったので、ASPサービスのbackloghttp://www.backlog.jp)もいいのではないかと思いました。お客と契約する時はどうするの?との質問には、はじめは特にスクラムでやるとかは言わず、普通に見積もりを出して、開発側はスクラムでやって行き、お客には徐々に話をしていって乗ってくるようならプロダクトオーナーをやってもらったりスプリントバックログを見せたりするそうです。またスクラム自体は厳密に定義に従ってやる必要は無く、自分の組織に合うようにやるのがおっしゃっていました。


実は公演途中、id:yone098からプライベートでの重大な遺失物についてのメールが再三来てかなり動揺していたのですが、参考になる内容も多くてとてもよかったです。
主催者の皆さん、公演者の皆さん、ありがとうございました。