伝統的なソフトウェア開発チームは,ソフトウェアの'鉄の三角形(Iron triangle)'の領域内で活動すると考えられている。この三角形の3つの辺は,スコープ,スケジュール,費用である。一方でアジャイル開発では,それが品質に重きを置いていることから,三角形の中央にもうひとつの測定軸を想定していることがよくある。プロジェクトを成功させるためには,他の測定値を相対的に一定に保ちつつ1つの値のみを巧みに操作する必要があるが,ほんとんどのアジャイルチームはスコープを変化させて,費用,スケジュール,品質のタブ(つまみ)を固定する方法を選択している。
Jim Highsmith 氏は,この鉄の三角形がアジャイルチームの柔軟性に対して多くの制約を課すものだとして,それに代わるアジャイルの三角形(Agile Triangle)を提案している。
氏によれば,
たくさんのアジャイルチームが今,ジレンマに陥っています。それは彼らが一方でアジャイル性,柔軟性,適応性を求められ,他方では予め計画された伝統的な鉄の三角形のフレームワークであるスコープ,スケジュール,費用への適応を求められているためです。要するに彼らは “とても小さな箱の中で柔軟である” ことを求められているのです。アジャイルチームは一方のゴール(アジャイル性,柔軟性,適応性)を目指して奮闘努力し,マネージャと役員はそれを別のもの(スコープ,スケジュール,費用)で評価しようとしています。
氏の意見では,アジャイル三角形を構成するのは次の3つの頂点である。
- 価値 – 顧客に対して現在リリース可能な製品,という観点で。
- 品質 – 信頼性,適応性のある製品という形での,顧客に対する継続的な価値提供。
- 制約 – 伝統的なスコープ,スケジュール,および費用。
制約について氏は,プロジェクトの重要なパラメータではあっても目標ではないとしている。すなわち,
価値と品質が目標であって,制約はプロジェクトを顧客価値を増大させる方向に向かわせるために必要なものなのです。スケジュールが固定的な制約であり続けたとしても,そのスケジュールの制約の中で最高の価値を提供できるように,スコープを調整することは可能なはずです。
氏はまた,実装範囲よりもリリースされる製品の方に開発の焦点を合わせるべき,と主張している。アジャイルチームは次のように自問するべきである。“その製品は今日リリースしても十分な機能を備えているか?” これは詳細な要求に対応するためよりも,製品に対する戦略的な視点を維持するために役立つはずだ。
しかし価値や品質は,コストやスケジュールに比べて計測することが難しい。それは氏も認めている。それでもアジャイル三角形における制約のような重要性の低いものを正確に計算しようとするより,リリース製品を通じて提供される価値を測ることの方に重きをおくべきだ。
重要性に劣るものの正確な評価値よりも,たとえあいまいであっても本当に重要なものに対する評価基準を持つことの方がはるかに望ましいのです。
つまり氏によれば,アジャイルチームは鉄の三角形に制約されるよりも,リリースする製品に対してこそ集中するべきである。鉄の三角形の3つの頂点は崩壊し,「制約」というアジャイル三角形の頂点のひとつになる。他の2つの頂点,つまり価値と品質こそがゴールを定義付けるもの,関係者にとって最も重要なもの,そして更なる注意を払うべきものなのだ。