日々常々

ふつうのプログラマがあたりまえにしたいこと。

変なルールも何かのために作られた(はず)

お仕事していると「あれが出来ない」とか「これも出来ない」とか言う事はままあります。反対に「これをしないといけない」や「あれもしないといけない」もあります。

何故かわからないけれど、しなければならない事になっている。やめてもいいんじゃないか。ある事で効率が悪くなっているし、それで救われることなんて何一つないように思える。よくよく考えても何のためにあるのかわからない……こういった事を「今までやっているから」なんて理由で続けるのは愚の骨頂ですが、かといってやめる時には、やはり慎重になる必要があります。失われているかもしれませんが、その当時は間違いなく理由があったからこそ、わざわざそれをするようになったはずなんです。

例えばさんざんネタにしている 変更前をコメントアウトして残す習慣は未だ根強い - 日々常々 ですが、これも「バージョン管理ツールを使用しない」*1なんて背景があったり、さらに突っ込めば「手元でバージョン管理ツールを使っていても、ソースコードの原本を管理している所では使用しておらず、納品もされない」とかだったりすれば、これもまた妥当なルールに思えなくもありません。
これに関してはバージョン管理ツール使えよ、ってそもそも論がありますが、使わないと言う選択*2が行われた結果ですので、言っても仕方がありません。

これらの「そのルールが適用されるといい事があった」事を知らず、責任を取る立場でもない人が、単に「要らないからやめよう!」とがなり立てても無くなる事はありません。それで「エライヒトは話を聞かない」なんて腐るのは勿体ないです。意見が通じないときは、背景を考えると腑に落ちる事があるかもしれません。


開き直ると「本当にその理由が正しいか」なんて関係ありません。もっともらしければ良いんです。ルールを変と感じるのは、本当に変か、理解が足りてないかのどちらかです。
変だと思ったルールを無くすべく、誰かを説得する必要がある際、「なんでこのルールが要るんだ!」なんて徒手空拳で相手に求めたりしてもあまり有効な答えは返って来ないものです。「このルールはこのために作られたのかもしれないが、もはや要らないのでやめましょう」と言うのがいいと思います。それが誤っていたら、止めてくれるはずです。

とかなんとか言っても、「お客さんがそう言ったから」とか「会社の決定で」とか、説得しようとした対象の向こう*3に押し付けられたら、正直お手上げなんですけども。

まとめ

もう少しまともなネタになると思ったんだけどな。

*1:存在していなかったとかも含める

*2:知らなかったと言うのも、知ろうとしていないと言う選択と扱います。

*3:自分の声が届く範囲外