●トピック
・アジャイルソフトウェア開発
・スパイラルモデル
・RAD
・プロトタイピング
・スクラム
・XP(エクストリームプログラミング)
・JAD
・改良プロトタイプモデル(MPM)
●深く知る
2001年、アメリカ・ユタ州、17名の技術者・プログラマーによってアジャイル開発が提唱されました。彼らは、より良い開発手法として「アジャイルソフトウェア開発宣言」を作成しました。
「私たちは、ソフトウェア開発の実践あるいは実践を手助けをする活動を通じて、よりよい開発方法を見つけだそうとしている。この活動を通して、私たちは以下の価値に至った。プロセスやツールよりも個人と対話を、包括的なドキュメントよりも動くソフトウェアを、契約交渉よりも顧客との協調を、計画に従うことよりも変化への対応を、価値とする。すなわち、左記のことがらに価値があることを認めながらも、私たちは右記のことがらにより価値をおく。(引用元:アジャイルソフトウェア開発宣言)」
従来のウォーターフォールモデルは開発途中での仕様変更や追加対応を前提としないものでした。しかしながら、顧客要望やビジネス速度に対応するために、追加のシステムが開発工程時に発生することは多くあり、この状況に即した開発手法を見直す必要がありました。プロセスとツールを介した個人と相互作用や、包括的なドキュメントを介したソフトウェアの作業、契約交渉を介した顧客のコラボレーション 計画など、人間を作業リソースではなく思考する生き物として扱うことがプロジェクトの成果に繋がる可能性もあります。アジャイルは、柔軟性の向上など、多くの最新の開発コンセプトを具体化しています。より小さなマイルストーンやチーム内の強力なコミュニケーション、およびより多くの顧客の関与による迅速なターンアラウンドを重視します。
スクラム開発モデルは、製品開発に関連して竹内弘高と野中郁次郎が「The New New Product Development Game」で最初に説明したアジャイルモデルです。 彼らは「リレーレースをやめてラグビーをする」と言いました。リレーというのはつまり前の作業が終わったら次の作業にバトンタッチをするウォーターフォールを指します。続けて、「代わりに、チームがユニットとして距離を移動しようとするラグビーアプローチでは、ボールを前後に渡すことで、今日の競争上の要件をより適切に満たすことができます。」 と言いました。なかなかユニークな例えです。アジャイル開発の手法はスクラムだけではありません。エクストリームプログラミング(XP)は、詳細な仕様を作成するプログラマーのペアで開発を行うアジャイル開発手法です。ペアで行う事のメリットは、コミュニケーションが増えることによって、シンプルさ、フィードバック、敬意を与えることです。反復作業が自然と促進され、品質も上がるというわけです。スパイラルモデルは、リスクを制御するために設計されたソフトウェア開発モデルです。各工程を何度も回しまくるものですが、その主たる目的はドキュメント主導またはコード主導のプロセスではなく、ソフトウェアプロセスへのリスク主導のアプローチになります。スパイラルモデルは、控えめな目標から始めてプロジェクトのステップを繰り返します。そして、さらに広いスパイラルで拡張します。リスク分析の結果やプロジェクトまたはプロセスの重大な欠陥が発生するたびに実行されます。スパイラルモデルで解決しているリスクとは、実現可能性にあります。そもそも、設計の段階では「本当にこんな事ができるのであろうか」と開発者は思います。そして、たびたび衝突します。しかし、スパイラルモデルでは既存のプロダクトに追加機能を実装する形で進められるため、開発者の実現可否の判断も格段に少なくなります。なおかつビジネス的な側面では、そのプロダクトに実際にニーズがあるのかは、公表しないと分かりませんし、もしかすると始めに導入する顧客から潜在的な要求を出してくれるかもしれません。小さく始めて実績を作り、潜在的な要求を吸収しながら拡大していくメリットがあります。次にRADです。RADの目標は、システムのビジネスニーズに対応することに特化します。技術的な安定は副産物であり、開発の速さに特化します。主に反復プロトタイピング、アクティブなユーザーの関与、およびコンピューター化された開発ツールを使用して迅速に実行されます。