Appearance
入門編:アジャイル開発の基礎と考え方
アジャイル開発の基本的な概念、従来の開発手法との違い、土台となる価値観と原則を解説します。
アジャイル開発とは
アジャイル開発とは、ソフトウェアを小さな単位に分けて素早く開発し、変化に柔軟に対応しながら進める手法の総称です。「アジャイル(Agile)」には「俊敏な」「機敏な」という意味があります。
従来の「ウォーターフォール開発」では、計画、設計、実装、テストを段階ごとに順番に進めます。この方法では、途中で仕様の変更が発生した場合に対応が難しく、開発期間の終盤まで動くソフトウェアを確認できません。
アジャイル開発では、1週間から数週間の短い期間(イテレーションまたはスプリント)ごとに、計画からテストまでを一通り行い、実際に動くソフトウェアを完成させます。短い期間で成果物を確認しながら進めるため、ユーザーの意見を取り入れやすく、計画の修正も容易です。
アジャイルソフトウェア開発宣言
2001年に米国の技術者たちがまとめた「アジャイルソフトウェア開発宣言」では、4つの重要な価値基準が提示されています。
プロセスやツールよりも個人と対話を
決まった手順や道具を重視するよりも、チームメンバーや関係者同士の直接的な会話と協調を大切にします。
包括的なドキュメントよりも動くソフトウェアを
膨大な仕様書を作成することに時間をかけるよりも、実際に動作して価値を提供するソフトウェアを作ることを優先します。
契約交渉よりも顧客との協働を
契約条件に縛られて対立するのではなく、利用者の課題を解決するために顧客と協力して開発を進めます。
計画に従うことよりも変化への対応を
最初に立てた計画を頑なに守るよりも、状況の変化や新しい要求に合わせて柔軟に計画を見直します。
右側の事柄に価値がないわけではありませんが、アジャイル開発では左側の事柄により大きな価値を置きます。
アジャイルの12の原則
アジャイル宣言を具体的に実践するための行動指針として、12の原則が定められています。
- 顧客満足を最優先し、価値あるソフトウェアを早く継続的に提供する
- 開発の終盤であっても要求の変更を歓迎する
- 動くソフトウェアを、数週間から数か月の短い間隔で頻繁に届ける
- ビジネス側の人々と開発者は、プロジェクトを通じて日々一緒に働く
- 意欲ある人々を集めてプロジェクトを構成し、環境と支援を与えて信頼する
- 情報を伝える最も効率的で効果的な方法は、対面での会話である
- 進捗の最も重要な尺度は、動くソフトウェアである
- 持続可能な開発を維持し、一定のペースを保ち続ける
- 優れた技術と優れた設計に継続的な注意を払うことで俊敏性を高める
- シンプルさを重視し、作らない作業の量を最大化する
- 最良のアーキテクチャや要求、設計は、自己組織的なチームから生まれる
- チームが定期的に効率を高める方法をふりかえり、やり方を調整する
ウォーターフォール開発との比較
開発手法の選択を正しく行うために、2つの手法の特徴を整理します。
| 項目 | ウォーターフォール開発 | アジャイル開発 |
|---|---|---|
| 開発単位 | プロジェクト全体を一括で進める | 小さな機能単位で反復して進める |
| 計画と変更 | 初期の計画を厳格に維持する | 変更を前提に計画を柔軟に見直す |
| 成果物の確認 | 開発終盤のテスト工程で確認 | 各反復の終了ごとに動くものを確認 |
| 主な適用領域 | 要件が明確で変更が少ないシステム | 要求が変化しやすいサービスや新規事業 |
アジャイル開発は、ユーザーの要望が途中で変わる可能性が高い現代のソフトウェア開発において、リスクを最小限に抑えるための有効な選択肢です。