O documento discute as diferenças entre implementação, design e arquitetura de software. Arquitetura envolve decisões fundamentais sobre os principais componentes do sistema, que são difíceis de alterar, ao passo que design implementa a arquitetura de forma mais detalhada. Uma boa arquitetura permite modificações com impacto limitado em outras partes do sistema.