アジャイルの導入でよくある質問の1つは、理想的なイテレーション期間に関したものである。チームは、たいていイテレーションの期間は1週間から2ケ月を 取っている。正しいイテレーション期間を選択することが重要であり、アジャイルの導入が成功するかは、適切なイテレーション期間にかかっている。正しい決 定をするために、検討すべき要素についてアジャイリストが、考えを共有している。
Clinton Keith氏(リンク)は、アジャイルプロセスを始めたばかりのチームは、迅速に学べるし、検証も速いので、より短いイテレーションにすべきだと提案した。氏によると、
アジャイルの初心者は、可能な限り長いイテレーション期間を取りたがる。わたしはたいていこのことは勧めない。なぜなら新しいチームは、mini- waterfallプロジェクトのように、イテレーションに臨むからである。設計に数日をかけ、コードやアセットの作成に数週間、それからイテレーション の最後の数日をかけ統合、テストそして調整をする。作業をうまく進めるために、経験のあるチームは、それらを日々少しづつおこなっていくものである。
Clinton氏によると、イテレーション期間を決定する際に検討すべき要因として以下を挙げている(リンク)。
- カスタマーフィードバック-なしえた進展に関するフィードバックを顧客が提供することが出来る最低の時間
- チームの経験-アジャイルでの経験がチームが少ない場合、学びやすいように、イテレーション期間は短くするべきである。
- レビューおよび計画のオーバーヘッド-一般に、レビューおよび計画に1日を費やす。
- イテレーションの計画能力-イテレーションの目標に、不安要素が多い場合、期間はより短くするべきである。
- バランスの取れた強度-イテレーション中の作業の強度は、一貫であるべきである。
Vikrama Dhiman氏は、イテレーションの期間を決定する同様の要因(リンク)について提案した。また、氏はイテレーション期間は、機能性をより細かいストーリーに分割するという、製品所有者の能力にもよると示唆した。小さいストーリーは、簡単に完了でき、短いイテレーション周期でテストすることができる。氏は、短いイテ レーションのメリットについて以下のように付け加えた。
- 短いスプリントにより、ある良くない傾向がその場を切り抜けられないようにし、ある良い傾向を、ますます魅力的にする。
- 短いスプリントやイテレーションは、製品管理チームにとっては難しいが、同期に迅速に変更をすることができるので、もっとも望ましい。
- 短いスプリントやイテレーションは、継続的な評価を定期的および迅速に押し通す。
- 短いスプリントやイテレーションにより、チームは実験に基づいた速度を非常に迅速に定めることができる。
Mike Cohn氏(リンク)は、正しいイテレーション期間を決定するための属性(リンク)として以下の特質を掲げた。
- 不確実性の度合い-不透明感が高ければ高いほど、不確かなシナリオに取り組むために十分、イテレーション期間を短くするべきである。
- どのくらいの間、優先事項が不変か-ストーリーの優先事項が、アプリケーションイテレーション内で変わっている場合、イテレーション期間を短くすべきだと言って差し支えない。
- 反復のオーバーヘッド-プロジェクトが各イテレーションの最後で、「マニュアル」リグレッションスイートを実行する必要がある場合、短いイテレーションは高くつく場合がある。
- どのくらいすぐ緊急性が高まるのか-イテレーション期間が非常に長い場合、チームはイテレーションの早い段階を通じ満足する傾向にあり、終わりに近づくにつれて、危機的な状況に陥る。重要なのは、チームが一貫したペースで進められるような、期間を決定することである。
Mike氏は、自身のさまざまなチームとの経験に基づき、2週間のイテレーションが理想的だと提案した。計画およびテストのオーバーヘッドは管理可能であ り、チームは一貫性のあるリズムで進行できる。アジャイルチームに対し、以下のようなアドバイスを与えて、締めくくった。
適したイテレーション期間を定めてしまったら、それに固執する。チームは、プロジェクトにリズムを持たせることができるというメリットがある。あら ゆる不変のイテレーション長は、このリズムを提供できる。異なる期間で試すことができないという意味ではないが、正当な理由がない限り、色々な期間を選択 するのは避けるべきである。
原文はこちらです:http://www.infoq.com/news/2009/03/ideal-iteration-length