Em bases de código grandes, toda modificação exige do desenvolver algum tempo “aprendendo” sobre o trecho de código que irá ser alterado.
Em sistemas bem desenvolvidos e mantidos, depois do “esforço inicial” para entender o código, fazer a modificação é tarefa fácil e consome pouco tempo. Além disso, o desenvolvedor fica mais confiante.
Em sistemas legados, entender o código é sempre mais difícil. Além disso, mesmo com todo o esforço, o desenvolvedor dificilmente terá segurança de que suas modificações não irão afetar negativamente e de maneira imprevista comportamentos essenciais do sistema. Finalmente, o desenvolvedor não sentirá que aprendeu algo durante o processo e, não raro, terá a sensação de entender ainda menos.