スクラム-概要

アジャイルは、ソフトウェア開発業界の大きな流行語の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)が含まれます。これらは現在、まとめてagile methodologies、2001年にアジャイルマニフェストが公開された後。

アジャイルマニフェスト

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

アジャイルマニフェストは次のとおりです。

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

  • プロセスとツールを介した個人と相互作用
  • 包括的なドキュメントを介した作業ソフトウェア
  • 契約交渉をめぐる顧客のコラボレーション
  • 計画に従った切り替えへの対応

つまり、右側のアイテムには価値がありますが、左側のアイテムにはもっと価値があります。」

…アジャイルソフトウェア開発のマニフェスト、著者:Beck、Kent、他。(2001)

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

左側のマニフェスト項目は次のように説明できます。

マニフェストアイテム 説明
個人と相互作用 重要性は以下に与えられる必要があります:
  • チームメンバーの自己組織化と自己動機付け
  • チームメンバー間の仕事、説明、情報のための継続的な相互作用
作業ソフトウェア 動作するソフトウェアを短期間で提供することで、チーム内で顧客の信頼と保証を得ることができます。
顧客とのコラボレーション 開発チームとの顧客の絶え間ない関与は、必要な変更のコミュニケーションを確実にします。
変化への対応 提案された変更への迅速な対応に焦点を合わせます。これは、短時間の反復で可能になります。

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

アジャイルの主要原則

アジャイルマニフェストは、次の原則に基づいています。

原理 説明
満足と配達 早期かつ継続的に機能するソフトウェアによる顧客満足度。
歓迎の変化 開発の後の段階でも、要件の変更を歓迎します。
頻繁に配信 動作するソフトウェアを頻繁に(毎月ではなく毎週)配信します。
コミュニケーションが鍵 開発者とビジネスマンの密接な関係を日常的に確保します。
環境と信頼 やる気のある個人を中心にプロジェクトを構築します。彼らに必要なサポートを与え、彼らを信頼してください。
対面コミュニケーション 効率的かつ効果的なコミュニケーションを確保するために、対面での会話を奨励します。
進歩の尺度としてのソフトウェア 動作するソフトウェアは、進歩の主要な尺度です。
持続可能な発展 開発全体を通して一定のペースを維持する能力を備えた持続可能な開発を促進します。
詳細への注意 卓越した技術と優れたデザインへの継続的な注意。
少ない力 シンプルさが不可欠​​です。
自己組織化チーム 状況の変化に効果的になるためのチームの定期的な注意。

アジャイル手法

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

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

スクラム

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

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

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

テスト駆動開発(TDD)

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

リーン

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

かんばん

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

結論

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

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

  • 納品/市場投入までの時間の短縮
  • 不確実性とリスクを軽減する
  • 顧客価値に焦点を当てることにより、投資収益率(ROI)を向上させる

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