2つの開発手法
ウォータフォールモデル
水が上から下に流れるように、一つずつの工程を計画・達成(成果)しながら進めていく手法です。
また、「多くの」詳細なドキュメントを作ることが一般的です。
今まで学んできた、SLCPの開発プロセスを振り返ってみると、システム要件定義から設計、開発、テスト、ソフト受け入れなどの、工程があります。それらを意識してみるとイメージしやすいと思います。
- メリット
計画が立てやすく、現在の工程がどこまで進んでいるのかの把握が容易です。
また、工程ごとの担当者の役割範囲が分けやすく、明確です。
そのため、品質保証が必要な開発や大規模開発に向いています。 - デメリット
作業を進めていく中で、問題が発生したとき、戻りづらく、コスト負担が大きくなります。
また、ドキュメントを作成したが、保守する中で最新にしていくことが難しい。
アジャイル開発モデル
アジャイル(Agile)とは「素早い」。短期間の中で要件定義⇨設計⇨開発⇨テスト⇨リリースを行い、それを繰り返しながら開発していく手法です。
そして、世の中の変化やユーザーニーズに対応していく開発モデルです。
また、エンジニアだけでなく顧客を含めたチーム単位で開発を進めていきます。チームメンバーは、ウォータフォールモデルのように役割が明確ではなく、チームで分担し作業を完了します。
時代の流れに沿った、ソフトウェア開発する場合、とにかくスピードが求められます。「ウォータフォールモデル」は、完成するまで何も享受する(使う)ことができません。そのため、出来上がった時点で技術レベルや世の中の流行に乗り遅れている可能性があります。
また、長期間/コストをかけて開発したものが、ニーズとマッチしておらず、使われないということも起こります。
そのような問題を解決するために生まれたのがアジャイル開発です。
- メリット
- 事前に細かい計画を立てずに、素早く開発し製品としてリリースできる。
- ユーザーニーズに合わせて、仕様変更にも柔軟に対応することができる。
- デメリット
- ドキュメントが少ないため、運用・保守などのコストが上がる可能性がある。
- 工程単位で見積もりしづらく、正確な見積もりを求められるようなプロジェクトには向いていない。
<アジャイルソフトウェア開発宣言>
私たちは、ソフトウェア開発の実践
あるいは実践を手助けをする活動を通じて、
よりよい開発方法を見つけだそうとしている。
この活動を通して、私たちは以下の価値に至った。
プロセスやツールよりも個人と対話を、
包括的なドキュメントよりも動くソフトウェアを、
契約交渉よりも顧客との協調を、
計画に従うことよりも変化への対応を、
価値とする。すなわち、左記のことがらに価値があることを
認めながらも、私たちは右記のことがらにより価値をおく。
この宣言は、この注意書きも含めた形で全文を含めることを条件に自由にコピーしてよい。
(アジャイルソフトウェア開発宣言)
<アジャイル宣言の背後にある原則>
私たちは以下の原則に従う:
顧客満足を最優先し、
価値のあるソフトウェアを早く継続的に提供します。
要求の変更はたとえ開発の後期であっても歓迎します。
変化を味方につけることによって、お客様の競争力を引き上げます。
動くソフトウェアを、2-3週間から2-3ヶ月という
できるだけ短い時間間隔でリリースします。
ビジネス側の人と開発者は、プロジェクトを通して
日々一緒に働かなければなりません。
意欲に満ちた人々を集めてプロジェクトを構成します。
環境と支援を与え仕事が無事終わるまで彼らを信頼します。
情報を伝えるもっとも効率的で効果的な方法は
フェイス・トゥ・フェイスで話をすることです。
動くソフトウェアこそが進捗の最も重要な尺度です。
アジャイル・プロセスは持続可能な開発を促進します。
一定のペースを継続的に維持できるようにしなければなりません。
技術的卓越性と優れた設計に対する
不断の注意が機敏さを高めます。
シンプルさ(ムダなく作れる量を最大限にすること)が本質です。
最良のアーキテクチャ・要求・設計は、
自己組織的なチームから生み出されます。
チームがもっと効率を高めることができるかを定期的に振り返り、
それに基づいて自分たちのやり方を最適に調整します。
この宣言は、この注意書きも含めた形で全文を含めることを条件に自由にコピーしてよい。
(アジャイル宣言の背後にある原則)