スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ルールを破る時のルール

人間の自由を奪ったものは、暴君でも悪法でもなく、社会の習慣である。
以前、はてなの伊藤さんのブログ(naoyaのはてなダイアリー)でエアコンの設定温度を例に「ルールが一人歩きする」という記事がありました。この中で、満員の図書館でエアコンの設定温度を下げてくれというお願いに対し、設定温度は決められているでと言って下げてくれなかった、という話がとりあげられています。「手段」であるはずのルールが「目的」になってしまった典型的な例です。まさに「ルールの一人歩き」です。

さて、これはルールに盲従してしまっている例、言い方を変えると間違った「ルールの守り方」をしている例です。しかし、逆にルールの間違った「ルールの破り方」もあります。最近ちょうどそのような経験をしたのでちょっと書いてみます。

ソフトウェア開発でいうルールと言えば、コーディング規約等もプログラミング上のものから、リーリス方法等を規定したプロジェクト管理上のものまで様々あります。
プログラミング言語の文法もルールのようなものですが、これは簡単には破ることができません。それに対し、コーディング規約やリリースルールのようなものは開発者が無視しようと思えばいつでも無視できるようなものです。そうなると大抵の人はなまけがちですが、中には、ルールだからといって必要以上の努力を払ってまでそのルールを遵守しようとする人もいます。このようなルールへの盲従は、その人が疲れるばかりでなくかえって迷惑なことさえあります。無駄な説明が多くて要点がわからない、コメントが多すぎてかえって読みにくい、ちょっとした変更なのに修正後のテストといってリリースがでない。。。等など。先のエアコンの設定温度と同じく、ルールの本来の目的が失われ、ルールを守ることが目標になってしまっています。

さて、このようなルールへの盲従は問題ですが、だからといって自由気ままにルールを破ったり無視したりしてはいけません。先の例のように、ルールに従うことは無駄な作業を発生させることがあります。しかし、それが本当に無駄かどうかは目的をよく考えた上で判断しなければなりません。タブ幅がなぜ決まっているのか、なぜドキュメントが必要なのか、なぜリリース前のテスト項目がこれだけあるのか。自分のポリシーと照らし合わせておかしいとかいうのは理由になりません。自分ひとりの開発では単なる足かせでも、複数人の開発では意味があるかもしれません。大抵のルールは局所最適ではなく全体最適のためにあります。勝手にルールを無視すると、他の人への影響があるかもしれません。

ルールの盲従も、ルールの無視も、本来ルールが何のためにあるのかを理解していないから起こります。必要なのはまずルールの目的を理解することです。また、ルールは目的ではなく手段なのですから変えることだってできるのです。ルールがおかしいと気付けば勝手に無視するのではなく、積極的に変えるよう働きかけるべきです。

赤信号だって一旦とまって左右確認して安全だと分かれば渡っても良いでしょう。しかし、信号「無視」はいけません。ルールを破るにもルールがあるのです。

【関連リンク】
ルールが一人歩きする - naoyaのはてなダイアリー

【関連書籍】
ライト、ついてますか―問題発見の人間学 ドナルド・C・ゴース G.M.ワインバーグ
仕事の哲学 P・F・ドラッカー
チェンジ・ザ・ルール! エリヤフ・ゴールドラット
まず、ルールを破れ―すぐれたマネジャーはここが違う マーカス・バッキンガム カート・コフマン
C++ Coding Standards―101のルール、ガイドライン、ベストプラクティス

コメント

はじめまして、河野と申します。
プログラミングのルールおっしゃるとおりですね。
私はひとりでやっていますので、自分なりのルールを決めればいいのですが、2人以上集まるとかならず出てくる問題だと思います。
ランキング押しておきます。ポチッ

わかったようなことを言う人をまた発見しました。。
非公開コメント

本のおすすめ

4873115655

4274065979

4822236862

4274068579

4822255131

B00SIM19YS


プロフィール

  • Author:proger
  • 組み込み関係で仕事してます

ブログ内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。