복리로 효용이 쌓이는 제품, 설계 없이 점진적으로 완성해나가는 제품.
무계획으로 관성적으로 만드는 것과는 무엇이 다른가요?
복잡도를 늘리지 않으면서 만들어나가는 점이 다릅니다. 복잡도가 늘어나는 의사결정을 당연히 받아들이지 않고, 관심사의 분리로 복잡도를 줄이고 분리된 모듈에서 완결되도록 만듭니다. 자동화된 테스트 도구로 제품의 안정성에 대해 피드백 받는 구조를 만듭니다. 관심사 분리와 테스트 도구라는 이 두가지로 설계를 완성해 나갑니다.
설계 없이 점진적으로 완성해나간다. 여기서 설계는 처음부터 전체 구조(인터페이스, 인터페이스 간의 상호작용)을 모두 만들어두는 것을 말합니다. 현대에 우리가 만드는 대부분은 초기설계로 최종결과를 비슷하게조차 만드는 것이 불가능하니 점진적으로 만들자는 이야기입니다.
그렇다고 하여 제품에 의도가 빠져서는 안됩니다. 무엇을 원하는지 설명하고 실행해야 합니다.
설계가 없어야 한다는 말을 정정해야겠습니다. 의도를 설명하고 적고 그린것이 설계일테니까요.
두뇌용량의 한계를 받아들이지 않은 설계, 잘못되거나 불확실한 부분이 대부분인 설계에 시간을 쏟는 것 보다, 그 이하로 당장 내 의도와 확실하다고 여기는 것들을 구현하고 피드백하고 다음 내 의도를 파악하는 걸 반복하는 것이 공학적으로 올바르다고 생각합니다.
