支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡

  • TOP
  •   
  • コラム
  •   
  • アジャイル開発とはなにか

【Keyword】

ユーザーストーリー アジャイル開発において「要件」にあたる用語です。
イテレーション(スプリント) 「iteration:反復・繰り返し」と訳されます。機能ごとの一連の開発工程を優先順位に沿って短い期間にまとめ反復することで完成度を高めていく、繰り返しの単位となるサイクルのことです。
ベロシティ イテレーションごとに開発チームが完了できたユーザーストーリーの合計値
リリース計画 1つの機能もしくはプロジェクトに対して、いつまでにどの機能をリリースするか(ユーザーストーリーの優先度や各イテレーションの長さ、ゴール)など仕様の大枠を管理します。アジャイル開発は非常に流動的であり、状況に合わせて更新され精度を上げていきます。

「アジャイル開発」とは?

現在世界で主流とされているシステム・ソフトウェアなどのプロジェクト開発手法の一つです。 アジャイル開発は2001年にアメリカ合衆国のユタ州に17名の技術者が集まり、「アジャイルソフトウェア開発宣言」がまとめられたのが始まりです。アジャイル(Agile)は「素早い・機敏な」と訳されます。開発工程(要件定義→設計→開発→実装→テスト→運用)をイテレーションと呼ばれる小さな機能単位に分け、優先度の高い重要な機能から小さなサイクルで繰り返し行うことでリスクを最小化しようとする開発手法です。最大の特徴は、開発期間を大幅に短縮することができ、開発途中での仕様変更、予算や納期に対しても柔軟に対応可能であるということです。アジャイル開発は、開発中に新しい機能を追加したり仕様変更などを臨機応変に決定するようなプロジェクトに多く採用されています。

他にはどのような開発手法があるの?

「ウォーターフォール開発」

アジャイル開発以前に主流とされていた手法です。最初に全体の機能設計・計画を細部まで決定し、この計画に従ってひとつの大きなサイクルで開発・実装していく手法です。アジャイル開発がチームを機能ごとに分割しているのに対し、ウォーターフォール開発は工程ごとに分割します。 始めに全ての工程を細部まで決定してから着手するため簡潔で、スケジュールや進捗状況が把握しやすい反面、実際に開発が始まるまでに時間が掛かり、1つの工程が完了したらその成果物を元に次の工程へ進む方式のため、開発途中での仕様変更や追加対応が困難な傾向にありました。開発途中で仕様の変更や漏れなどが発生した場合、前の工程から再度見直しを行う必要もあり追加料金や開発期間の延長の原因にも繋がりました。ウォーターフォール開発は、しっかりと計画が立てられた長期プロジェクトで多く採用されています。

アジャイル開発にも複数の手法が存在する

「スクラム開発」

チームワークを重視した、チームで効率的に開発に取り組み高いモチベーションを持って作業を行うことができる開発手法です。開発を進めるためのフレームワークを「スクラム」、開発の1つの期間の単位を「スプリント」と呼びます。チームの成果達成のための方法を全員で考え、各開発メンバーが開発期間ごとの見積もりをたて期限を決めるため、自立的なチームが形成されます。 スクラムでは「プロダクト・バックログ」と「スプリント・バックログ」の2つのバックログを定義しています。「プロダクト・バックログ」は、実装する機能を記載し、「スプリント・バックログ」は、各スプリントでの作業計画を示します。プロダクト・バックログを定義し優先順位を決める責任者を「プロダクトオーナー」、プロジェクトマネージャーにあたる、プロジェクトを円滑に進めるための役割は「スクラムマスター」と呼ばれます。

「エクストリーム・プログラミング(XP:Extreme Programming)」

技術面に重きをおいたプログラマー中心の開発手法です。 事前計画よりも仕様・要件変更への柔軟な対応を重視しており、その特徴は「4つの価値」をチーム内で共有することです。 ①ステークホルダー間のコミュニケーション②必要最低限のシンプルな設計 ③テストを頻繁に行いそのフィードバックを重視④仕様・要件変更に立ち向かう勇気

「ユーザー機能駆動開発(Feature Driven Development:FDD)」

顧客(ユーザー)目線で価値のある機能を重視した開発手法です。 顧客の要望を明確にし必要な機能を選定し、開発するチームに分けて計画・設計を行います。 アジャイル開発の中でも大規模な案件に対応しやすいのが特徴です。

アジャイル開発とウォーターフォール開発の比較

「顧客の要求・変更への対応」

アジャイル開発では、開発開始段階で厳密な仕様を決めているわけではないため、不具合や顧客の要求・仕様変更が起きた場合でも小さな開発単位で繰り返しているため変更対応しやすい。変更追加を行っていくことで方向性がぶれやすい問題もある。ウォーターフォール開発では、始めに全ての工程を細部まで決定してから着手するため開発が始まるまでに時間が掛かり、開発開始前に仕様変更や要求を行うため、開発途中の変更対応は困難です。製品の仕様は一度決定したら大きな変更はなく、仕様、機能、品質全てにおいて厳密な品質とルールが設けられているため安定した製品となります。

「サービス提供」

アジャイル開発では、イテレーションごとの開発を行なっているため、イテレーションごとにサービスを提供します。ウォーターフォール開発では、全ての工程が終了してから提供されます。

「テスト」

アジャイル開発ではイテレーションごとにテストを行いますが、ウォーターフォール開発では全体でのテスト工程でのみ行われます。

「開発」

アジャイル開発では各技術者が全ての開発工程に参加しますが、ウォーターフォール開発では各工程ごとで技術者が分かれます。

「開発スケジュール」

アジャイル開発では、はじめに開発スケジュールを決めているわけではなく、チームごとに小さな単位で開発を行なっているため、スケジュールや進捗状況の把握が難しい。ウォーターフォール開発では、はじめに開発スケジュールを決めているので、現状や進捗状況が簡潔でわかりやすい。

「人材育成」

アジャイル開発では、全ての開発工程に参加するためマルチに経験を積むことができます。ウォーターフォール開発では、工程ごとに技術者が特化しているため人材育成が比較的安易とされています。