novtanの日常

ネタです。ネタなんです。マジレスする人は撲滅すべき敵です。だからネタだってば!

完璧なシステムなど無い。ではどこまでシステムを完璧に近づけるのか

現実の問題として、システムが完璧になるわけはない。で、こういう話をするときに念頭に置く「システムのレベル」が一切出てこないのはなんでなんだろうねと思う今日このごろですが。

「なぜ皆さんはプログラムに完ぺきを求めるのですか。そんなの無理に決まっているでしょ!」。某官庁の大会議室。居並ぶ大手ITベンダーの経営者や著名学者らが、システム障害ゼロを目指す取り組みの重要性を説く中、つまらなそうに聞いていたITベンチャーの若手経営者は、官僚から発言を求められ、そう言い放った。会議室の空気はブリザードに襲われたように凍りついた。

木村岳史の極言暴論! - システムに完ぺきを求め、不幸を撒き散らす疫病神はあなたです:ITpro

まあこの話はこれだけ引用しておけばよいでしょう。根本的に話があってないことについて指摘せず凍りつくようじゃどうしようもない。
「障害ゼロを目指す」と「プログラムに完璧を求める」なんてのはもう話のレイヤーがあっていないので、障害ゼロを目指す話で「目指す」じゃなくて「ゼロにする」なんて話をしていたのであればそれはテーマに対して話す内容が間違っているわけですね。んで、この若手経営者が指摘するべきなのはそんな当たり前の、指摘することもアホらしいなことじゃなくて、話が逸れてますよってだけだったと思うんだけどね。

でさ、完璧は無理にしても例えば医療系でMRIが暴走するとか、金融系で元帳が壊れるとか、ないに越したことがないわけじゃないですか。ただ、そのことがすなわち障害だってのがそもそも勘違いで、プログラム単位でみたら障害かもしれないけど、システム単位で見るとそうなった結果が致命的な障害事象につながらなければ、水際で食い止めたと評価すべきで、結局求めるべきは障害による損害がどこまで許容できるかって話にすぎないわけじゃないですか。暴走したら人が死ぬ、じゃなければ、あるいは暴走したら経済が死ぬ、じゃなければってことね。

実質的には「障害が起こったら会社が死ぬ」というレイヤーの問題設定はあるわけで、そこに対してできるだけ障害ゼロを目指すのは当たり前だし、最終的には費用対効果でリスクの選択がなされるわけですからハナから障害ゼロを「目指さない」というのはそれがビジネスリスクとして十分選択可能な世界だけに適用可能な話です。完璧を目指して失敗しているのはそういった部分の要件設計が出来なかったってだけの話ですよ。

僕はずっとリスクに厳しい業界のシステム作ってますけどね、100%完璧主義者なんてのにはあったこともないし(いることは知っているが)逆に「バグが起きたらどう対処するか」ということに膨大な費用を費やしているんですよ。これ完璧が不可能だから考える話であって、完璧じゃなかった時に業務影響をどこまで割り切れるかをちゃんと考えているんだけどね(そして個人的にはやり過ぎって言いたいけどそこから先は経営の話だからね)。完璧なシステムが作れることが理論上可能なのであれば、完璧なシステムを作ったほうが費用がかからないってことすらあると思うんだよね。

安く早く作るにはシステムが適当であれば良い、なんてのはそれがミッションクリティカルな業務じゃないからだよね。