ウォーターフォールを徹底的にディスってみる

 

ウォーターフォールには何のメリットもありません。とはいえ、まだウォーターフォールを信じている人もいると思います。なので、徹底的にウォーターフォールをディスってみます。

※これは個人の意見であり、私は反対意見が存在することも理解しています。あくまで私はウォーターフォールになんのメリットも感じません、という主旨です。アジャイル信者でもありません。

 

ウォーターフォールとは 

そもそもウォーターフォールとはなんなのか、です。髪型のことではありません。

ウォーターフォールには次の要素があります。

ディスりポイント1 見積りの基準が人月

基本的に人月換算です。単位時間当たりのコストに、開発が終わるまでにかかる時間をかけます。

人間をバカにするな
人の能力ではなく、人が何時間働くかをコストに換算します。能力によって、単価に差はでません。もちろん、会社ごとに単価の値は違うとは思いますが、基本的に同じ単価であれば、誰が働こうが価値は変わりません。

日々、エンジニアとしてのスキルを磨くのがバカらしくなってきますよね。何もしてない人と価値が同じだといわれるのは辛いです。

利益率は向上するのか
これは顧客への提示方法次第ですが、すべての仕事に一律の利益率でお金をもらう場合を考えてみます。

単位時間当たり5000円だとして、利益率50%だと、顧客への提示は10000円になります。2時間で20000円。

俯瞰して考えると、仕事の効率が上がった場合、同じ仕事にかかる時間は少なくなります。顧客のコストは下がるので良いですが、その分提供する側は、数を多くしないと売り上げが伸びません。

同じ仕事なら3時間で1つこなすのと、1時間で3回こなすのとでは、売り上げは同じです。効率上げた意味はあるんでしょうか。より多くの顧客に提供できますが、顧客開拓にもコストがかかりますし、そもそもIT屋さんはたくさんいるので顧客の無駄な取り合いが発生します。

ディスりポイント2 手戻りにかかる時間が長い

時は金なり
手戻りが発生した場合、システムなどの成果物によってもたらされたはずの利益は失われます。

作るほうも辛いし、頼んだ方も辛い。なるべく手戻りによってかかる時間は少ない方がみんなハッピーです。

誰がお金を払うのか

もちろんお客さんです(場合によっては担当者がサービス残業します、ブラック恐い)。その上、お客さんとの関係性が悪化します。

「要件定義で決めた仕様、プログラミングしてみたらやっぱり無理そうなのが分かりました。設計やり直すんで追加で予算とってください。」

頼む側がどんだけ必死で予算とってると思ってるんだ、っていう話ですよね。たとえお客さん側にミスがあったとしても、お客さんはITの専門家とは限りません。ウォーターフォールは手戻りに時間かかるんです、とか言われてもじゃあもっと時間かからない方法でやってよー、となります。

とはいえ、契約はきちんとしましょう。瑕疵がどこにあるのかは重要です。身を守るためにも。

ディスりポイント3 上流が偉いという勘違いを生む

「上流・下流」ということばのイメージ

イメージ最悪です。「工程」の上下が「エンジニアとして」の上下に変換されていそうな人がたまにいます。工程は役割であって、エンジニアの上下を決めるものではありません。

要件定義の担当者だけではシステムは作れないし、プログラミングの担当者だけでもシステムは作れません。

下流に押し付けられがちな体制ができる

なぜか。顧客に対して約束するのが上流からだからです。この要件で作ります、この設計で作ります、と言っている場合、「やっぱりできませんでした」が言いにくくなります。

「この要件で作りますって約束してるから、がんばってね」みたいな人もいると思います。約束を果たすのは自分じゃないと思ってるタイプの人。自分の周りにいるわけではないですが、いたら地獄だなー、と思います。

ともかく、ウォーターフォールでは「できます」って言う人と、「できました」って言う人がわかれてるので、どうしても「がんばって作って」になりがちです。

まとめ

ウォーターフォールが悪いのか
ウォーターフォール自体は悪くないです。ウォーターフォールが適用できることが減った、もっと良い方法が見つかってきている、ということにしかすぎません。

じゃあどうすれば良いのか
結局それかよ、って感じですが、アジャイルでやってみましょう。最高ではないですが、ウォーターフォールよりはまだマシだと思えます。

 

とりあえずこんな感じです。
最後にもう一度書いときますが、個人の主観です。