上流設計はなぜあるのかとどうすればよいか。

@ryoasai74 さんの開発コストや技術リスクを考えない「上流設計」がシステムの複雑化と大規模な障害の原因となっているのでは?を読んでみて考えたこと。
上流設計が害になっているというお話ですが、これを考えるにはなぜ今のようなウォーターフォールという開発方式がでてきたのから考える必要があると思っています。

昔はコンピューターはすごい高価だった

誰もが書籍等では知っていて、今前線で活躍している人のほとんどが知らなくなってしまったことですが、昔はコンピューターはものすごい高価でした。それこそサーバー一台数億円という世界。そういった時代では動かしながら作るなんてことは非常にコストが掛かることであり、それこそ人間が机上で一度書いて書面でレビューをして、正しそうだということが判ってから打ち込んで実際にコンピューターで動かしてみたほうが安上がり、つまり、人の給料が誤差になるほどのお金がコンピューターにかかっていたようです。そのような世界では、安い人間を酷使して、高いコンピューターをあまり使わないでコスト削減を図るというのは妥当であったと考えられます。

今はコンピューターはすごい安価です

では、今は?と考えると、今はコンピューターはすごい安価になっています。いつの間にか人間の価格が誤差だった時代は終りを告げて、今ではコンピューターの価格が誤差に含まれる程度になってしまっています。アジャイルだの何だのといった開発手法が生まれてきていますが、結局のところ、コンピューターが安くなったのだから、今まで人間が頑張っていたところをコンピューターに任せよう。というだけだと思っています。人間のほうが高いのだから、安いコンピューターに任せれることは任せるというのは妥当だと考えられます。

たぶん今は過渡期

先まで書いた話は多分、多くの人から見れば当たり前すぎる話で未だに過渡期なのか?と思う方は多いと思うのですが、まだ過渡期だと思っています。今、多くのプロジェクトで議決権を握っている方々はどなたでしょうか?多くの会社では40〜50代のある程度の役職を持たれている方々だと思っています。その方々の多くはウォーターフォールで要件定義や設計を担当してきていました。その方々からすれば動かす前に詳細処理まで意識をした設計をするのは当然だし、コンピューターは高価なものという意識はまだまだ抜けきっていないと思っています。それに応えるべき現場ではやっとCOBOLを知らない世代が増えてきて会社の上層部との折り合いを付ける方法を模索している最中なのではと思います。

私達ができることは

楽しましょう。人間が。先に書いたとおりにコンピューターは非常に安価になりました。今となってはかつて人間が頑張っていた領域の多くはコンピューターに任せたほうが安価です。
伝えましょう。コンピューターが安価なことを。年々コンピューターは安価になっています。それこそ数年間で数分の一の価格になっています。5年前のPCを使い続けることに意味はないのです。
変えましょう。手続きを。多くの組織の手続きはコンピューターが高価な頃に高価なものを扱うために生まれたものです。安価なものを多くのコストを掛けて管理する必要はないはずです。

ここまで書いて、これはCOBOLを前提としたお話だけれども

最近、twitterのチューニングのお話をご年配の方にしました。そうしたらすごい食いつきが良かったです。理由としては、昔アセンブラやらでやっていたようなチューニングをこのコンピューターが安価な時代でも同じようにやる必要があるというということに新鮮な驚きと、自分たちがやってきたことを未だに活かすことができるということによる喜びによるものみたいです。そういった方々は動かしてみないと判らない領域があるということも理解を示してくれたりと、非常にお話が合いました。今までご年配の方々はCOBOLしかやってないから話を通じさせるのは難しいと思っていましたが、話のわかる方々も一定数いるということがわかりました。そういった所から既存の仕組みを変えていけたらいいなあと思います。