(XP에서의)설계에 대한 워드의 관점
여러분은 코드를 여러분이 할 수 있는 최상의 상태로 만들 수 있습니다.
언제나 코드를 최선의 상태로 유지할 수 있으며, 이를 위해 필요한 시간은 얼마든지 써도 좋습니다.
그 시간은 이미 일정에 포함되어 있습니다.
프로젝트를 진행하며 더 알게 되는 내용이 있다면, 그 지식을 코드에 반영하는 것이 허용될 뿐만 아니라, 당연히 그렇게 해야 합니다.
하지만 여기에는 단서(Catch)가 하나 붙습니다.
아직 닥치지 않은 문제를 해결하기 위해 코드를 작성해서는 안 된다는 것입니다.
만약 여러분이 앞으로 '생길지도 모르는' 문제들을 미리 해결하려 들면, 일정 추정 능력은 완전히 망가지고 맙니다.
개발 과정이 누가 더 기발한 '가상의 문제'를 많이 상상해낼 수 있는지 겨루는 대회가 되어버리기 때문입니다.
'설계를 하느냐 마느냐(design / no design)'를 따지는 논쟁은 전부 헛소리(bunk)입니다.
무엇이 설계이고 무엇이 아닌지에 대한 말장난에 휩쓸리다 보면, 우리는 정작 우리가 이미 알고 있는 중요한 사실을 망각하게 됩니다.
바로 '명확한 프로그램을 만드는 데는 분명 노력이 필요하지만, 그렇다고 끝도 없는 노력이 필요한 것은 아니다'라는 사실 말입니다.
-- Ward Cunningham