これまで僕は締切がかなり厳しいプロジェクトを数回経験してきた。その経験から、締切が厳しいという特性を持ったプロジェクトの初期にまずこれだけはやったほうが良いということがいくつか見つかったので、今回はそれらを紹介していこうと思う。
今回紹介する方法は、次のような特性を持ったプロジェクトを前提とする。
短いスパンでリリースしてユーザーの様子を見てその後のプロダクトバックログの優先度を変えるような性質のプロジェクトでは、別のやり方を取る必要があると思う。そこは注意してほしい。
上記のようなプロジェクトの場合、とにかく最速出す必要がある(どんなプロジェクトでも開発速度の最大化は目指すと思うが締め切りが固定だと特にその傾向は強まる)。そのため、いかに全員が同じ目標に向かえるか、いかに全員が自律的に動けるか、いかに刻一刻と変わる状況でも全員の認識があっているか、いかにトラブルを即座に解消できるかにかかっている。
また、このようなプロジェクトの場合、まだコントロールしやすいのは「スコープ」である。そのため、いかにやらないタスクを判断するかも重要である。
これらを考慮して、次のことをプロジェクト初期にやったほうが良いと感じている。
ある程度教科書どおりのスクラムをするというリストにはなってしまったけど、それぞれのセクションで経験に基づいた工夫を書いたつもりだ。
まず前提として、 全員のゴールイメージが一致していなければならない。そうでないと、同じ目標に向かって全員で協力することも出来ないし、メンバーが各々自律的に動いても効率的に目標に向かえない。そのため、全員とゴールイメージを共有し、何が終わればリリースが出来るかの認識を合わせることが非常に大切である。
ゴールイメージを一致させるための手法は様々なものがあるのでどれを使っても良い。ただし最低でも、なぜ作るのか、いつまでに何を作るのかについては全員が把握している状態を目指す。これまでの経験からは、インセプションデッキはなぜ作るのか、誰が関係者かなどがパッと判断しやすいので使いやすいと思っている。
「いつまでに何を作るか」について、Webサービスやアプリを作る時は以下のようなものがあると認識合わせがやりやすかった。
ここまでで現時点で思いつくユーザーストーリーが入ったプロダクトバックログが完成しているはずである。そこで次にプロダクトバックログに登録されたタスクを、ある程度1スプリントで終わる単位にしておくと良い。1スプリントで終わらない単位のまま進めてしまうと、ベロシティが参考にならないものになったり、今起こっている問題が巨大タスクに埋もれてぼやけてしまったりということが起こるためである。
この段階での分解はある程度ざっくりで良い。また、この段階では全員ではなく、必要最低限の人だけ集めて分解するくらいで良いと思う。
具体的な手順としては
現時点で網羅的なプロダクトバックログが出来たので、続いて全員で集まってそれぞれのタスクの見積もりをする。それぞれのタスクの見積もりの流れとしては、1タスク(1プロダクトバックログアイテム)ごとに以下のような流れが良い。
ここでポイントなのは、時間をかけてでも全員でやるということである。1~2日かけてでも行う価値があるパートだと思っている。なぜ全員で時間をかけてでもやると良いかというと
最終ゴールに対して、間に合いそうかを見える化し続けるには速度を測るしか無い。そして状況の図を作っておくことで、スケジュールに対する温度感を全員で一致させやすくなる。
そこで、お手本通りスプリントごとのベロシティを測定し、毎スプリントごとにみんなで状況を即座に確認できるようにバーンアップチャートなどの図を作る。図に関してはバーンアップチャートでもバーンダウンチャートでも好きなものを使って良い。
個人的にはバーンアップチャートの方が好みである。なぜなら、タスクの消化具合だけでなく新規タスクが増えている状況も可視化できるため、遅れている原因が新規タスクが増えているためなのか、速度に問題があるからなのかがひと目で切り分けられるからだ。
ここまでで現時点でのタスク一覧とスプリントごとの速度を出せたので、間に合いそうかの温度感を全員で一致させやすくなった。
これまでで、「現時点」でやるべきタスク一覧は作れている。しかし、プロジェクトが進むにつれて新しくタスクを発見したり、タスクに取り組んでみると巨大タスクだったり、リリースまでに必須でなさそうな部分を見つけたり、スケジュールを考えるとやむなく落とす判断をしたり、といったことをしたい場合が必ず出てくる。
そのため、タスクの追加/分割/やらない判断フローを先んじて作成しておくと良い。特に「やらないものを決める」フローをきちっと決めておくのが大事だと思っている。
それぞれのフローの例は次のようなものが考えられるだろう。
ちなみに「やらない判断が出来ず、結局やるものが増えてしまう」ということはプロジェクトあるあるなのだが、これまで紹介していることを実践しておけばやらない判断はしやすい状態になっている。なぜなら、
という3点が揃っているため、タスクを落とす必要性を全員で理解できる状態になっているからである。
これで、速度はバーンアップチャートでひと目で分かるようになり、かつやらない判断フローも決まったので、スコープをよりコントロールしやすくなった。
最後に改善フローを用意しておく。締切が厳しいプロジェクトの場合、出来る限り素早く問題発見・改善を回したいので、短いスパンで改善フローを用意しておくと良いだろう。また、問題のキャッチを素早く行えるように、問題に気づいた人が相談しやすい状況を維持することも大事である。
これまでだと下のような工夫をしたことがある。
今回は、自分が締切がかなり厳しいプロジェクトを経験して、その経験からこういう特性のプロジェクトの初期にまずこれだけはやったほうが良いということを紹介してみた。ある程度教科書的なスクラムにはなったと思うけど、それぞれのセクションで経験に基づいた工夫も書けたかなと思う。参考になると嬉しい。
引用をストックしました
引用するにはまずログインしてください
引用をストックできませんでした。再度お試しください
限定公開記事のため引用できません。