連載
» 2017年08月25日 05時00分 公開

貯まった問題との付き合い方――割れた窓の法則、エントロピーの法則に見る技術的負債が起こる理由問題解決力を高めるコツはプログラミングの原則・思考にあり(終)(3/4 ページ)

[上田勲,著]

割れた窓の法則

 英語  Broken Windows Theory

 What 〜悪いコードは「蟻の一穴」

 ビルのような建物に、長期間修理されることのない割れた窓が1枚でもあると、ビルの住人に「投げやりな感覚」が植えつけられていきます。ビルの状態など、気にもかけないようになるのです。

 すると、次の窓が割れます。さらに、ゴミがばら撒かれ、散らかるようになります。落書きもされるようになります。たった1枚の割れた窓とはいえ、それを放置すると、建物全体に対する深刻な破損が起こり始めるのです。

 ソフトウェアでも同じ現象が発生します。ソフトウェアの「割れた窓」、つまり「悪い設計」「間違った意志決定」「悪いコード」を放置すると、それがどんなに小さなものでも、ソフトウェア全体をごく短期間で腐敗させることになります。

 Why 〜悪いコードは邪心を引き出す

 ソフトウェアに「割れた窓」が少しでもあると、修正するプログラマに「きっと残りのすべてのコードもガラクタなんだから、自分も適当に作業してしまえ」という考え方が忍び込みます。

 この種の心理学の実験として有名なものに、「郵便受け実験」があります。家の郵便受けの近くの壁に落書きがあったり、付近にゴミが捨てられていた場合、その郵便受けから郵便物が盗まれる割合は25%にも昇る、というものです。たかだか、ゴミや落書きが、節度あるはずの大人の多くを、泥棒に豹変させるのです。

 このような現象は、付和雷同的な理由のほかに、「漫然とした不安感」によっても説明できます。窓が割れたままずっと放置されていると、「みんな見て見ぬふりだ。この周辺では、いざという時に自分は誰からも守ってもらえないのだ」と、不安な気持ちになります。些細なことであっても、それが放置されている様を見せられ続ければ、だんだん神経質になったり、自己防衛本能や恐怖に反応する交感神経がピリピリとし始め、それが高じた時に暴力的になったりするのです。

 つまり、この場合ポイントとなるのは、「割れた窓」そのものというよりは、そういった小さな乱れが、いつまでも「放置されている状況」にさらされる不安です。人は、短く強いストレスより、弱くとも長く続くストレスに対してとても過敏にできています。非社会的・非道徳的なことがいつまでも片付けられずに放置されているのを目の当たりにし続けることが、人間のそのような脆弱性をあらわにします。

 How 〜コードは「清潔」に保つ

 コードの「割れた窓」、つまりコードのよくない部分をそのままにせず、発見と同時に修復しましょう。「割れた窓」がなくなれば、つまりコードが清潔で美しく保たれていれば、プログラマはそれを汚さないよう、細心の注意を払うことになります。たとえ納期を目の前にしていたとしても、コードを汚してしまう最初の人間にはなりたくない、と思うからです。

 また、正しく修復する十分な時間がないのであれば、このコードがよくないという旨を、わかりやすいところに明示しましょう。

 例えば、よくないと認識しているコード部分については、IDEのタスクリストに表示されるようなタグ付きコメントを書いておきます。ダメージが広がるのを防ぐため、悪い状況が管理されていることをアピールするのです。

 発展 〜人は人を真似る

「割れた窓」現象は、「漫然とした不安感」とともに、「他人の行動を反射的に真似る」という人間の特性に原因があるとも考えられています。

 心理学において、他人の行動を反射的に真似る機能は、赤ん坊の頃から備わっていることが実証されています。ただ、これは短期間では起きず、一定の長い期間を必要とします。「割れた窓」現象は、モラルの低下という「習慣化した怠惰」に長期的にさらされ、「真似」に至り、悪の連鎖が発生している可能性もあります。

 ただ、「漫然とした不安感」「他人の行動を反射的に真似る」いずれが原因であっても、「悪いコードを放置しない」という習慣がその対策となるのは、変わりありません。

出典書籍

『達人プログラマーーシステム開発の職人から名匠への道』アンドリューハント他, ピアソンエデュケーション(2000)

関連書籍

『フシギなくらい見えてくる! 本当にわかる心理学』植木理恵, 日本実業出版社(2010)


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。