今回は書籍「プリンシプル オブ プログラミング3年目までに身につけたい一生役立つ101の原理原則」の7.3章「割れた窓の法則」について整理します。
悪いコードは「蟻の一穴」
ビルのような建物に、長期間修理されることのない割れた窓が1枚でもあると、ビルの住人に「投げやりな感覚」が植え付けられていきます。つまり、ビルの状態を気にもかけないようになっていく。
すると、次の窓が割れ、さらにゴミがばら撒かれ、散らかるようになる。落書きも増えていく。たった一枚の割れた窓とはいえ、それを放置すると、建物全体に対する深刻な破損が起こり始める。
ソフトウェアでも同じ現象が発生する。
・悪い設計
・間違った意思決定
・悪いコード
どんなに小さいものでも、ソフトウェア全体をごく短期間で腐敗させることになる。
悪いコードは邪心を引き出す
ソフトウェアに「割れた窓」が少しでもあると、修正するプログラマに「きっと残りのすべてのコードもガラクタなんだから、自分も適当に作業してしまえ」という考え方が忍び込んでしまう。
この種の心理学の実験として有名なものに、「郵便受け実験」がある。
郵便受け実験
家の郵便受けの近くの壁に落書きがあったり、付近にゴミが捨てられていた場合、その郵便受けから郵便物が盗まれる割合が25%にものぼる、というもの。
このような窓が割れた状態が放置されると、人間は「みんな見て見ぬふりで、いざという時に自分は誰からも守ってもらえないのだ」という「漠然とした不安感」を抱きます。些細なことでも、それが放置されている様子を見せ続けられると、だんだん神経質になったり、自己防衛本能や恐怖に対する交感神経が高まり、それが高まったときに暴力的になる。
このような人間の小さな乱れが、脆弱性をあらわにしていく。
コードは「清潔に保つ」
コードの「割れた窓」、つまりコードの良くない部分をそのままにせず、発見と同時に修復する。「割れた窓」がなくなれば、つまりコードが清潔で美しく保たれていれば、プログラマがそれを汚さないように、最新の注意を払うことになる。
たとえ納期を目の前にしたとしても、コードを汚してしまう最初の人間にはなりたくない、と思うからです。
また、正しく修復する十分な時間がない場合は、「このコードが良くない」という旨を、わかりやすいところに明示する。ダメージが広がるのを防ぐため、悪い状況が管理されていることをアピールする。
参考文献
「プリンシプル オブ プログラミング3年目までに身につけたい一生役立つ101の原理原則」