ハイブリッド開発

 ハイブリッド(Hybrid)の意味を辞書で引きますと、雑種、混成、混成物という意味です。ハイブリッドといいますと最近はハイブリッドカーが有名です。ハイブリッドカーは内燃機関と電動機を動力源として備えた自動車ですが、内燃機関と電動機のそれぞれの優れた機能を利用した混成のエンジンで燃費性能のよい自動車です。ハイブリッド開発とは、ウォーターフォール型開発とアジャイル開発のそれぞれの優れたところを利用した混成のソフトウェア開発方法ということになります。ビジネス環境の変化の大きい時代にあっては、ウォーターフォール型開発手法を使って1年とか2年とかといった長い時間かけて構築した情報システムが、リリースした時点ですでにビジネス要求やユーザー要求と合致していないものになってしまうリスクがあります。一方、アジャイル開発では、プロジェクトの成果をいち早く刈り取ることができますし、もしうまくいかなければ、早い段階でプロジェクトを止めることができ、傷を最小限に食い止めることもできます。技術面でもユーザー要求の確認の面でも、プロジェクトの最終フェーズでのシステムテストにおいて致命的な問題が発覚するというようなリスクを軽減できます。アジャイル開発のメリットは、顧客と開発者が一体となったプロジェクトチームを組み、コスト、スケジュール、品質などについて常に共通認識を持ち、短い反復を繰り返して進めていくことにより、要求の間違いの早期発見、要求変更の早期対応が可能になることです。欧米を中心とした海外では、アジャイルプロセスを適用した大規模システム開発の成功事例が増えており、アジャイル開発を採用する企業が大幅に増えています。

 しかし、従来のウォーターフォール開発に慣れた企業にとっては、アジャイル開発の採用はチャレンジとなります。短期間で要求定義とリリースを繰り返し行うことは、開発者と顧客が緊密に連携してプロジェクトをすすめることであり、必然的に顧客企業のメンバーがプロジェクトに深く時間的にも長く関与することが必要になります。また、契約形態も大型開発案件にみられる一括請負型固定価格契約の受託開発は、アジャイル開発普及の障害となっています。さらにウォーターフォール型開発に特化して磨き上げてきた品質管理方法も導入の妨げとなります。

 そこで、柔軟に変更に対応するというアジャイル開発の良いところと計画的にものごとを進めるというウォーターフォール型開発の良いところを組み合わせてハイブリッド開発でソフトウェア開発を行うことは、変化の激しい大競争時代に顧客や開発者にとって大変メリットがあるものと考えられます。ハイブリッド開発にはいくつかのパターンがあります。ソフトウェアライフサイクルのあるフェーズにはアジャイル開発を適用し、別のフェーズにはウォーターフォール型開発を適用するといったハイブリッド開発です。例えば、要求定義フェーズではウォーターフォール型開発を使って要求を確定ししっかりドキュメントを作り、開発フェーズではアジャイル開発を適用して、変更要求に柔軟に対応しながら開発していくようなパターンや、逆に要求定義フェーズにおいて、要求仕様がなかなか定まらないようなケースに対して、アジャイル開発を利用したプロトタイピング方法で要求を確定させ、開発フェーズはウォーターフォール型で計画に従って開発するなどといったようなパターンがあります。

 2011年のJama Software社の調査結果(1)によると、米国におけるソフトウェア開発プロセスの開発手法をアジャイル、ウォーターフォール、ハイブリッド、その他に分けた調査では、ハイブリッドが40%、ウォーターフォールが26%、純粋のアジャイルが19%、その他が15%となっています。ハイブリッドが多い理由としては、大半の企業が、アジャイルの良さをソフトウェアライフサイクルのすべてのフェーズで生かすことができないからと分析しています。特に大企業は、要求定義を開発の前にウォーターフォールで決定することを好んでいるからと分析しています。またフォレストリサーチのアナリストによると、大量過ぎるドキュメントは開発者の生産性を下げるが、ドキュメントが不足すると、チームの成功の妨げになるので、プロジェクトの状況によってドキュメントの量をバランスする必要があると述べています。また別の調査報告によりますと、分散開発環境ではチームは分散しているので良いコミュニケーションするために事前の詳細なドキュメントが必要となり、純粋のアジャイルでなく、ハイブリッドの対応が有効であると述べています。また、顧客と開発者間の固定価格での契約形態では、純粋のアジャイルでは顧客の変更要求に対して開発者は柔軟に対応しなければならないため、必ずしも契約がうまく機能しません。これに対して、ハイブリッドであると、開発を始める前に要求定義フェーズを設け、ウォーターフォール的に要求定義をしっかり実施することにより、開発フェーズでの変更が大幅に少なくなるため、固定価格契約形態でも十分対応できると述べています。
                                                                    以上
参考資料
(1) John Simpson, Report on The State of Requirements Management, 2011                                 


                         HOMEへ