ルールには2種類ある
ルールには2種類ある。そんなことを思った。
ひとつは法律やスポーツのルールみたいなやつ。もうひとつが、Ruby on Rails の CoC のConvention みたいなやつ。以降の記述がしやすいように、前者をAタイプ、後者をBタイプと呼ぶとしよう。
Aタイプは、ルールを守ることにインセンティブが働かないから、人はルールに触れないギリギリのところで勝負することになる。サッカーの FW はオフサイドラインギリギリで飛び出そうとするし、F1 のマシンは許される限界までパーツの幅を広げてダウンフォースを取ろうとする。
Bタイプの例は日常では多分あんまりないかなぁ。Rails のそれとか、「ソースプログラムを PerlCritic や lint みたいのにかけましょう」的な規約なんかが当てはまる。ルールを守ることにインセンティブが働くから、積極的にルールを守るし、そのためのアイデアなんかが出されたりする。hudoson 使って、コミット時にユニットテスト実行しようぜ、みたいな。*1
Aタイプのルールは自発的に守られることを期待できない。*2だから、守ってもらうためには、罰則か特典を用意するしかない。法律だったらたいていは罰則があるし、逆に何かを推進したい場合は補助金が用意されたりする。スポーツの場合もルールに違反したら何らかのペナルティーがある。
いや、結論とかはないんだけどね。今の職場で、Aタイプのめんどくさいルールが制定されて、でも報酬も罰則もないから、そんなのうまく守れねーだろ、ってそれだけの話をちょっと理論武装してみた。