가끔은 ‘미래를 대비한다’는 명목으로 시스템 복잡성을 높이기도 합니다. 보통 미래에 있을 변경을 예측하고 준비하여 향후 작업 비용을 줄이겠다는 의도로 시작합니다. 하지만 문제는 미래를 정확하게 예측하기가 매우 어렵다는 점입니다. 예측이 틀려서 예측했던 변경이 실제로 일어나지 않으면 시스템은 아무런 이득 없이 복잡성만 늘어날 뿐입니다. 더 심한 경우에는 현재 작업이 미래에 필요한 시스템 변경을 방해할 수도 있습니다. 필자 경험에 따르면 시스템은 단순함을 유지할 때 불확실한 미래에도 잘 대비할 수 있었으며, 이것으로 이후 모든 작업을 훨씬 더 쉽게 할 수 있었습니다.
시스템을 단순하게 유지하려면 지속적으로 주의해야 합니다. 이를 위해서는 원칙을 기반으로 하여 강력한 제약을 설정할 수 있는 기본 구조가 필요하며, 모든 시스템 변경을 기본 구조에 맞추어 평가해야 합니다. 이러한 기본 구조의 제약하에 진행하는 시스템 변경은 시스템의 단순함을 유지할 수 있습니다. 그러나 지금은 괜찮더라도 불완전한 가정에 의존하고 시스템 기본 구조에 부합하지 않는 변경은 막아야 합니다.