Scrum-overview

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

スクラム-概要

アジャイルは、ソフトウェア開発業界の大きな流行語の1つになりました。 しかし、アジャイル開発とは正確には何ですか? 簡単に言えば、アジャイル開発はソフトウェア開発チームとプロジェクトを実行する別の方法です。

何が新しいかを理解するために、従来の方法を要約しましょう。 従来のソフトウェア開発では、開発を進める前に製品要件が確定されます。

滝モデル

この特性を持つ最も一般的に使用されるソフトウェア開発モデルは、次の図に示すウォーターフォールモデルです。 ただし、ほとんどの場合、新しい機能が追加され、以前の要件も変更される可能性があります。 ウォーターフォールモデルは、このような要件の継続的な変更に対応するように構成されていません。 さらに、製品が完全に利用可能になるまで、ユーザーは製品の機能を明確にすることはできません。

ウォーターフォールモデル

反復増分モデル

反復インクリメンタルモデルでは、開発は、限られた数の最終要件および優先要件から始まります。 成果物は、製品の有効な増分です。 要件からコード開発に至る一連のアクティビティは、反復と呼ばれます。 増分の機能と、新しい、修正された、保留中の要件の一部またはすべてに基づいて、後続の反復に次の多くの要件が与えられます。 後続の反復の結果は、製品の強化された作業増分です。 これは、製品が必要な機能を達成するまで繰り返されます。

インクリメンタルモデル

通常、ユーザーは開発作業に関与していないため、コミュニケーションのギャップが生じ、機能が不正確になる可能性があります。 この関与は開発チームにとってポジティブですが、チームの時間を厳しく要求し、遅延を追加する可能性があります。 さらに、反復中の非公式な要件の変更は混乱を招く可能性があり、スコープのクリープも引き起こす可能性があります。 この前提により、アジャイル開発が生まれました。

アジャイル開発

アジャイル開発は反復的なインクリメンタル開発に基づいており、要件とソリューションはチームのコラボレーションを通じて進化します。 タイムボックス化された反復アプローチを推奨し、変更に対する迅速かつ柔軟な対応を促します。 これは理論的なフレームワークであり、開発チームが従うべき特定のプラクティスを指定するものではありません。 スクラムは、従う必要があるプラクティスを定義する特定のアジャイルプロセスフレームワークです。

アジャイルメソッドの初期の実装には、Rational Unified Process(1994)、_ Scrum_(1995)、_ Crystal Clear、Extreme Programming_(1996)、_ Adaptive Software Development、Feature Driven Development_(1997)、および_Dynamic Systems Development Method(DSDM)_(1995)が含まれます。 2001年にアジャイルマニフェストが公開された後、これらは現在*アジャイル方法論*と総称されています。

アジャイルマニフェスト

アジャイルマニフェストは2001年にソフトウェア開発者チームによって公開され、変化する要件や顧客の関与に対応するために開発チームに与える必要がある重要性を強調しています。

アジャイル宣言は次のとおりです。

「ソフトウェアを開発し、他の人がそれを行えるようにすることで、ソフトウェアを開発するより良い方法を発見しています。 この作業を通じて、私たちは価値を見出しました:

  • プロセスとツールに関する個人との対話
  • 包括的なドキュメンテーション上の作業ソフトウェア
  • 契約交渉を通じた顧客コラボレーション
  • 計画をたどることへの対応

つまり、右側のアイテムには価値があるが、左側のアイテムにはさらに価値がある。」

…アジャイルソフトウェア開発のためのマニフェスト、著者:ベック、ケント、他 (2001)

アジャイルマニフェストアイテムの定義

左側のマニフェストアイテムは、次のように説明できます。

Manifesto Item Description
Individuals and interactions

Importance needs to be given to:

  • チームメンバーの自己組織化と自己意欲
  • チームメンバー間の作業、説明、情報のための継続的な対話
Working Software Delivery of working software at short duration intervals helps gain customer trust and assurance in the team.
Customer collaboration Constant involvement of customer with the development team ensures communication of necessary modifications.
Responding to change Focus on quick response to the proposed changes, which is made possible with short duration iterations.

アジャイルマニフェストの重要な要素は、人々と協力する能力を信頼しなければならないということです。 このため、開発された特定のアジャイル手法は、プロジェクトのライフサイクル全体でチームワークとコラボレーションを強調することにより、チームメンバーの能力を引き出します。

アジャイルの主要原則

アジャイル宣言は、次の原則に基づいています。

Principle Description
Satisfaction and Delivery Customer satisfaction through early and continuous working software.
Welcoming Change Welcome changing requirements, even at later stages of development.
Deliver Frequently Deliver working software frequently (weekly rather than monthly).
Communication is the Key Ensure close association of developers with business people on daily basis.
Environment and Trust Build projects around motivated individuals. Give them necessary support and trust them.
Face-to-face Communication Encourage face-to-face conversation to ensure efficient and effective communication.
Software as Measure of Progress Working software is the primary measure of progress.
Sustainable Development Promote sustainable development with the ability to maintain a constant pace throughout the development.
Attention to Details Continuous attention to technical excellence and good design.
The Power of Less Simplicity is essential.
Self-organizing Teams Regular attention of the team on becoming effective in changing circumstances.

アジャイル手法

動的システム開発方法論(DSDM)

これは、ソフトウェアプロジェクト用のアジャイルフレームワークです。 従来のアプローチを微調整するために使用されました。 DSDMの最新バージョンはDSDM Aternと呼ばれます。 Aternという名前は、Arctic Ternの略です。これは、長距離を移動できる海鳥で、優先順位付けやコラボレーションなどの自然な作業方法であるメソッドの多くの機能を表しています。

スクラム

これは最も人気のあるアジャイルフレームワークであり、特にチームベースの開発環境内でタスクを管理する方法に集中しています。 スクラムは、反復および増分開発モデルを使用し、反復期間を短縮します。 スクラムは実装が比較的簡単で、迅速かつ頻繁な配信に焦点を当てています。

エクストリームプログラミング(XP)

これは、アジャイルソフトウェア開発の一種です。 短い開発サイクルで頻繁にリリースすることを推奨します。これは、生産性を向上させ、新しい顧客要件を採用できるチェックポイントを導入することを目的としています。 この方法論の名前は、従来のソフトウェアエンジニアリング手法の有益な要素が極端なレベルに引き上げられているという考えに由来しています。 (エクストリームプログラミングは、より高品質のソフトウェアをより生産的に生産するために人々を組織するソフトウェア開発分野です。)XPは、最終製品の品質に大きな違いをもたらす斬新なアプローチで分析、開発、およびテストフェーズに対処します。

テスト駆動開発(TDD)

これは、非常に短い開発サイクルの繰り返しに依存するソフトウェア開発プロセスです。まず、開発者は、目的の改善または新しい機能を定義する自動化されたテストケースを作成し、次にそのテストに合格する最小限のコードを生成します。最終的に、新しいコードを許容可能な標準にします。

Lean

これは、最終顧客の価値の創造以外の目標に対するリソースの支出を無駄にするための生産慣行であり、したがって、排除の目標です。 製品またはサービスを消費する顧客の観点から見た場合、価値という用語は、顧客が喜んで支払うアクションまたはプロセスとして定義されます。 リーンは、少ない作業で価値を維持することに重点を置いています。

かんばん

これは、高レベルの生産を改善し、維持するためのシステムです。 かんばんは、在庫費用を管理するために組織が採用している戦略であるジャストインタイム(JIT)を達成する1つの方法です。 かんばんは、生産システム全体の実行をサポートする効果的なツールとなり、改善を促進する優れた方法であることが証明されました。

結論

過去10年にわたって、企業はアジャイルプラクティスを使用してIT開発チームとプロジェクトの成功とパフォーマンスを劇的に改善した成功事例が増え続けています。 これにより、メディアやテクノロジー、大企業、さらには政府など、さまざまな業界でアジャイルが広く採用されるようになりました。

アジャイルフレームワークは、チームが以下の恩恵を受けるのに役立ちます。

  • 納品/市場投入までの時間の短縮
  • 不確実性とリスクを減らす
  • 顧客価値に注目して投資収益率(ROI)を向上させる

これらのさまざまなアジャイル方法論の中で、スクラムは過去20年間で世界中で非常に成功していることが証明されています。