【開発手法】アジャイル?スクラム?

こちらの記事を参考に

こちらも参考

1.スクラム開発とはアジャイル開発の一つである

2.アジャイルとは?

3.アジャイルとウォーターフォールとの違い

4.アジャイル開発のメリット&デメリット

5.スクラムとは?

6.スクラムについて更に詳しく

7.スクラム開発のメリット&デメリット

1.スクラム開発とはアジャイル開発の一つである

表題の通り

2.アジャイルとは?

アジャイルとはソフトウェア開発の設計、実装、テストを反復していく開発手法

そしてアジャイル開発には、「スクラム」、「XP」、「動的システム開発手法(DSDM)」などいくつか種類があります。

それぞれの種類に特徴はありますが、基本方針は同じで、「決められた短めの期間で機能を開発し、それを何度も繰り返していく」という手法になります

3.アジャイルとウォーターフォールとの違い

ウォーターフォール開発

一つの部品ごとに開発を行うのではなく、開発工程を一つ一つ終わらせていくという手法です。

ウォーターフォール開発は、ソフトウェアを作るための工程として、「要件定義」「設計」、「実装」「テスト」とタスクの種類ごとに分けて<一つ一つこなしていきます。

基本的に、一つの工程が終わってから次の工程に進み、次へ進んだ後は前の工程に戻ることはありません

今まで自分が勤めた職場ではこの形式の開発ばかりでした

アジャイル開発

「システムを一つのモジュール、機能、要件などを軸に、決められた短い期間で開発できるように分けてタスク化し、そのタスクを何度も繰り返しこなす」ことで開発を進めます。

ウォーターフォールでは原則、「要件定義⇒設計⇒実装⇒テスト」という流れを一度だけ行うのに対し、アジャイル開発ではその流れを何度も繰り返します

そして、その流れを行うたびに、その成果物を評価します

4.アジャイル開発のメリット&デメリット

メリット

・常にシステムの動作を仕様書などではなく実際に動かしながら確認できるため、顧客側と開発側に認識齟齬があった場合も初期の段階で発見できることが多い。

・試行錯誤を繰り返しながらの開発のため、システムの仕様を変更したくなった場合も方向転換しやすい(ウォーターフォール開発と比較した場合)。

デメリット

・顧客側は成果物の評価のため常にプロジェクトに参加する必要がある(ウォーターフォールの場合、顧客は基本的にマイルストーンのみ参加する)。

・仕様変更が容易にできるため、実験を繰り返してシステム開発が進まなくなったり、途中で要件や機能が追加されて開発期間とコストが増加したりすることがある。

5.スクラムとは?

スクラム開発とはアジャイル開発の一つである

通常、5~9人ほどのチームメンバーが2~4週間程度かけて新しい機能を開発します。
「スプリント」と呼ばれる短い開発期間の中で機能の実装とその成果物の評価を行い、それを何度も繰り返してシステムを開発していきます。

6.スクラムについて更に詳しく

3つの役割

プロダクトオーナー
プロジェクトのステークホルダーで、開発するソフトウェアのビジョンを開発チームに共有します。プロダクトバックログと呼ばれる要件を書いたリストを作成します。

スクラムマスター
開発チームのリーダーで、開発メンバーが効率的にタスクをこなせるような環境を作ることが仕事になります。開発チームが開発期間内にすべてのタスクを終わらせることができるよう進捗を管理します。

開発メンバー
デイリースクラムと呼ばれるミーティングで進捗を確認しながらソフトウェア開発を行います。通常、自分たちでマネジメントを行う必要があります。

進め方

スクラム開発は、「スプリント」と呼ばれる開発期間を何度も繰り返すことによって、システム開発を進めていきます。

スプリントがどのくらいの長さかはプロジェクトによって異なりますが、通常は2週間から4週間程度になります。まず、スプリントの最初に開発チーム内でどのタスクを対応するかが決定されます。

スクラム開発では、プロダクトオーナーが作成した「プロダクトバックログ」と呼ばれる要件リストがあります。このリストにあるタスクは、「Todo(未完了のタスク)」「OnGoing(対応中)」「inreview(成果物の評価中)」「Done(完了)」の4つのステータスで管理されており、ステータスが「Todo」のタスクから今回のスプリントで開発されるものを選択します。

対応するタスクが決まると、開発メンバーは「デイリースクラム」と呼ばれる毎日のミーティングで進捗を確認しながら、開発を進めます。

そして、開発終了後、顧客側は成果物に対するレビューを行います。

この時、「ベロシティ」と呼ばれる開発チームのパフォーマンスも評価され、このベロシティをもとに次のスプリントがスケジュール通り完了できそうかどうか判断されます

そして、顧客側のレビューが完了すれば、そのスプリントは完了になり、また次のスプリントが始まります。

7.スクラム開発のメリット&デメリット

メリット

・常に日々のミーティングで仕事の方向性を確認・修正しているため、進捗状況を正確に把握できチームのタスクをスケジュール通りに進めやすい。

・スプリントは期間が短めで成果物はスプリントの度にフィードバックを受けるため、仕様変更に対応しやすい。

・各開発チーム・メンバーが開発できる量をスプリントごとに確認しているため、次回以降のスプリントでより正確にスケジュールの見積もりを行うことができる。また、開発チーム・メンバーの能力を把握することで生産性も改善しやすい。

デメリット

・仕様変更が容易なため、スコープクリープ(プロジェクトの範囲が肥大化すること)を引き起こすことがある。

・スプリントは期間が短いため、チームメンバーに初心者がいる場合、スケジュール通りに開発を進めづらくなる。

・開発中にチームメンバーから離脱者がでると、プロジェクトの進捗に大きな影響が出ることがある。

・各スプリントの後に回帰テストを実施する仕組みが無いと、品質を保つのが難しくなる。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする