##Agile開発とウォーターフォール開発
アジャイル開発とウォーターフォール開発は開発方法やスキルなどを話すことではなく、プロジェクト全体の管理方法を意味する。
##ウォーターフォール開発
既存の普通の管理方法って「ウォーターフォール開発」とよく言うが、これはプロジェクト全般の機能を対象にして要件定義→設計→開発→テストの順で工程を進む。この「ウォーターフォール開発」は前段階の工程に漏れや間違いがないことが前提として次の工程が行われますが、下記の頂点と弱点を持っている。
- 頂点
- 1.プロジェクト全体のスケジュールを立てやすい
- 2.各工程ごとにタスクを担当者に割り振れるので、プロジェクト開始後の進捗を比較的管理しやすい
- 3.ロジェクトの開始当初に見積もった計画通りに各工程を遂行していきます。そのため、開発のための費用や、SE(システムエンジニア)やプログラマーの必要人員数が予測できる
- 弱点
- 1.プロジェクト進行中や成果物を見た後に仕様変更が生じた際には大きな手間がかかってしまう
- 2.各工程の成果物が必要となります。そのため、プロジェクトの規模が大きければ大きいほど書類の量は膨大なものとなる
##Agile開発
アジャイル(Agile)開発は従来のウォーターフォール開発よりも開発期間の短縮が可能。
アジャイル開発では、ソフトウェアの計画段階で厳密な仕様を決めずに、だいたいの仕様と要求だけを決める。これは「開発途中に仕様や設計の変更があることは当たり前」とのことを前提にする。クライアントが求めるニーズに最大限応えることが可能。小さな単位に分けられた開発を「計画」→「設計」→「実装」→「テスト」と行いながら、機能のリリースを繰り返します。
- 頂点
- 1.不具合が発覚した際に戻る工数が少ない
- 2.計画段階で綿密な仕様を決めないため、開発途中でユーザーとコミュニケーションを取りながらフィードバックできる
- 3.仕様変更や追加に対応可能なため、ユーザーのニーズに最大限応えることができ、高い満足度が得られる
- 弱点
- 1.計画段階で厳密な仕様を決めていないため、開発の方向性がブレやすい
- 2.良くしようと改善を繰り返し、テストやフィードバックで変更・追加を加えていくことで、当初の計画からズレてしまう可能性があり
- 3.スケジュールや進捗具合が把握しにくくコントロールが難しくなる
##参考
[参考1]
(https://hnavi.co.jp/knowledge/blog/agile_software_development/)
[参考2]
(https://backlog.com/ja/blog/advantages-and-disadvantages-for-waterfall-model/)