【ソフトウェア開発】アジャイル手法の概要集

ビジネススキル

こんにちは、しらすです。

ソフトウェア開発の基本的な開発体制である「アジャイル開発」について学習したのでここにまとめたいと思います。

※今回は用語集的にまとめてみました。概要レベルのまとめなので、実際にプロジェクトが始まったときのTipsとして利用するのが良いと思います。

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

アジャイル開発とは(前編)アジャイル開発の概要とウォーターフォール開発との対比」より引用

既存のよくある開発モデルとして、ウォーターフォール型の開発が使われてきました。特徴としては、開発が開始する段階で開発内容が確定しており、一つの開発フェーズが完了しないと次のフェーズに移行できません。また開発フェーズは不可逆的です。定義済み線形プロセスモデルとも言えます。

これに対し、アジャイル型の開発は、開発全体を小さな要件に分割し、要件→開発→テストを繰り返し行う開発手法です。実証的/反復的プロセスモデルとも言えます。

アジャイル型で開発を行うことで、開発途中での要件の変更を柔軟に受け入れられる開発途中でも成果物が随時取得可能というメリットが得られます。また、ウォーターフォールに比べて早いフェーズでテストが実施できるため、問題点を早く見つけられます

アジャイル開発のメリットを最大化するには「もっとも重要な要件から開発を進める」ことが必要です。

アジャイル開発を行う際の重要な思考として「包括的なドキュメントよりも、動くソフトウェアを進捗の尺度とする」ということを心に留めておく必要があります。

価値と原則

アジャイルソフトウェア開発宣言ではアジャイル開発の4つの価値と12の原則を宣言しています。

4つの価値

従来大事にされてきた二次的価値に対して、アジャイル開発では以下の一次的価値に重点を置いて開発を進めます。

一次的価値二次的価値
個人と対話プロセスやツール
動くソフトウェア包括的なドキュメント
顧客との協調契約交渉
変化への対応計画に従う

12の原則

  1. 顧客を満足させる
  2. 変化を歓迎する
  3. ソフトウェアを頻繁にリリースする
  4. 連携する
  5. 個人の意欲を引き出す
  6. 対面でのコミュニケーションを利用する
  7. 動くソフトウェアが進捗を意味する
  8. 一貫したペース
  9. 卓越した技術
  10. シンプルさ
  11. 自律的
  12. 振り返り

アジャイルプロジェクト管理モデル

5つのフェーズから構成されています。これらのフェーズは一度回して終わりではなく巡回させることに価値を見出します。

  1. 構想
  2. 推測
  3. 探索
  4. 適応
  5. 終結

アジャイルの方法論

  1. エクストリームプログラミング
  2. リーンの原則とツール
  3. カンバン
  4. クリスタル手法
  5. FDD(ユーザー機能駆動開発)
  6. DSDM(動的システム開発方法)
  7. AMDD(アジャイルモデル駆動開発)
  8. DAD(規律的なアジャイルのリソース)
  9. TDD(テスト駆動開発)
  10. BDD(ビヘイビア駆動開発)

スクラムフレームワーク

検証と適応を行うためのフレームワーク。一つのスプリントは1~4週間程度とされる。多くはスプリントは2週間程度とされる。

一つのスプリントには以下の4つのミーティングが含まれます。

  1. スプリントプランニング
  2. デイリースクラム(毎日、最長15分)
  3. スプリントレビュー(成果物のレビューでも)
  4. スプリントレトロスペクティブ(チームで上手くいったこと、上手くいかなかったことを共有する)

ADAPT

アジャイルへの移行を成功させるために必要な5つのステップを定義している。組織全体でアジャイルのマインドセットを向上させる。

  1. 意識(問題点とは何か)
  2. 情熱
  3. 能力
  4. 推進
  5. 伝達

参考

富士通ソフトウェアテクノロジーズ「アジャイル開発とは(前編)アジャイル開発の概要とウォーターフォール開発との対比」

アジャイル開発とは(前編)アジャイル開発の概要とウォーターフォール開発との対比
迅速にソフトウェアを開発する技法として、アジャイル開発が近年ますます注目されてきました。本稿では、アジャイル開発プロセスの概要を述べます。また、アジャイル開発とウォーターフォール開発の特徴を比較します。

コメント