アジャイル要求開発
ソフトウェア開発プロジェクトにおいて、今まで多くの失敗プロジェクトが散見されていますが、その原因は、ユーザーのインプット不足、不完全で曖昧な要求仕様、要求仕様の変更の多発など、要求に関わるものが主な要因として挙げられています。つまりソフトウェア開発プロジェクトを成功させるためには、要求開発は極めて重要となります。
要求開発とは、組織のゴールやビジネスの要求をインプットとして、表面的に表われている要求だけでなく「暗黙の要求」までも含む「真の要求」をユーザーとの相互作用による能動的な活動を通じて導き出す創造的活動です。ユーザーへのヒアリングだけでは、要求を棚卸したことになりません。要求には、語られないこと、誰も気づいていない「暗黙の要求」があります。この「暗黙の要求」を明らかにしていくことが、真のビジネスニーズの実現につながります。「暗黙の要求」は、明示的に語られている要求の“隙間”に隠れているかもしれません。あるいは、同種の業務領域における他社の先行事例に手掛かりがあるかもしれません。データモデルや業務フローを吟味することで、見えてくる場合もよくあります。さらには、簡単なプロトタイプを作ってフィードバックを得ることも重要です。また現場ユーザーが嫌がるようなことであっても、業務改善やビジネス価値を向上させるといった上位の要求視点から、優先して実現すべき要求もあります。現場が望まない要求もユーザーとの対話を通じて収集しなければならないわけです。このように「真の要求」を導き出す要求開発は、要求のいろいろな発生源や直接・間接にそれに関わる関係者間の対話型コミュニケーションによる創造的活動と合意形成を通じて創り出されます。ユーザーとの創造的活動と合意形成は、アジャイルマニフェストの「個人とその相互作用を」、「顧客との協調を」という価値観に適合しており、要求開発へのアジャイルの適用の有効性を示しています。 要求開発を計画駆動型のウォーターフォールで行う場合は、不確定要素がある場合でも期限内にすべての要求を事前に詳細に決めなければならない、要求仕様の大量の詳細なドキュメントを事前に作成しなければならない、変更に柔軟に対応できないなどの課題があります。 一方、アジャイルというと狭義の開発プロセスに目が行きますが、プロダクトバックログを作り出す要求開発プロセスにも、アジャイルを採用すれば、ウォーターフォールでの課題を解決し、下記のような効果が期待できます。 ・経営戦略に合致し、ビジネスニーズを的確に反映し、関係者が全員合意した品質の高い要求仕様を効果的、迅速にまとめることができる ・反復に必要な要求仕様のみを詳細化すればよい(すべての反復に要求される詳細な要求仕様を事前に作成は不要-ムダの削減) ・要求側のマネジメントや関係者のフィードバックが得られ、それを反映した要求仕様が得られる ・振り返りにより要求開発プロセスの継続的改善が行われる これはアジャイルが、対話型コミュニケーション、漸進的反復的開発、顧客との協調、変化への柔軟な対応、ムダの削減などを価値観としているからです。なお、このようなアジャイル要求開発の事例としては、図1に示すようなボーイング社の例が報告されています(1)。 以上 参考資料 (1)Dick Carson,Philip Matuzic:Practical Agile Requirements Engineering,Lean-Agile Software Conference,Scrumalliance,2010 |
HOMEへ |