Broken Window Theory and Software
Programming / 2009. 11. 26. 00:53
오늘 저녁에 얼마전 취직한 후배가 저녁을 사달라고 해서 만났다. 영동시장에서 맛있는 차돌백이 + 숙주나물을 먹고 나와서 강남대로에 있는 커피빈에 갔다. 요즘들어 술마시는 것보다 커피마시면서 조용히 수다떠는것에 더 익숙해졌다.^^ (아직 30대도 안되었는데...ㅠㅠ)
한참을 떠들고 나오다가 커피빈 화장실에 들렸다. 세면대에서 손을 씻고 페이퍼타올을 뽑아서 손을 닦고 버릴려고 하는데.. 분명히 바닥에 휴지통이 있음에도 불구하고 세면대 옆에 지져분하게 다쓴 페이퍼타올들이 수북히 쌓여있었다.
분명 처음부터 그런 상황은 아니었을 것이다. 또한 커피빈같은 점포 특성상 일정한 주기로 화장실을 청소하기 때문에 매우 오랬동안 방치되지 않았을 것이라 추측한다. 하지만 분명히 20명에 가까운 사람이 쓴듯한 페이퍼타올이 수북히 쌓여있었다. 왜그럴까?
문득 예전에 읽은 "실용주의 프로그래머"라는 책에서 읽은 "깨진 유리창 이론(broken window theory)"이 생각났다. 깨진 유리창 이론은 사소한 문제를 해결하지 않았을 경우 본격적인 문제로 발전할 수 있다는 내용이다. 커피빈의 화장실 사건은 아마 어느 누군가의 사소한 청결에 대한 무관심에서 시작되었을 것이다. 버려진 하나의 휴지는 다른 이들에게 세면대 옆에 휴지를 버릴수있도록 허용한 것이다.
소프트웨어 개발에서 깨진 유리창을 방지하는 것은 매우 중요하다. 한눈 팔다보면 이미 소프트웨어는 돌이킬수 없는 상태로 복잡하고 지져분하게 될수 있으며, 리팩토링을 위해서 매우 큰 비용을 부담해야 할수 있다. 사수가 만들어 놓은 깨진 유리창이 있는 코드에 후임이 불을 질러 놓았다고 해서 후임을 비난할 수는 없을 것이다. 소프트웨어 개발자는 정말 부지런해야 한다. 항상 자신의 코드에 깨진 유리창이 없는지 확인해야 한다. 켄트백은 말단연구원도 책임감(responsibility)을 위에서 끌어와서 자신을 다치기 쉬운 상태로 놓는것이 바람직하다고 했으며 사람다운 개발자가 되기 위해 필요하다고 했다. (매우 역설적으로 들릴수 있다.)
아주 바쁘다 보면 빠르고 쉽게 생성되는 코드들이 있다. 이들이 문제인 경우가 많다.^^;; 특히 BMT...
우리에게 책임감이 있다면 BMT 같은 상황에서 생성된 깨진 유리창들은 꼭 고쳐놔야 할 것이다.
'Programming' 카테고리의 다른 글
CASE STUDY : 의존성을 역전 시키자 (10) | 2009.12.02 |
---|---|
여러분의 소스코드는 안녕하십니까? (7) | 2009.11.24 |
개발언어와 개발스타일 (5) | 2009.11.23 |