• 프로그래머가 항상 코드를 버리고 새로 시작하기를 원하는 미묘한 이유가 있다.
    • 예전 코드가 엉망진창이라는 생각 떄문이다.
    • 예전 코드가 엉망진창이라는 생각은 다음과 같이 기본적이며 근원적인 프로그래밍 법칙때문에 생긴다.
      • “코드 쓰는 작업보다 읽는 작업이 더 어렵다”
  • 함수가 점점 길어지고 비대해지는 이유는 버그 수정 때문이다. 코드를 버리고 새로 시작하면, 여기에 속한 노하우도 모두 버려야 한다.
  • 이미 존재하는 코드를 다시 작성하느라 쓸데없이 많은 돈을 낭비하는 셈이다.
  • 프로그래머가 작성한 코드를 완전히 엉망진창이라고 말할 때, 이와 관련해서 잘못된 이유가 세가지 있다.
    • 아키텍처 문제이다.
      • 코드가 올바르게 나눠지지 않았을 경우다.
      • 이런 문제는 주의 깊게 코드를 옮기고, 리팩토링하고 ,인터페이스를 변경하는 방식으로 한 번에 하나씩 해결할 수 있다.
      • 프로그래머 한 명이 주의 깊게 작업하고 한 번에 모든 변화를 점검함으로써, 다른 개발자가 혼란을 느끼지 않게 끝낼 수 있다. 이러면 전체 코드를 버리지 않고도 핵심이 되는 아키텍처 부분에 변경을 가할 수 있다.
    • 코드가 비효율적이기 때문이다.
      • 이런 문제점은 실제로 프로젝트에서 일부엠나 영향을 미쳤으며, 최적화 작업을 하거나 그 부분만 다시 작성하면 된다. 전체 코드를 다시 짤 필요가 없다.
    • 코드가 보기 흉할지도 모른다.
      • 이런 문제점은 처음부터 새로 짜는 대신에 Emacs에서 매크로를 활용하는 등으로 5분 내에 해결할 수 있다.
  • 전체 프로그램을 모조리 버리는 방식은 위험천만한 바보 짓이다.