Adaptive-software-development-concepts

提供:Dev Guides
移動先:案内検索

適応型ソフトウェア開発-コンセプト

この章では、適応ソフトウェア開発のさまざまな概念を理解します。

複雑な適応システム(CAS)理論

サンタフェ研究所のブライアンアーサーと彼の同僚は、複雑な適応システム(CAS)理論を使用して、物理学、生物学、進化、および経済学の理解に革命をもたらしました。

ブライアン・アーサーは、リターンの減少、均衡、決定論的ダイナミクスの基本的な仮定に支配されている彼らの見解は、現実を理解するのにもはや十分ではないと主流の経済学者を説得しようとする彼の20年以上を頂点にした。 新しい世界は、増加するリターン、不安定性、原因と結果を判断できないことの1つです。

2つの世界は、行動、スタイル、文化が異なります。 彼らは-

  • さまざまな管理手法
  • さまざまな戦略
  • 異なる理解

複雑なソフトウェア開発

ソフトウェアアプリケーションの範囲が爆発的に拡大しているため、ソフトウェア開発組織でさえ、上記と同様の矛盾が生じています。

  • 1つの世界は、安定性と予測可能性の基本に根ざした管理慣行に由来する決定論的開発によって表されます(アーサーの用語では、収益の減少を意味します)。
  • セカンドワールドは、予測不可能で非線形かつ高速なリターン環境の減少から増加へと移行する業界に代表されます。

この第二世界の問題に対処するために、Jig Highsmithは、確定的ソフトウェア開発とは異なるフレームワーク、適応ソフトウェア開発を提供しました。

適応ソフトウェア開発は、複雑なシステムに対処することに焦点を当てています-

  • 開発ライフサイクルのための適応型ソフトウェア開発。
  • 従来のプロジェクト管理プラクティスとは異なる考え方を要求する適応管理手法。

このチュートリアルでは、これらの両方の実装を理解できます。

適応型ソフトウェア開発(ASD)は2つの観点に基づいています-

  • この章の最初のセクションで示した、複雑な適応システム(CAS)理論に基づく概念的視点。
  • に基づく実用的な視点
  • 確定的ソフトウェア開発方法論の長年の経験。
  • ラピッドアプリケーション開発(RAD)技術に関するコンサルティング、練習、および執筆。また、ハイテクソフトウェア企業と協力して製品開発の管理を行っています。

この章では、適応ソフトウェア開発の概念的な観点を理解します。

複雑な適応システム(CAS)の概念

複雑な適応システム(CAS)理論には多くの概念があります。 適応型ソフトウェア開発は、これらの概念のうち2つに基づいています-

  • 出現
  • 複雑

出現

複雑なソフトウェア製品開発プロジェクトでは、結果は本質的に予測不可能です。 しかし、成功した製品は常にそのような環境から出現します。

これは、複合適応システム(CAS)理論で説明されているように、出現によって発生する可能性があります。 単純な例、鳥の群れ行動によって理解できます。

あなたが鳥の群れを観察するとき、あなたはそれに気づく-

  • 各鳥はしようとします
  • 他の鳥を含む環境内の他の物体からの最小距離を維持します。
  • 近隣の鳥と速度を一致させます。
  • 近所の鳥の質量の知覚中心に向かって移動します。
  • グループの行動のルールはありません。 唯一のルールは、個々の鳥の行動に関するものです。
  • しかし、鳥の群れという緊急行動があります。 誤った鳥が追いつくために殺到すると、群れは障害物の周りで分裂し、反対側で改革します。

これは、適応開発における最も困難なメンタルモデルの変更の要件を示しています。その個々の自由を管理および整理する方法から、創造的な新しい秩序が自然発生的な自己組織化から予期せず現れるという概念までです。

開発に加えて、管理の観点からも出現が最も重要な概念です。

複雑

ソフトウェア開発のコンテキストでは、複雑さは約です-

  • 開発者、顧客、ベンダー、競合他社、株主などのチームの個人、人数、スピード。
  • サイズと技術的な複雑さ。

適応型ソフトウェア開発プラクティス

アダプティブソフトウェア開発は、ソフトウェア管理の実践について異なる視点を提供します。 次のセクションでは、品質とRADの2つの重要なプラクティスを理解できます。どちらも要件を収集するための影響があります。

このチュートリアルの「適応型ソフトウェア開発の実践」の章で、すべての実践の詳細を見つけることができます。

品質

複雑な環境では、最初から何が正しいかを予測できないため、「最初に正しく行う」という昔からの慣習は機能しません。 適切な価値を生み出すための目標が必要です。 ただし、複雑な環境では、スコープ(機能、パフォーマンス、欠陥レベル)、スケジュール、リソースなどの値コンポーネントの組み合わせと順列が非常に大きいため、最適な値を得ることができません。 したがって、焦点は、競争市場で最高の価値を提供するためにシフトすることです。

RADプラクティス

RADプラクティスは一般的に以下の組み合わせを伴います-

  • 進化的ライフサイクル
  • カスタマーフォーカスグループ、JADセッション、テクニカルレビュー
  • タイムボックス化されたプロジェクト管理
  • 継続的ソフトウェアエンジニアリング
  • 戦場のある専用チーム

RADプロジェクトには、本質的に適応性のある、創発的なフレーバーがあります。 多くのIT組織はRADに反対しています。 ただし、マイクロソフトなどは、RADに匹敵する技術を使用して、信じられないほど大きく複雑なソフトウェアを作成しました。これは、基本的な世界観について疑問を投げかけるためです。

RADプラクティスとMicrosoftプロセスは、どちらも適応型開発の実際の例です。 それらにラベルを付けて(つまり、適応開発)、科学知識(つまりCAS理論)が増えていることに気付いて、なぜ機能するのかを説明します。 これは、これらのプラクティスをより広範囲に使用するための基礎を提供するはずです。