![見出し画像](https://assets.st-note.com/production/uploads/images/52905604/rectangle_large_type_2_475fe27cd52cce99c93746e51def25c2.png?width=1200)
【プログラミング】ウォーターフォール型開発とアジャイル型開発の違いについて
どうも、おさです。
今週、会社の研修で「アジャイル開発」を体験する機会がありました。
会社では主に「ウォーターフォール型開発」がメインなので、「アジャイル開発」に関しては知識がある程度でした。
なので、今回の研修はその方法を知るとともに経験も積むことが出来たので良い機会でした。
今回は「ウォーターフォール型開発」と「アジャイル開発」の違いについて書いていきたいと思います。
まず「ウォーターフォール型開発」ですが、「ウォーターフォール型開発」は流れる滝のように、要件定義から外部設計、内部設計と工程ごとに手順を踏んで開発を行う手法です。
つまり、お客さんが「こういったものを作ってほしい」と言われたものに対して、全部の要件を満たしているのかを確認しながら開発を行うという訳です。
「ウォーターフォール型開発」のメリットとしては、各工程で要件を満たしているかの確認を行っているので、丁寧に進んでいきます。
また、「ウォーターフォール型開発」は各工程のスケジュールが詳細に決定しているので、いつまでにこれくらい出来るというスケジュールが経ちやすいことが挙げられます。
デメリットとしては、基本的に各工程を順番にこなしていくので、完成品が出来るまでにそれなりの時間を有します。
また、各工程で要件を満たしていないと発覚した際に工程を戻して再度開発を行わなければいけないのでかなり手間がかかります。
これに対して「アジャイル開発」は、必要最低限の実装を短期間に繰り返し行って進めていく開発手法です。
つまり、お客さんが「こういったものを作ってほしい」と言われたものに対して、必要最低限の実装を行った成果物を見せながらお客さんの要望のものを作成していくという訳です。
「アジャイル開発」のメリットとして言えば、お客さんと成果物を見せながら要件のやり取りが多く出来るので、要件を満たしていないというリスクが「ウォーターフォール型開発」よりは少なくなります。
必要最低限しか実装をしないため、ある程度路線変更があっても対応出来るもの大きいです。
強いてデメリットを上げるのであれば、短期間で何回も開発を行うので全体スケジュールを把握しにくいことが挙げられます。
必要最低限実装とはいっても、開発にバグや障害はつきものなのでそれを考慮したとしても全てをコントロールするのは至難の業です。
なので、ある程度「アジャイル開発」の経験を積んだ人をプロジェクトに入れていないと崩壊する可能性が高くなるという訳ですね。
以上、簡単にはなりますがメリットデメリットを添えての「ウォーターフォール型開発とアジャイル型開発の違いについて」でした。
では今回はこれくらいで、それではまた!