A Teoria das Janelas Quebradas: uma teoria criminal aplicada ao desenvolvimento de software responsável

Maurício Santos
Vertice
Published in
3 min readJun 5, 2016

Você já ouviu falar sobre a Teoria das Janelas Quebradas? Essa teoria inspirou os departamentos de polícia de Nova Iorque. Trata-se de uma teoria que preocupa-se em resolver os pequenos problemas para evitar que problemas maiores (frutos da desordem) possam ocorrer.

A teoria foi publicada em um artigo em março de 1982 por James Q. Wilson e George L. Kelling em um artigo entitulado “Janelas Quebradas” no The Antlantic Monthly. No artigo, os autores eram bem sucintos:

Considerando um edifício com algumas janelas quebradas, . Se as janelas não forem reparadas, a tendência é que vândalos comecem a quebrar mais algumas janelas. Eventualmente, eles podem até chegar a invadir o prédio, acender fogueiras internamente e etc.
Imagine uma construção qualquer… Um pouco de lixo se acumula. Em breve, mais lixo se acumula. Até que passa a se tornar normal depositar lixo ali ou até mesmo quebrar alguns carros.

Não tolere janelas quebradas.

Alguns anos antes da publicação do artigo entitulado “Janelas Quebradas” pelo The Atlantic Monthly, em 1969 o cientista Philip Zimbardo, um psicólogo de Standfor, havia feito um experimento para testar a Teoria da Janela Quebrada, deixando um carro sem placas no meio do bairro do Bronx e um segundo automóvel nas mesmas condições em Palo Alto na Califórnia. Zimbardo observou que minutos após o abandono, o carro que estava no Bronx começou a ser depenado. Os primeiros indivíduos, levaram o radiador, a bateria e outras peças do carro. Em 24 horas, o carro do Bronx estava completamente depenado e as crianças já o utilizavam como playground.
Enquanto isto no Palo Alto, após uma semana de abandono, o veículo permanecia intacto. Então Zimbardo foi até o carro e deferiu um golpe com um martelo na janela do carro e o abandonou o veículo novamente. Pouco depois, mais pessoas se juntaram para a destruição. Os vândalos de Palo Alto eram bem vestidos, pessoas de cabelos cortados e aparentemente respeitáveis.
No entanto, eventos como estes podem ocorrer em qualquer comunidade civilizada quando o senso de respeito mútuo e civilidade são violados.

Em 2000 os autores Andrew Hunt e David Thomas falaram sobre a Entropia do Software na obra "The Pragmatic Programmer: From Journeyman to Master, 1st Edition". A entropia é um termo da física que se refere ao nível de “desordem” em um sistema. Infelizmente, as leis da termodinâmica garantem que a entropia no universo tende em direção ao máximo. Sendo assim, quando o nível de desordem em aumenta, inicia-se o processo de “deterioração” provado pelos experimentos, seja desordem na área de Desenvolvimento de Software, Segurança, Administração ou qualquer outra.

Dentre os principais fatores que podem contribuir para a deterioração do software, o mais importante — segundo os autores — são a psicologia e a cultura em ação em um projeto. A psicologia em um projeto tende a ser algo bastante complicado independente quando tratamos de 1 único membro ou de uma equipe.

Por isto, os autores do livro The Pragmatic Programmer, recomendam fortemente em sua dica número 4:

“Não tolere janelas quebradas”

O que podemos considerar como "janelas quebradas" em um projeto de software?

  • Projetos insatisfatórios
  • Decisões erradas
  • Códigos inadequados
  • Códigos sem teste
  • Modelagem incorreta

Quaisquer um dos itens acima quando observados em um projeto de software, devem ser consertados imediatamente. Do contrário, o mesmo comportamento que foi observado no experimento de Zimbardo pode acontecer em seu projeto de software, a tendência ao caos.

Não deixe a entropia vencer. Não tolere janelas quebradas.

É certo que nunca se haverá tempo disponível, em uma equipe de desenvolvimento, para consertar todas as janelas quebradas que se veem pela frente. Por isto, é importante a priorização com responsabilidade. Mas quem continua pensando assim, normalmente precisa se acostumar a viver apagando incêndios.

Obrigado pela leitura!

--

--

Maurício Santos
Vertice
Editor for

Solution developer • Facilitator • Founder at Vértice Computação