アジャイルソフトウェア開発(http://www.agilemanifesto.org/)とは,たとえば著名なKent Beckの「エクストリームプログラミング(XP,またはeXtreme Programming)」(http://www.amazon.com/Extreme-Programming-Explained-Embrace-Change/dp/0201616416)の前提となる開発スタイルのことであり,顧客の要求を徐々に明らかにそして適時に要求仕様に変更を加えて,顧客の意思決定をサポートするようにプロトタイプシステムに反映させる漸次的反復型の開発プロセスを意味する.
ソフトウェアに対する要求仕様を反映させるタイミングという観点からすると,アジャイルソフトウェア開発とウォーターフォールモデルは開発プロセスとしては対極に位置する.要求仕様の決定から伝播する意思決定プロセスの結果がソフトウェアであると考えれば,開発チームの構成員が大規模になれば,意思の伝達コストもしくはコミュニケーションコストを考えてウォーターフォールモデルによる開発プロセスを取らざるを得ない.一方,開発チームの構成員が比較的小規模であれば,アジャイルソフトウェア開発もしくはウォーターフォールモデルのどちらかを選択することができる.
我々のソフトウェア開発チームは,3つのサブチームに分かれており,WebUI,検索エンジン,XMLデータ生成をそれぞれ担う.要求定義の順序からいえば,WebUIとXMLデータの構成が決定されたのち,検索エンジンを中心としたシステム開発がそれらを受けて動き出す.ここで,それぞれのサブチームはプロダクトに責任を持った実務担当が一人いて,それをサポートするように必要事項のネゴシエーションを行う.サブチームが全体のチームを構成する要員であるという自覚が存在すれば,サブチーム間のネゴシエーションはスムーズに行われ,要求仕様の変更に対する許容度を高く維持できる.結果としてアジャイルソフトウェア開発が可能となる.これが,ひとたび責任のなすりつけ合いのような状況に陥れば,どこが主導権を握るか,言った言わないの攻防が予想され,お金の流れと一致した一通りの意思決定ルートだけが確保され,さながら後戻りの許されないウォーターフォール開発となる.
アジャイルソフトウェア開発を実践すること,それは究極的にユーザーの要求を反映させた適時に役立つソフトウェアの開発可能性を高めることであり,チーム全体の場のエネルギーをどのように維持していくかがプロジェクトの成否のカギを握る.したがって,全体を統括するリーダーの力量とそのチーム構成員との良好な関係は必要条件である.
0 件のコメント:
コメントを投稿