water fall → システム全体のグランドデザインだけじゃなくてサブシステムやモジュール設計や個々の API の引数の詳細まで、実装の前に全ての設計をしてそこから実装、テスト、結合テスト、受け入れ、リリース、と最後のゴールまでスケジュールも引いてしまい、手戻りは基本許さないやり方。小規模なコードや製造業だと上手く行くけど、巨大システムだとだいたい引いたスケジュール通りにならないし実装で設計のおかしなところ見つけちゃうけど手戻りできないので ad-hoc な解決しまくりバグだらけコードになったりして炎上しがち