《실용주의 프로그래머(The Pragmatic Programmer)》 2장을 읽고 정리한 내용입니다.
소프트웨어도 시간이 지나면 점점 엔트로피(무질서도)가 증가한다. 우주가 끊임없이 무질서해지는 것처럼, 유지보수가 제대로 되지 않은 소프트웨어는 점점 더 엉망이 된다. 문제는 단순히 기술적인 요소만이 아니라 심리적, 문화적 요인도 소프트웨어의 부패를 가속화한다는 것이다.
깨진 창문 이론
이 책에서는 깨진 창문 이론(Broken Windows Theory)을 소프트웨어 개발에 적용해 설명한다.
건물에 깨진 창문 하나가 오랫동안 방치되면, 거주자들은 그 건물이 버려졌다고 느낀다. 그러면 다른 창문도 깨지기 시작하고, 결국 건물 전체가 황폐해진다.
이 이론은 뉴욕 경찰이 경범죄를 단속함으로써 강력범죄까지 줄이는 데 도움을 줬다. 마찬가지로, 개발에서도 작은 문제를 방치하면 코드 전체가 무너질 위험이 있다.
Tip 4: 깨진 창문을 내버려두지 말라
나쁜 설계, 잘못된 결정, 혹은 형편없는 코드가 깨진 창문과 같다.
이걸 발견하면 방치하지 말고 바로 조치해야 한다.
어떻게 고칠까?
- 문제가 되는 코드를 주석 처리하거나
- ‘Not Implemented’라는 메시지를 표시하거나
- 더미 데이터로 대체하는 방법이 있다.
작은 문제라도 그냥 두면 점점 커지면서 프로젝트 전체를 부패시킨다.
깨끗한 코드가 팀 문화에 미치는 영향
만약 코드가 깨끗하고 우아하게 설계된 프로젝트라면?
그 팀에 속한 사람들은 자연스럽게 그 청결함을 유지하려고 노력한다.
심지어 데드라인이 급박한 상황에서도 최초로 코드 품질을 희생하는 사람이 되는 것은 꺼리게 된다.
내 생각
이 내용을 읽으면서 개발뿐만 아니라 팀 문화 전반에도 적용할 수 있겠다는 생각이 들었다.
작은 문제를 그냥 두는 습관이 쌓이면, 결국 “우리 프로젝트는 원래 이래”라는 분위기가 형성된다.
그러다 보면 점점 코드가 더러워지는 걸 아무도 신경 쓰지 않게 된다.
반대로, 코드 품질을 중요하게 생각하는 분위기가 만들어지면 팀원들도 자연스럽게 더 나은 코드를 유지하려고 노력한다.
결국 깨진 창문을 방치하지 않는 것이 개발자 개개인의 성장뿐만 아니라 팀 전체의 성장에도 영향을 미친다.
나도 앞으로는 “이 정도는 그냥 넘어가도 되겠지”라는 생각을 줄이고, 작은 문제라도 발견하면 바로 정리하는 습관을 들여야겠다. 😊