アドベントカレンダーではありますまいか Advent Calendar 2020、7日めの記事です。
良いおとなの皆様、良いおとななのにいわゆる職員室的なところへの呼び出しというものを食らったことはありますか。私はあります。会社でな。どこにでもルールというものは存在する。コーディング規約 もそうでしょう。規約は規約。守ることには意味がある。ただ「なぜ」守るのかを考えだすことで話が複雑になっていく。
出勤簿に押印をすることになった
ある時弊社で出勤簿に押印をするというルールができた。絶対だ。弊社はいわゆるIT屋さんだが、カードキーで入退勤も記録できているはずなのだが、関係ない。とにかく
押印をしたものだけを出勤とみなす
それがルールだ。
私の苗字は山田
改めて書くが私は「山田」さんで社内で通っている。山田さんなんて社内に何人いるかわからない。山田を名乗るすなわち anonymous と変わらないと思っていた。さてそんな折のこの押印ルール。私は「山田」のハンコなんて押して意味があるのでしょうか?
答え:ない
そう思った私はハンコではなく「山田」とサインすることにした。これで筆跡にて私を私本人として一意に保つことができる。「山田」のハンコなんて100均でも買えるのだ。ハンコを押していたら出勤証明にならないでしょう。
社長に呼ばれる
なんなら私むしろ偉くね?くらいの勢いで自信をもってサインをしていた私だったのですが、それがきっかけで社長室に呼ばれることになりました。曰く「押印をしたものだけを出勤とみなす」、すなわち私は出勤と認められないということらしい。どおいうことだ。納得がいかないのですぞ。しかしそういう問題ではないらしい。
「押印をしたものだけを出勤とみなす」
それがルールだからだ というのです。
ハンコなら何でも良いんだな?
確たる意思をもってサインをしていたので私は憤慨しました。
だけではなく「ハンコなら何でも良いんだな?」という思想のもと規約そのものをテストすることにしました。
それがこいつ。笑点の山田君ハンコ~(ネコ型ロボット風)
押し続けました。まあこんなものを押してくるのは私だけでしょうから私の目的(山田なんてanonymous → 自己同一性を証明したい)も満たすことができこれはナイスアイディアだったと言えましょう。その後呼びだされたか。私はね、一生懸命、一生懸命押印しましたよ。そうですその後呼び出されることは無かったのです!
(その点ブレないのは良いところである)
結論
コーディングルールの準拠を徹底するだけで全体として信頼できるソフトウェアを作れるというわけではないことや適切なコーディングルールを選択することが信頼性の向上に寄与するようなルールを選択することによってメリットが得られる とかいう報告があるようで、規約自体もそれによりけり、見直しが必要。規約そのものに縛られて失敗する事例もある。 つまりルールは理由を理解しておいたほうがいい。
ハンコを押させる理由は出勤記録をとるためではなく「ルールそれ自体を守ることを意識させるため」だった。まあもともと出退勤はカードキーで記録されているのだから。
ルールを守ることは大事だ。しかしルールを守ることが「なぜ」大事なのかがわからないで守るルールは無意味だ。
コードを書く時には「なぜこれはこう書かないといけないのか」を考えながらコーディング規約と向き合ってみるのも良いのかもしれません。その時は意志を強くもって。社長室に呼ばれてもくじけない心をもって向き合うくらいでいいとおもいます。
以上です~