アジャイル解説⑤ ~アジャイルの三層構造~
はじめに
アジャイル開発は単なる開発手法やフレームワークの集合ではなく、価値を創造するための考え方と行動の総体です。本レポートでは、アジャイルの中心的な要素とその周囲を取り囲むサポーティングな要素群、さらには実践技法としてのアジャイルプラクティスという三層構造について説明します。中心に位置するものほどアジャイルの本質を示しており、周囲に位置するものは状況に応じて柔軟に適用されます。
アジャイルの三層構造
アジャイルは以下図のような三層の構造であり、中心に行くほど重要度が高い ものとなっています。
さらに、各層には以下のような特徴があります。
詳しくは次の節で見て行きましょう。
第一層:厳守すべきもの (Mandatory)
アジャイルの核に位置する要素として「目的志向」「自律」「事実重視」があります。これらはアジャイルの根幹であり、すべてのアジャイルプラクティスがこれに従属すべき要素です。この層の要素たちが失われると、アジャイルの原則が成り立たなくなり、ただの形式的な手法に陥ります。
この第一層は「be agile」に該当します。これは、アジャイルという在り方そのものを体現するものです。形式的な実践や手法の採用以前に、組織やチームがアジャイルであろうとする本質的な姿勢を示しています。
- 目的志向:すべての活動がビジネス価値を高めるという目的に直結していることが重要です。単なる改善や適応ではなく、目的を達成するための自律的な行動が求められます。
- 自律的判断:アジャイルチームは外部からの指示や管理に依存せず、現状を正確に認識し、自ら判断と行動を行うことが求められます。この自律性がなければ、柔軟な適応や迅速な改善が難しくなります。
- 事実重視:現実に基づいた行動を取り続けるために、常に事実に忠実であることが必要です。これにより、チームは次の行動を適切に判断できます。
これらはすべて Mandatory(必須) であり、アジャイル精神そのものです。 チームは、この中心的な価値を欠くことなく、常に自律的かつ事実に基づいて行動しなければなりません。
特に「事実重視」の観点から、嘘をつかないことは重要な要素となります。これは道徳的な理由からではなく、正確な情報に基づく判断と行動が価値創造には不可欠だからです。中でも、人に対する嘘よりも自分に対する嘘、つまり「現状(as is)」と「理想(to be)」の混同が最も危険です。なぜなら、現状を正しく認識しなければ、改善や適応が価値に結びつかず、目的達成が困難になるからです。
このMandatory(必須)という性質を説明する例として、「言われたからやりました」に対してアジャイルがどう扱うかを見てみましょう。この台詞ような受動的な態度は それだけで問答無用にアジャイルの本質に反します。自律性を欠き、目的志向での行動ではないからです。アジャイルでは、なぜその作業が必要なのかを理解し、価値創造に向けて主体的に判断・行動することが不可欠なのです。
第二層:状況に応じて実施するもの (Conditional)
中心核の外側に位置する要素は「協調的対話」「経験を反映した改善」「適応的行動」です。これらはアジャイルの成功を支えるために重要な要素ですが、状況に応じて調整可能なものです。
この第二層は「do agile」に該当します。これは、アジャイルを実践するための具体的な行動を示すものだからです。第一層の「be agile」が示す本質的な価値観を実現するために、どのように行動するかという実践面での指針となります。
- 協調的対話:チーム内外の関係者と密接に対話することで、フィードバックを取り入れ、実情に沿った行動が取れます。アジャイルでは、メンバー間の信頼と透明性を保つために、協調的な対話が不可欠ですが、状況によっては頻度や方法を調整する必要が生じることもあります。
- 継続的改善:アジャイルにおいて、フィードバックや実行結果から得られる経験を活かして改善を繰り返すことが理想です。ただし、必ずしもすべての改善が実施可能とは限らず、ビジネス価値やリソースによって優先度が変わります。
- 適応的行動:アジャイルは変化に柔軟に対応することが特徴ですが、すべての変化に即時対応できるわけではありません。適応は基本的に重要ですが、条件次第での調整が必要です。
これらは Conditional(条件付き必須) であり、可能な限り実行すべきですが、状況に応じて最適化や調整が許容されます。
この層の条件付き(Conditional)という性質を説明する例として、「チームと対話していない」に対してアジャイルがどう扱うかを見てみましょう。一見するとこれはアジャイルの原則に反するように思えますが、違います。その状況が避けられないものなのか、あるいは一時的な制約なのかをヒアリングすして判断する必要があります。例えば、地理的な制約や時差の問題、セキュリティ上の制約などによって対話が制限される場合も有るからです。「do agile」に該当する内容が実施しにくい状況下では、可能な範囲での代替手段を模索しながら、「be agile」を損なわないように努力するのがアジャイル精神と言えます。
第三層:選択的に用いると良いもの(Optional)
最も外側の層には、具体的なプラクティスや技法が存在します。スクラム、XP(エクストリーム・プログラミング)、カンバンなどのフレームワークや手法は、アジャイル精神に沿って進行するための道具として使われます。
この第三層は「by agile」に該当します。これは、アジャイルを実現するための手段を提供するものだからです。第一層の本質(be agile)と第二層の実践(do agile)を支援するために、具体的にどのような方法やツールを用いるかを示しています。
- スクラム:スプリントやデイリースクラムなど、プロジェクト管理の手法を提供するフレームワークです。
- XP:テスト駆動開発(TDD)やペアプログラミングなどのプラクティスを提供し、品質の向上を目指します。
- カンバン:作業の進行状況を視覚的に管理し、フローの最適化を支援します。
これらのプラクティスは、Optional(任意) となります。プロジェクトやチームの状況に応じて、最適なプラクティスを柔軟に選択し、必要に応じて取り入れることが可能です。中心核の原則が守られていれば、具体的なプラクティスはカスタマイズや変更が許容されるというのがアジャイルの特徴です。
この層の任意(Optional)という性質を説明する例として、「スクラムを実践していない」に対してアジャイルがどう扱うかを見てみましょう。スクラムを採用していないことは、その人やチームがアジャイルに行動していないことを全く意味しません。重要なのは、中心核の原則に従いながら、その状況に最適な実践方法を選択できているかどうかです。例えば、スクラムの代わりに独自のプラクティスを開発したりしても、それが価値創造に繋がり、チームの自律性と事実に基づく判断を支援するものであれば、十分にアジャイルな取り組みと言えます。
結論
アジャイルの体系を三層構造で捉えることで、アジャイルの中心に位置する価値と、それを支える対話・改善・適応、さらにそれを実行するための手法やプラクティスが明確に理解できます。本質的な価値は中心に据え、状況に応じて周辺の要素を柔軟に適用することが、アジャイル精神の実践における重要なポイントです。この三層構造を理解することで、アジャイルはただの技法の集合ではなく、価値を生み出すための一貫した行動理念であることが明確にされます。
Discussion