開発チームはどう働くのか — アジャイル、スプリント、MVP
開発チームと働いていると、なじみのない言葉が会議によく出てきます。「今回のスプリントに入れますね」「まずは MVP でいきましょう」「バックログに積んでおきます」といった言葉です。どれも開発チームの働き方、よくアジャイルと呼ばれる流れから出てきた表現です。
前回の記事で、簡単に見える機能も思ったより時間がかかると話しました。まさにその不確かさに対応するために磨かれた働き方がアジャイルです。今回の記事では、アジャイル、スプリント、MVP とは何かを、コードなしで解きほぐしていきます。
アジャイルは、短く区切って作って直す方式です #
ソフトウェアを作る昔の方式は、最初にすべてをもれなく計画したうえで、その計画どおり最後まで作り、最後に一度出す流れでした。問題は、すべて作ってからようやく「これは私たちが望んだものではなかった」と気づくことが多かった点です。何か月もかけたあとに方向を変える費用は大きすぎます。
アジャイルは正反対に進めます。一度に完成させようとせず、小さく作って早く見せ、フィードバックを受けて直すことを繰り返します。完璧な計画よりも、速い確認と方向修正をより大切にするのです。地図をすべて描いてから出発する代わりに、一歩進んで方向を確かめながら進む方式に近いです。何が出てくるか前もってすべては分からないソフトウェアの作業によく合うので、広く定着しました。
スプリントは、短く繰り返される作業の周期です #
アジャイルを実際に回す単位がスプリントです。ふつうは一〜二週間ほどの短い期間を一つの周期と決めておき、その中で決めた分量を作って仕上げます。そして次の周期にまた次の分量を作ります。
スプリントが始まるとき、チームは今回の周期に何をするかを一緒に決め、終わるときは作ったものを点検して次を計画します。こうして短く区切ると進み具合がよく見えるので、予定がずれても早く気づいて方向を直せます。「今回のスプリントに入れますね」は今回の作業周期の中でその仕事をするという意味で、「次のスプリントに回しましょう」は今回の周期には入れないという意味です。
ここでよく一緒に出てくる言葉がバックログです。バックログは、これからやるべき仕事を優先順位に沿って積んでおいた一覧です。毎スプリント、この一覧の上のほうから仕事を取り出してきます。「バックログに積んでおきます」は、今すぐではないけれど一覧に入れておいて後で扱うという意味です。
MVP は、核だけを盛り込んだ最初のバージョンです #
アジャイルの精神を一語で見せるのが MVP です。日本語では最小機能プロダクトと訳します。最初からすべての機能を備えた完成品を作る代わりに、核となる価値を確かめられる最小限の形でまず出すのです。
たとえば食事の配達サービスを作るなら、華やかなおすすめ機能やポイント還元は後回しにして、「注文して決済すれば食事が来る」という核だけをまず作ってユーザーに出します。こうすると、人々が本当にこのサービスを使うのか、どこで詰まるのかを早く確かめられます。大きなお金と時間をすべて注ぐ前に、小さな形で市場の反応を先に聞くのです。
MVP を「雑に作ったもの」と誤解しやすいのですが、そうではありません。機能の数は減らしても、その核はきちんと動かなければなりません。減らすのは枝葉であって、品質ではありません。
なぜ非開発者が知っておくと仕事が楽になるのか #
- 会議の言葉についていけます。 スプリント、バックログ、MVP が飛び交う会話で、いま何を決めているのかがはっきり聞き取れます。
- 要望を優先順位で伝えられます。 すべての機能を一度に求めるより、核から MVP で出して残りはバックログに積む、というふうに一緒に計画できます。
- 「今回は入れられません」を理解できます。 次のスプリントに回すという言葉が拒否ではなく優先順位の調整だと分かれば、日程の調整がずっと楽になります。
まとめ #
今日は、開発チームの働き方を、アジャイル、スプリント、MVP という三つの言葉で見てきました。アジャイルは短く区切って作って直す流れで、スプリントはその流れを回す短い作業周期であり、MVP は核だけを盛り込んでまず出す最初のバージョンです。三つとも「一度に完璧に」ではなく「速く確かめて直す」という同じ考えから生まれました。
なぜ機能一つにも時間がかかるのかがもっと気になればなぜ簡単に見える機能に時間がかかるのかを、この仕事を実際に誰がするのか気になれば開発者は実際に何をしているのかを一緒に読んでみることをおすすめします。