이자에 허덕이는 개발 생활은 편할 수 없습니다.
예전에는 정말 빠르게 개발했었거든요. B님! 우리 그거 2주 만에 끝냈었지 않나요?
제가 하면 1주일이면 충분할 것 같은데요.
D님, 조금 더 힘내주세요.
빠르게 개발하는 개발자가 좋은 개발자인 거 아시죠?
4천만 원짜리 차를 사는데 난 2천만 원 밖에 없다. 그래서 2천만 원을 카드사에서 빌려서 차를 샀다. 난 2천만 원을 카드사에 갚아야 하고 이자는 연 10%다. 1년에 2백만의 이자를 갚아야 하는데 생활비가 빠듯해서 미뤘더니 이자에 대한 이자까지 붙기 시작했다.
3주짜리 요구사항을 구현하는데 난 1주밖에 없다. 변수명을 대충 짓고 기존 코드 복붙과 검색으로 찾은 코드를 이용해 작업을 일단 완료한 뒤 리팩토링을 하려고 했다. 그런데 내가 리팩토링을 하기 전에 동료가 이 코드를 이용한 새 기능을 추가해 버렸다. 이제 난 코드를 수정하려면 동료의 작업분까지 수정해야 한다. 수정을 망설이는 사이 또 다른 동료가 내 코드와 내 코드를 이용해 추가된 새 기능을 나름의 방식으로 정리한 뒤, 기존 기능을 또 변경했다.
필요 이상으로 복잡한 기능 역시 기술 부채다.
I like my code to be elegant and efficient.The logic should be straightforward and make it hard for bugs to hide, the dependencies minimal to ease maintenance, error handling complete according to an articulated strategy, and performance close to optimal so as not to tempt people to make the code messy with unprincipled optimizations.
난 내 코드가 우아하고 효율적이었으면 한다. 로직은 명확하되 의도와 다르게 동작할 틈이 없어야 한다. 불필요한 의존성은 없어야 하고, 명시적이고 전략적인 예외 처리가 되어 있으며 최선의 성능도 보장되어야 한다. 그래야 딴 놈들에게 최적화를 한답시고 코드를 엉망으로 만들 빌미를 주지 않을 테니까.
- Bjarne Stroustrup
클린 코드는 '주어진 조건 하 기술 부채를 최소화한 코드'다.