A Teoria das Janelas Quebradas: uma teoria criminal aplicada ao desenvolvimento de software responsável
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.
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!