Webサービスやアプリは『なにをつくるか』が重要ですが、開発を効率的に行うための『どうつくるか』、つまり開発手法もプロダクトを成功させる要素のひとつです。この開発手法の代表的なものにスクラム開発という手法があります。
スクラム開発を導入することで、ユーザに継続的に価値を届けつつ、プロダクトの価値の最大化をめざすことができます。この記事ではスクラム開発とはなにか、導入する目的ややりかたについて書いていきます。
スクラム開発はアジャイル開発における手法のひとつで、ユーザに継続的に価値を届けるための体系化された開発手法です。『継続的に価値を届ける』というところがポイントです。
というのも、プロダクトは最初からすべての仕様が決まることはありません。つくったものをユーザに見てもらってフィードバックをもらい、結果をもとに改善していきます。
このプロセスをいかにすばやく繰り返せるかが重要なのですが、これをつき詰めた開発手法がスクラム開発というわけです。スクラム開発では、プロダクトだけでなく開発チーム、作業環境なども継続的に改善することができます。
スクラム開発については、無料で読める『スクラムガイド』という文書に目をとおすことをおすすめします。原文は英語ですが、角征典氏らによって翻訳された日本語版も同サイトより読めます。
スクラムガイドにもあるように、スクラム開発は『どういうチーム』で『どういうイベント』を行うかについて定義しています。この記事では、イベントに焦点を当ててスクラム開発のやりかたについて書いていきます。
スクラム開発は、ユーザに継続的に価値を届け、プロダクトの価値を最大化するために行います。
プロダクトは、機能の仮説を立てて開発し、リリースします。その結果を検証して次の仮説につなげます。このプロセスをすばやく繰り返すことで価値の最大化をめざします。
ただ、これは簡単なことではありません。
どの機能を優先してつくるか、どの機能を次のリリースにふくめるか、どの機能を削除するか。あるいは発生したバグをどうするか。こういった要件は日々変わっていきます。
このため、開発を管理する手法には、要件の変更に柔軟に対応できるようなフットワークの軽さが求められます。
では具体的にどのような開発手法であればよいのでしょうか。上で書いた『フットワークの軽さ』ということばをかみ砕くと、開発手法を決める上で重要な点は次の5つがあります。
スクラム開発はこれらを満たす、すぐれた開発手法です。たとえ開発者がひとりだったとしてもこれらの恩恵は受けられるため、採用すべきといえます。
それではスクラム開発のやりかたについて書いてきます。
スクラム開発はスプリントという期間の中で開発します。このスプリントの中でいろんなイベントを行うことでプロダクトをつくっていきます。
なにをつくるかを決めて開発し、リリースする。その結果を検証し次につくるものに反映させる。このプロセスを短い期間で繰り返すのがスクラム開発です。
ここでいう『短い期間』がスプリントです。スプリントとは、どれくらいの期間を単位として開発に取り組むか、その期間をいいます。適切なスプリントは1週間や2週間など、1ヶ月以内の短い期間がよいとされています。
このスプリントの中で、次に書いていく5つのイベントを行っていきます。
プランニングとは次のスプリントでなにをやるか、どうやるかを決めるイベントです。プロダクトのバックログを見ながら、やることを整理したり、具体的にどうやるかを決めます。
実施時間は、スプリントが1週間ならプランニングは2時間以内で行います。
リファインメントとはバックログを見直すイベントです。
バックログはプランニングで整理しますが、プロダクトの要件は日々変わってきます。この日々の変化に対応するために、プランニング以外にもバックログを整理する時間が必要です。これがリファインメントです。
リファインメントの実施は必要に応じて随時行います。
デイリースクラムはやったこと、やること、課題を整理し共有するイベントです。毎日同じ時間に同じ場所で行うことで、開発にリズムを生むことができます。実施時間は15分以内で行います。
レビューはつくったものをふくめた現在のプロダクトを見て、今後どうするかを話しあうイベントです。プロダクトの状況を確認するほか、メンバーからのフィードバックや協力を得る目的で行います。また、必要に応じてバックログを見直します。
実施時間は、スプリントが1週間ならレビューは1時間以内で行います。
レトロスペクティブとはいわゆる『ふりかえり』で、開発の効率化などの観点でスプリントをふりかえるイベントです。KPTやYWTなどの手法を用いて行います。
実施はレビューのあと、プランニングの前に行うと効果的です。スプリントが1週間ならレトロスペクティブは1時間以内で行います。
前章で書いたイベントは、スケジュールに組み込むことで開発にリズムが生まれます。リファインメントは必要に応じて随時行うので、そのほかの4つのイベントを行う時間を決めておくとよいでしょう。
たとえば次のスケジュールで行います。
曜日 | 時間帯 | イベント |
---|---|---|
毎日 | 10:00-10:15 | デイリースクラム |
金曜日 | 11:00-12:00 | レビュー |
金曜日 | 14:00-15:00 | レトロスペクティブ |
金曜日 | 15:00-17:00 | プランニング |
スクラム開発においてどうタスクを管理するかは、とくに定められていません。一般的にはかんばんを導入するケースが多いです。たとえばTrelloやAsanaを使います。
プロダクトの価値を最大化させるには、開発手法が重要です。スクラム開発はユーザに継続的に価値を届けることで価値の最大化をめざすすぐれた手法です。
スクラム開発はプランニングとリファインメント、デイリースクラム、レビュー、レトロスペクティブという5つのイベントをスプリント内で行い、これを繰り返すことでプロダクトをつくっていきます。
これらイベントを習慣化させることで開発にリズムが生まれていきます。たとえひとりで開発していても有用な開発手法なので、導入を検討してみるとよいと思います。