スプリントによるリズミカルな開発
本稿は「スプリント」という区切りを中心に記述します。スクラム手法が中心になるので、イテレーションは、”スプリント”という用語で呼ぶことにします。
スプリントは、期間固定で計画・実行する開発の単位です。もともとスクラム開発手法では30日(暦日)でしたが、ディーバでは2週間に設定しています(大抵は1~4週間、昨今は2週間がもっとも多い例ではないでしょうか)。初日にプランニングミーティングを行い、直近2週間のタスクを計画します。そして、毎日デイリースクラムを実施し、最終日にレトロスペクションミーティングで締めて、スプリントの1サイクルとなります。
スプリントのミーティングでは、タスク管理システムないしは、ホワイトボードに張られたタスクやバックログリスト(場合によってはガントチャート)などのタスクを一覧できるツールを用いながら行います。スプリントの最中も、現在進行中のタスクについて容易に確認・共有できるツールが中心にあることが望ましいと言えます。
なぜスプリントなのか?
ではなぜ、短い期間で計画/実装/振り返りを繰り返していくのでしょうか? 多くの書籍や記事で書かれていることではありますが、筆者は特に次の3つが、スプリントによって実現される重要なポイントではないかと考えています。
変化に対応すること
1つは外部からの要求の変化への対応です。実物を見せる見せないに関係なく全くの外部要因による要求変更もあれば、実物を見せることによるフィードバックもあります。やぶ蛇な要求もありますが、本当に価値あるものを提供するために必要である変更もあるでしょう。
もう1つは内部からの予見不可能さからくる実装の変化への対応です。新しい技術や新しい分野であるほど予期せぬ技術的な制限に直面したり、逆に工夫が容易な部分を見い出したりします。これら内部/外部からの変更圧力に対応できます。
リズムを維持すること
一定期間のタイムスロットありきで、短い区切りで状況を把握し対応していくので、短い目標に対して常に高い緊張感を維持でき、結果的に一定の生産性を維持していくことが可能になります。特に長いプロジェクトにおいて、一向に先が見えない状況に陥りにくくなります。
開発者が主体的であること
そして、個々の開発者が主体的になれることも大事ではないかと思います。計画や進捗、振り返りを皆で共有することによって、個々人が必要なことを考え、互いに協力しあい、臨機応変に対応していくことができます。それにより高いモチベーションが維持されていきます。