🏸

プログラミングにおける割れ窓理論

2023/01/22に公開

割れ窓理論とは

1枚の割られた窓ガラスをそのままにしていると、さらに割られる窓ガラスが増え、いずれ街全体が荒廃してしまうという、アメリカの犯罪学者ジョージ・ケリング博士が提唱した理論。

プログラミングにおける割れ窓理論

「悪い設計」や「汚いコード」がいくつかかあるだけで、「別に誰も質を高めようと意識してなさそう。自分も適当なコードでいいかな...うん。大丈夫でしょ。だってもう汚いし」という考え方に繋がってしまう。
その結果、アプリーケーションが質が下がり、どんどん腐敗していく結果に。

じゃあどうすればいいのさ

  • コードレビューでサラっと見るだけで承認はしない
    サラッと見るだけでは窓ガラスが割れていること見逃してしまいます。
    時間のかけすぎもよくないですが、しっかり確認しましょう。
  • ボーイスカウトルールの適用
    どんなに本人が意識しても、汚いコードを書いてしまうことはあります。
    もし、それを他のメンバーが見つけた時は直してあげましょう。
  • コメントを残す/issue化 → スプリントに含める
    どうしてもリソースが足りなくて直せないときはコメントアウトで、修正が必要な旨を記載したりissue化しましよう。そしてスプリントに含めましょう。そうしないと一生残り続けます。そうした化石コメント/化石issueを今まで何度も見てきました...

まとめ

割れた窓がない(品質を維持している/意識している)環境であれば、エンジニアは汚いコードが書きにくい状態になるはずです。そして、それがアプリケーションの品質や保守性の維持に繋がっていくはずです。

参照

https://ja.wikipedia.org/wiki/割れ窓理論
https://www.s-arcana.co.jp/tech/2011/03/post-13.html

Discussion