開発状況を把握できないときはスクラムで開発する

スタートアップでプロダクト開発をしていると、開発状況を十分に把握できてないという問題に直面することがある。開発状況の現状を正しく把握できない状態では、いつ、どの様なプロダクトを顧客に届けられるかといったビジネス上の重要な意思決定が難しくなる。

解決策

こうした問題を解決する方法のひとつは、ソフトウェアの開発プロセスをチームに導入することだ。

ソフトウェア開発プロセスには、大きく分けて二つの方法がある。ウォーターフォールとアジャイル開発だ。ウォーターフォールは完成形が100%事前に判明している際には有効だが、スタートアップではそういう状況は比較的稀だろう。最近のスタートアップのプロセスは学びと開発を並行してやっていくからだ。学びがあれば完成形は刻々と変化する。そういう場面ではアジャイル開発が最適だ。

アジャイル開発プロセスの中でも「スクラム」は導入が手軽だ。スクラムは開発プロセスの手順が最初から決まりきっていて、いわばフレームワークになっている。自社で開発プロセスを編み出すのは時間がかかる。スクラムのようなフレームワークをささっと導入して、それをたたき台にしてプロセスを改良していくのが開発プロセス導入の近道だ。

解決策の実施手順

  1. プロダクトバックログを作成する
  2. スプリント計画を実施する
  3. スプリントを実施する
  4. スプリントレビューを実施する

ステップ1: プロダクトバックログを作成する

プロダクトバックログとは、開発するプロダクトでの機能やユーザストーリーを列挙したリストのことだ。このプロダクトバックログは、ビジネス側と開発側で共有されリストであるため、開発者しかわからない機能のリストにならないようにする。

私からのおすすめはユーザストーリーを使ってリストを作成する方法だ。ユーザストーリーは、例えば「ユーザはログインできる」や、「ユーザは記事を投稿できる」といったユーザの行動や活動を表わしたものだ。この形式であれば開発に関わる関係者全員が理解できる。

作成するプロダクトバックログには「あったらよい」程度のユーザストーリーは削除しておくか、メモに移す。絶対に必要なユーザストーリーだけを残すことによって開発コストが圧縮できる。

そして、プロダクトバックログは優先順位の高いもの順で並べ変える。この優先順位はプロダクトについての全責任を持つプロダクトオーナーが実施する。ここで決定した順で開発が行われる。

ステップ2: スプリント計画を実施する

スプリントとは、一定の期間で実施する開発活動だ。スクラム開発に慣れていない場合は1週間で1スプリントを実施することをお勧めする。慣れてきたら2週間が目安だ。

スプリント計画では、一回のスプリントでどのユーザストーリーを実現するかを決定する。スプリント計画の成果物は、スプリントバックログだ。

プロダクトバックログの上から、今回のスプリントで実施するユーザストーリーをスプリントバックログに移す。

ステップ3: スプリントを実施する

次に、スプリント計画で決定したスプリントバックログを1週間で実施する。スプリントの実施中には優先順位の変更はしない。優先順位を変更するタイミングは次のスプリント計画だ。

スプリントの成果物はインクリメントと呼ばれる実際に動作するソフトウェアだ。

ステップ4: スプリントレビューを実施する

1週間のスプリント実施が完了したらスプリントレビューを実施する。スプリントレビューの成果物はインクリメントの完了と未完了が特定されることだ。

開発チームはプロダクトオーナーにデモを行い、プロダクトオーナーは完了、未完了を判断していく。ここで出た新しいストーリーなどはプロダクトバックログに追加する。

完了したものは動作するソフトウェアとしてリリースする。

ステップ5: 次のスプリントを計画する

スプリントレビューが完了したら、次のスプリントの計画をする。つまりステップ2をもう一度実施するということだ。

このプロセスをプロダクトバックログが空になるまで繰り返す。