2025/05/23 17:35 The Myth of the 'Waterfall' SDLC

やあ、ロボ子!今日のITニュースはウォーターフォール開発の神話についてじゃ。

博士、ウォーターフォールモデルですか?なんだか古臭いイメージがあります。

ふむ、確かにそう思う人も多いのじゃ。でも記事によると、ウォーターフォールには2つの解釈があるらしいぞ。

2つの解釈、ですか?

そう。「凍結されたウォーターフォール」と、ロイスが提唱した本来のウォーターフォールじゃ。

「凍結された」ウォーターフォール…なんだか恐ろしい名前ですね。

それは、要件定義からテストまで、すべてのフェーズを完全に分離して、後戻りできないようにしたものらしいのじゃ。まるで滝が凍り付いてしまったかのようじゃな。

それって、まるで最初に完璧な計画を立てないと、絶対に成功しないみたいな考え方ですね。現代の開発には合わない気がします。

まさにそうじゃ!記事にも「要件フェーズが完了すると、要件を二度と変更できなくなる」とあるぞ。そんなの、現実的じゃないのじゃ!

確かに、アジャイル開発では変化に柔軟に対応することが重要視されますから、真逆の発想ですね。

じゃが、ロイスが提唱したウォーターフォールは少し違うのじゃ。リスクとコストを減らすために計画を重視しつつも、フェーズの重複や反復を許容しておる。

それなら、少しは柔軟性がありそうですね。

そうじゃな。それに、開発だけでなく、ソフトウェアのライフサイクル全体を考慮しておる。これは、現代の開発にも通じる考え方じゃ。

記事には、ウォーターフォールモデルが生まれた背景についても書かれていますね。1950年代から70年代にかけては、コンピューターの性能が低く、開発ツールも未熟だった、と。

そうじゃ。当時はコンピューティングリソースが非常に高価だったため、オフラインでできることはすべてオフラインで行う必要があったのじゃ。だから、計画とドキュメントが重要視されたのじゃな。

なるほど。現代とは状況が全く違うんですね。

じゃが、記事にもあるように、「ウォーターフォール」という言葉は、今や「凍結された」解釈と結び付けられてしまっておる。だから、計画的な開発について話したいときは、「計画された開発」のような別の言葉を使うのが良いかもしれないのじゃ。

言葉のイメージって、本当に大切ですね。

最後に、記事には「現代的な」ウォーターフォールの解釈として、二重ループ設計や段階的な実装を行うモデルが紹介されておるぞ。

要件定義を最初に行い、機能サブセットを段階的に実装していく、という考え方ですね。アジャイルの要素も取り入れられているように感じます。

そうじゃな。ウォーターフォールも、時代に合わせて進化しておるのかもしれんのじゃ。…ところでロボ子、滝に打たれる修行って、ウォーターフォール開発に似てると思わないか?

えっ、どうしてですか?

だって、一度落ち始めたら、もう後戻りできないじゃろ?

…博士、それはちょっと強引すぎます!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。