뇌는 제한된 복잡성만 처리할 수 있습니다. 인간의 단기 기억은 7개 대상만 추적할 수 있는데, 주의를 기울이지 않으면 어느새 한 번에 7개 이상의 일을 처리하는 코드를 만들게 됩니다. 컴퓨터는 이 부분을 관리해주지도, 막아주지도 않습니다.
소프트웨어 공학은 복잡성을 증가시키지 않겠다는 의도를 담은, 신중한 과정이어야 합니다.
여러분은 이 내용에 대해 반발할 수도 있습니다. 오히려 작업이 느려질 뿐이라고 생각할 수도 있지요.
그게 바로 핵심입니다. J. B. 라인스베르거(J.B. Rainsberger)[86]의 말을 빌리면, 우리는 조금 느려질 필요가 있습니다. 입력 속도가 빠를수록 모든 사람이 유지 관리해야 하는 코드가 늘어납니다. 코드는 자산이 아니라, 책임입니다[77].
마틴 파울러가 주장한 것처럼, 좋은 아키텍처를 적용해야 지속가능한 속도를 유지할 수 있습니다[32]. 소프트웨어 공학이란 이를 위한 수단입니다. 소프트웨어 공학은 소프트웨어 개발을 순수한 예술(art)에서 방법론(methodology)으로 전환하려는 시도입니다.