適応型ソフトウェア開発-ライフサイクル
適応型ソフトウェア開発は、RADの実践から進化しました。チームの側面もこれらのプラクティスに追加されました。ニュージーランドからカナダまでの企業は、さまざまなプロジェクトや製品タイプで、適応型ソフトウェア開発を使用しています。
Jim Highsmithは、2000年に適応型ソフトウェア開発を公開しました。
適応型ソフトウェア開発の実践は、変化に対応する能力を提供し、ほとんど計画や学習なしで製品が進化するという激動の環境に適応できます。
ASDライフサイクルのフェーズ
適応型ソフトウェア開発は、進化モデルのように循環的であり、フェーズ名は複雑なシステムの予測不可能性を反映しています。アダプティブ開発ライフサイクルのフェーズは次のとおりです。
- Speculate
- Collaborate
- Learn
これらの3つのフェーズは、適応型ソフトウェア開発の動的な性質を反映しています。アダプティブ開発は、決定論を創発に明示的に置き換えます。それは単なるライフサイクルの変化を超えて、経営スタイルのより深い変化へと変わります。適応型ソフトウェア開発には、動的なSpeculate-Collaborate-Learnライフサイクルがあります。
アダプティブソフトウェア開発ライフサイクルは、タスクではなく結果に焦点を合わせており、結果はアプリケーション機能として識別されます。
推測する
定期保険は決定論的すぎて、望ましい結果についてかなり高い確実性を示しています。計画への適合という暗黙的および明示的な目標は、プロジェクトを革新的な方向に導くマネージャーの能力を制限します。
適応型ソフトウェア開発では、計画という用語は推測という用語に置き換えられます。チームは推測しながら計画を放棄しませんが、複雑な問題における不確実性の現実を認識しています。Speculateは、探索と実験を奨励します。短いサイクルでの反復が推奨されます。
コラボレーション
複雑なアプリケーションは構築されておらず、進化しています。複雑なアプリケーションでは、大量の情報を収集、分析し、問題に適用する必要があります。激動の環境では、情報の流れが速くなります。したがって、複雑なアプリケーションでは、大量の情報を収集、分析し、問題に適用する必要があります。これにより、チームのコラボレーションによってのみ処理できる多様な知識要件が生まれます。
コラボレーションには、結果を生み出したり、知識を共有したり、意思決定を行ったりするために共同で作業する能力が必要になります。
プロジェクト管理のコンテキストでは、コラボレーションは、従来の管理手法による管理と、出現に必要なコラボレーション環境の作成および維持との間のバランスを示します。
学ぶ
ライフサイクルの学習部分は、プロジェクトの成功に不可欠です。チームは、次のようなプラクティスを使用して、知識を絶えず強化する必要があります。
- テクニカルレビュー
- プロジェクトの回顧展
- カスタマーフォーカスグループ
レビューは、各反復後に行う必要があります。開発者と顧客の両方が彼らの仮定を調べ、各開発サイクルの結果を使用して次の方向性を学びます。チームは学ぶ-
製品変更について
製品がどのように開発されているかについての基礎となる仮定のより根本的な変更
チームが大きな間違いではなく小さな間違いから学ぶことができるように、反復は短くする必要があります。
推測-共同作業-全体としてのサイクルを学ぶ
上記のSpeculate-Collaborate-Learnサイクルからわかるように、3つのフェーズが非線形でオーバーラップしていることは明らかです。
アダプティブフレームワークから次のことがわかります。
学習せずにコラボレーションしたり、コラボレーションせずに学習したりすることは困難です。
学習せずに推測したり、推測せずに学習したりすることは困難です。
協力せずに推測したり、推測せずに協力したりすることは困難です。