"Considere-se um edifício com algumas janelas quebradas. Se as janelas não são reparadas, a tendência é para que vândalos partam mais janelas. Eventualmente, poderão entrar no edifício, e se este estiver desocupado, tornam-se "ocupas" ou incendeiam o edifício.
Ou considere-se um passeio. Algum lixo acumula-se. Depois, mais lixo acumula. Eventualmente, as pessoas começam a deixar sacos de lixo.”Basicamente, enquanto as janelas estão intactas, as chances de um vidro ser quebrado são pequenas. Assim que um janela é quebrada e permanece assim, logo mais e mais janelas são quebradas.
Enquanto que o prédio está intacto, significa que tem alguém cuidando dele. Assim que uma janela é quebrada e ninguém conserta, significa que não tem ninguém ligando pra ele. Se ninguém liga, por quê não quebrar mais uma janela?
Agora imagine essa situação no desenvolvimento de software (o site Coding Horror tem um artigo falando justamente disso, recomendo a leitura). No desenvolvimento de software ocorre exatamente a mesma coisa. Não, não estou dizendo que temos desenvolvedores vândalos, o que quero dizer é que, assim que um problema é negligenciado, logo o sistema todo estará ruim.
Um desenvolvedor olha para um determinado código ruim e pensa “isso está ruim, mas o sistema já é ruim mesmo. um problema a mais não faz diferença”. Tenho certeza que você já presenciou isso.
Como prevenir isso? Da mesma forma demonstrada na Teoria das Janelas Partidas. Não deixar os problemas se acumularem. A cada problema encontrado, resolvê-lo imediatamente. Ou seja, mostrar que tem gente que dá valor ao código, que cuida dele.
É uma teoria muito simples e fácil de ser aplicada. Evita que em pouco tempo tenhamos um código muito ruim. Na próxima vez que você ver um problema e deixar de corrigí-lo, lembre-se dela.