設計によるミスやバグは避けられません。大事なのは、その問題を発見する事です。
発見出来なければ、それはミスやバグでは無いからです。
設計者としては、ミスやバグが他人や品管(品質管理部門)が見つけて、指摘された場合は、「ありがと~~~!」って事です。少なくとも「しまった!」では無いです。
それは、ミスやバグを見つける事こそ《品質向上》であるからです。そして、見つかれば『原因を特定して、正しく修正すれば良い』だけなのです。
そして、その特定された原因というのは、概ね『現象が出にくいミス』『小さなミス』『なかなか気付き難いミス』です。そして、現象が出にくく、気付き難い、小さなミス。。。
それなのに、その問題を発見した人(品管や顧客)は、「なんでこんなミスを起こしたんだ!(怒り)」「なぜ、こんなミス(バグ)すらも見つけられないんだ!(怒り)」なんてのは技術者であれば、一度や二度は経験されていると思います。いや、もっと多いでしょうねw
そして、「早急に原因究明しろ!(怒り)」なんて言われたことも珍しくないでしょう。
そして、当然、最終的には98%位の問題については、原因が特定され、対策も打てる事に成ります。2%位はホントに原因不明というのも珍しいわけでは有りません。
その原因特定を出来る程、私の技術レベルが高くないのかもしれませんがw
そして、その大抵の問題は判明するのですが、原因は上にも書いたとおり、「気付くのが難しい、小さなミス」が殆どです。
これは本当に悔しくもあり、何故気付かなかったのかという後悔もあり、反省モードには成ります。一応w しかし、それは気付かなかった後悔です。
所が、今度はその「気付くのが難しい、小さなミス」を正式にご報告する事になります。概ね、「恒久対策書」も付きで要求されます。『二度とこの様なミスを起こさない為の、仕組み的対策』wとかです。
正直、旧職の大手時代なんか、何枚書かされたことかw 弊社CTOも同じ会社だったのですが、何度も書かされたそうです。 読み手が100%納得するまで何度も書き直しすらさせられますw
私は天邪鬼ですので、「反省しろ!」「こんなミスを犯すとは!怒り」とか言われても、一応反省しますが、大事なのは「今目の前にある問題の解決」だと思っています。
私は、何故か!?と言われても、「設計中にミスだと解ってたら、治してるわ!」「ミスやバグの発見に全力を尽くしても見つからなかったミスやバグをどうやって見つけられたの?」としか思いません。
なぜならば、全力で設計してますので、それ以上は無かったワケなんですよね。
それでも、ミスやバグは起きるのです。見落としもあるわけです。
野球の打者が10割打てないのと同じです。ただ、私も打者も10割バッターを目指して、バッターボックスには立っているのです。それでも100点は取れません。
受託の世界や大企業では、「依頼側が100点を求める風潮」が凄く多いです。
そもそも、この考え方が間違っていると思います。「100点は取れないから、皆でそのミス・バグを一生懸命に発見し合う」のが正しいのです。
だからこそ、見つけられたら「良かった~~~!」「助かった~~~~!」なのです。
設計者を罵倒する事こそが、本末転倒なんです。
「一つも問題が出ない」事を要求する人こそが、そもそもオカシな人なんですよね。
そんなこと出来るわけ無いからです。世の中70億人中1人も居ませんからw
だからこそ、弊社の私のポリシーは、「お客様も製品をちゃんと評価してください」「我々も製品をちゃんと評価します」「しかし、それでも100点は取れない事をご理解ください」「但し、100点を目指しています」「必死になって、見つかりにくいミスやバグを発見し合いましょう」
と必ず言います。
それでも、1つのミスやバグで大騒ぎされる方がたまに居られますがww
「設計費用を払っているから、全て任せたんだ❗だから全てオタクに責任がある❗」的な御仁の依頼は基本お断りしています。
こういうのも、最近見直されている《カスタマーハラスメント対応方針》なんかに現れていると思います。
設計品質とは、
仕様書通りに開発して行けば、完璧な製品が出来上がるわけではありません。マニュアル的にやれることでもありません。
設計品質とは、
見つかりにくいミスやバグを徹底的に洗い出して、潰していく事なんです。そして、それを繰り返していって、ここでOKと判断しよう!と決断する事なんですよね。
そして、覚悟しておくべきは、そこまでやっても見つからないミスやバグはあるもんです。
当に、本日Google Cloud Platformが落ちましたが、世界最高レベルのエンジニアを高給で何人も雇っても、こんな事は起きるわけです。
私がそれ以上の完璧な設計品質を保証できるとは思いませんですwww
AppleのiPhoneだって不良はありますw
完璧100%なんてのは、世の中には存在しません。これが設計哲学であり、仕事を依頼する側も解っておかねばならない哲学でもあると思う私です。