なぜ、アジャイルで作ると良いかと言うと、
早くユーザーにプロダクトを届けられるからです。
なぜ、早くユーザーにプロダクトを届けられると良いかと言うと、
ユーザーが使ってみたフィードバックを得られるからです。
ユーザーは要求、どんなシステムがあると良いかをぼんやりとしか知りません。
なので、まずとりあえずのプロダクトを使ってもらって、
・実はこうして欲しかった
・実はこんな機能が欲しかった
・実はこんな風に操作したいんです
というフィードバックを得る必要があります。
プロダクトを届けて、フィードバックをもらってからが、
本当のシステム開発になります。
従来のフォーターフォールでは、ユーザーに初めてプロダクトが届くのは終わりの終わりです。何年後かになってしまいます。
何年後かに届くプロダクトのことをユーザーは真剣に考えることはできないでしょう。
これがアジャイルの最大のメリットになります。
要件定義や画面設計時にいくら顧客と話しても、
紙面上の話であり実感を伴ったものになりません。
プログラマーであれば、レビューをしていない、テストをしていないコードは存在していないものと同じと感じたことがあるでしょう。
プロダクトで言えば、ユーザーが見たことがない、使ったことがないプロダクトは、存在していないものと同じと言えます。
フィードバックを得て改善するのが前提と考えると、変更しやすい設計、変更しやすいアーキテクチャ、変更しやすい実装にしておくのが有用であることが納得できるはずです。
また、ウォーターフォールではメリットを感じにくいJUnit(自動テスト)についても、繰り返し実行され、デグレを防ぐために役に立ってくれると感じやすいのではないでしょうか。
(自動テストはウォーターフォールの場合、役割・必要性をしっかり定義して始めないと、足を引っ張ることになります)