こんにちは、しらすです。
ソフトウェア開発の基本的な開発体制である「アジャイル開発」について学習したのでここにまとめたいと思います。
※今回は用語集的にまとめてみました。概要レベルのまとめなので、実際にプロジェクトが始まったときのTipsとして利用するのが良いと思います。
アジャイル開発とウォーターフォール
既存のよくある開発モデルとして、ウォーターフォール型の開発が使われてきました。特徴としては、開発が開始する段階で開発内容が確定しており、一つの開発フェーズが完了しないと次のフェーズに移行できません。また開発フェーズは不可逆的です。定義済み線形プロセスモデルとも言えます。
これに対し、アジャイル型の開発は、開発全体を小さな要件に分割し、要件→開発→テストを繰り返し行う開発手法です。実証的/反復的プロセスモデルとも言えます。
アジャイル型で開発を行うことで、開発途中での要件の変更を柔軟に受け入れられる、開発途中でも成果物が随時取得可能というメリットが得られます。また、ウォーターフォールに比べて早いフェーズでテストが実施できるため、問題点を早く見つけられます。
アジャイル開発のメリットを最大化するには「もっとも重要な要件から開発を進める」ことが必要です。
アジャイル開発を行う際の重要な思考として「包括的なドキュメントよりも、動くソフトウェアを進捗の尺度とする」ということを心に留めておく必要があります。
価値と原則
アジャイルソフトウェア開発宣言ではアジャイル開発の4つの価値と12の原則を宣言しています。
4つの価値
従来大事にされてきた二次的価値に対して、アジャイル開発では以下の一次的価値に重点を置いて開発を進めます。
一次的価値 | 二次的価値 |
---|---|
個人と対話 | プロセスやツール |
動くソフトウェア | 包括的なドキュメント |
顧客との協調 | 契約交渉 |
変化への対応 | 計画に従う |
12の原則
- 顧客を満足させる
- 変化を歓迎する
- ソフトウェアを頻繁にリリースする
- 連携する
- 個人の意欲を引き出す
- 対面でのコミュニケーションを利用する
- 動くソフトウェアが進捗を意味する
- 一貫したペース
- 卓越した技術
- シンプルさ
- 自律的
- 振り返り
アジャイルプロジェクト管理モデル
5つのフェーズから構成されています。これらのフェーズは一度回して終わりではなく巡回させることに価値を見出します。
- 構想
- 推測
- 探索
- 適応
- 終結
アジャイルの方法論
- エクストリームプログラミング
- リーンの原則とツール
- カンバン
- クリスタル手法
- FDD(ユーザー機能駆動開発)
- DSDM(動的システム開発方法)
- AMDD(アジャイルモデル駆動開発)
- DAD(規律的なアジャイルのリソース)
- TDD(テスト駆動開発)
- BDD(ビヘイビア駆動開発)
スクラムフレームワーク
検証と適応を行うためのフレームワーク。一つのスプリントは1~4週間程度とされる。多くはスプリントは2週間程度とされる。
一つのスプリントには以下の4つのミーティングが含まれます。
- スプリントプランニング
- デイリースクラム(毎日、最長15分)
- スプリントレビュー(成果物のレビューでも)
- スプリントレトロスペクティブ(チームで上手くいったこと、上手くいかなかったことを共有する)
ADAPT
アジャイルへの移行を成功させるために必要な5つのステップを定義している。組織全体でアジャイルのマインドセットを向上させる。
- 意識(問題点とは何か)
- 情熱
- 能力
- 推進
- 伝達
参考
富士通ソフトウェアテクノロジーズ「アジャイル開発とは(前編)アジャイル開発の概要とウォーターフォール開発との対比」
コメント