先日、下記のような話がありました。
「アジャイル開発だと、開発初期に要件を決めきれないから、設計が甘くなって、後の変更コストが大きくなる。ウォーターフォール開発なら、要件を固めて作るから、設計もきちんとできるので、変更コストはアジャイル開発よりも小さくなる。結果、アジャイル開発の方が早くリリースできる訳では無い。」
というものです。
こちらについて、疑問を感じたので、ちょっと考えてみる事にしました。
一見、このロジックは正しい事のように感じます。
まず、この会話の前提を考えてみました。
「ウォーターフォール開発は、要件が決まっている(固まっている)」
一方、アジャイル開発は
「要件が定められない」
という場合に採用される事が多いため、そもそも前提が異なるのです。
異なる前提のものを比較しようとしているから疑問に感じたわけです。
実際、このような話はとても多いです。
その人がどのような前提でその話をしているのかを把握することはとても重要です。