0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【積読】コードの「割れた窓」

Posted at

今回は書籍「プリンシプル オブ プログラミング3年目までに身につけたい一生役立つ101の原理原則」の7.3章「割れた窓の法則」について整理します。

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

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

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

ソフトウェアでも同じ現象が発生する。
・悪い設計
・間違った意思決定
・悪いコード
どんなに小さいものでも、ソフトウェア全体をごく短期間で腐敗させることになる。

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

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

この種の心理学の実験として有名なものに、「郵便受け実験」がある。

郵便受け実験
家の郵便受けの近くの壁に落書きがあったり、付近にゴミが捨てられていた場合、その郵便受けから郵便物が盗まれる割合が25%にものぼる、というもの。

このような窓が割れた状態が放置されると、人間は「みんな見て見ぬふりで、いざという時に自分は誰からも守ってもらえないのだ」という「漠然とした不安感」を抱きます。些細なことでも、それが放置されている様子を見せ続けられると、だんだん神経質になったり、自己防衛本能や恐怖に対する交感神経が高まり、それが高まったときに暴力的になる。

このような人間の小さな乱れが、脆弱性をあらわにしていく。

コードは「清潔に保つ」

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

また、正しく修復する十分な時間がない場合は、「このコードが良くない」という旨を、わかりやすいところに明示する。ダメージが広がるのを防ぐため、悪い状況が管理されていることをアピールする。


参考文献
プリンシプル オブ プログラミング3年目までに身につけたい一生役立つ101の原理原則

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?