アジャイルじゃないものを何でもかんでもウォータフォールと呼ぶのは失礼!

ソフトウェア開発にかかわっているとこんな言葉を聞きます。

「ウォーターフォールをやめてアジャイルに切り替えたい」
「うちは、まだ、ウォーターフォールです」
「アジャイルはウォーターフォールを小さく繰り返すようなものでしょ」

さて……「アジャイル」とは何か?というのはとても難しい問題ではありますがみなさん何となくイメージしているものがあると思います。

例えばこういったものです。

・ アジャイルソフトウェア開発宣言
・(手前味噌ですが)わたしのQiita投稿

ですが、今回の議題はそこではなく……そのときにみなさんがイメージした「ウォーターフォール」はいったい何か?という方の話です。

***

ありそうな誤解:アジャイルじゃないものは全てウォーターフォールって思ってる

なんだかんだこれが一番ありえる気がします…。アジャイルじゃないものを全てウォーターフォールと言っている人いませんか…?

ありそうな誤解:要件定義や設計をやったらウォーターフォール

アジャイルは要件定義をしないで実装する!みたいな勝手なイメージがあるからか、要件定義や設計をしたら即ウォーターフォール認定されている気もする。

ありそうな誤解:世の中にはアジャイルとウォーターフォールしかない

アジャイルじゃなきゃウォーターフォール。ウォーターフォールじゃなきゃアジャイル。他の手法はないと思ってる。

***

いや、なんかちょっとちがいますよね???

「ウォーターフォール」は「ウォーターフォール」です。「アジャイルではないもの」なんて定義ではないです。開発プロセスがない状態を指す言葉でもないです。

そもそも「アジャイル」は大きな考え方というか指向というか「状態」であって本来はウォーターフォールと対比出来るものではありません。アジャイルな状態を実現するための具体的な手法としては「Scrum」や「XP」があります。なんなら「ウォーターフォール(!?)」も可能です。

え!? と思った人もいるかもですが、アジャイルの流儀でウォーターフォールをやったっていいのです。

アジャイルでもウォーターフォールでもないものにはスパイラル型やプロトタイプ型というのもあります。

何ならスパイラル型がいわゆるウォーターフォールを繰り返す手法に近いです。

発散してくるのでいったんこの辺で話をやめて。。。そして、ウォーターフォールとは何か?という議論もなかなか難しいのでここでは避けて。。

***

言いたかったのは、きちんと設計開発プロセスを持たずに何となくやっているものを「ウォーターフォール」と言っているケースがありそうで、それはウォーターフォールに失礼ですよ、という話でした。

ウォーターフォールはウォーターフォールのやり方があって使い方と使い所さえ間違わなければそんなに悪いものではありません。ウォーターフォールで成功しているプロジェクトは今も昔もたくさんあるのですよ。

この記事が気に入ったらサポートをしてみませんか?