1文字間違えることの重さ
設計書を書いているのに、項目名の表記を勝手に省略したり、コロンやカンマなどの記号の有無を無視して適当に書いたり。
そういうヤツが作るコードは、変数名の Typo は当たり前、インデントやスペースもバラバラで汚く、自分が書く一文字一文字に対する意識が極めて低いことが一発で見て取れる。
彼らはちょっとした文字の違いに気付かないし、どれだけ見直しさせても自分では気付けないのだ。
しかし、こういう野郎がそのままのさばるとどんなリスクになりうるのか説明し、注意を促したい。
1文字違いでプログラムは動かない
まず、コンピュータは「たった1文字」の違いも許容してはくれない。昔、週刊アスキーの「東京トホホ会」という連載にそんなネタがあったが、ネットワーク設定で IP アドレスを1文字間違えたとか、本番環境の URL 設定にスラッシュが抜けていたとか、その程度のミスでも、システムはきちんと動いてくれなくなるのだ。
人間がやることなので、どこかで必ずミスは生まれてしまうかもしれないが、プログラムを正常に動作させるためには1文字も間違えられないのだ。
1文字だろうとバグはバグ
さて、1文字違いでシステムのある機能が異常終了することが判明したとする。もしくは、「項目の表記が設計書と1文字だけ違っていた」程度のミスでも同じだ。それによって引き起こされた事象の深刻さに関わらず、バグはバグなのである。
当然、「ちょっと説明文の文言が違うだけなら実害はない」とお客様からお許しが出るかもしれないが、それはあくまでお客様がお許しいただく場合だけであって、開発者の評価は「設計書どおりに実装ができない無能」なのである。
バグに対する重大度の評価を、開発者の感覚で行ってはいけない。システムが動かないレベルでの Typo、会社名や人名を間違えて表記した場合、説明文の句読点が指示したものと違う状態、いずれも、会社が頭を下げて真摯に対応しなくてはならない「重大な障害」なのである。
障害と「横並び調査」
「たった1文字の間違いでバグが出ました」と分かれば、お客様にとっては「そんな簡単なケアレスミスを見逃すレビュー体制はどうなっているんだ」「他にこういった1文字間違いはないのか」と文句が生まれてもおかしくない。一度障害を起こすと、「他の機能に問題はないのか」という横並び調査を必ず求められるのだ。
横並び調査が必要になると、改修した箇所かどうかに関わらず、システムの全コードを総ざらいする羽目になる。もちろん、全画面に対して全テストをやり直し、それもお客様に分かっていただけるよう人力で打鍵して画面キャプチャを撮り、確かに問題なかったと証明しなくてはならない。
たった1文字間違えただけで、ミスしたのはソコだけなんだけど…といくら思っていても、本当にやらかしていないか、全量見直しすることになる、そういうものなのだ。何故なら、その程度のケアレスミスをやらかす人間は信頼に値しないから、「やらかしたのはそこだけです」なんて証拠のない発言は聞き入れてもらえない。何時間かかろうと、どれだけ残業しようと、お客様に提供した成果物を保証しなくてはならないのだ。
1文字も間違えてはいけない、という緊張感
常に自分には間違いがあるかもしれない、気付かない内にミスをしているかもしれない、と気を張っておく心構えがまずは必要。その上で、気持ちだけではなく
- 間違えないようにする仕組み
- 間違いにすぐ気付ける仕組み
- 間違っていても重大な問題を引き起こさないように防げる仕組み
と、仕組みをもって対策を打たなければならない。
1文字も疎かにしてはいけない。それはメールや作業報告など、日頃の些細なことから徹底できないと、いざという時にできるワケがない。
お客様や設計書で指定がある文言を勝手に省略して書くなんてもってのほか。全角半角の違いは当然。スペースの入れ方やインデントの仕方。記号に関しては文字コードから間違いないかチェック。寸分違わず正確でないといけないのだ。作る側が「1文字くらい」なんて甘ったれてんな。
たった1文字間違えるだけで、障害を起こせばお客様に重大な被害を与えてしまう。そして、不具合修正とともに無関係な箇所まで総ざらいして「正しさ」を再度検証しないといけなくなる。あなた一人が個人事業主として仕事をしているなら「自己責任」で良いが、会社に所属している以上、その分のコストやツケを周りや会社が払わされるのだ。