Según cuentan Dave Thomas y Andy Hunt en The Pragmatic Programmer, durante la alcaldía de Rudolph Giuliani en Nueva York un serie de estudios sobre la delincuencia en la ciudad indicaban que existía una relación entre los barrios con más ventanas rotas y aquellos con un mayor índice de delincuencia. Estos estudios sostenían que dejar una ventana rota sin arreglar tendía a atraer nuevos desperfectos a su alrededor: más ventanas rotas, basuras sin recoger, pintadas y graffitis… y finalmente un incremento de la delincuencia en la zona.

Giuliani, además de ser el alcalde de Nueva York durante el 11-S, es conocido por ser el alcalde que limpió sus calles de prostitutas, vagabundos y delincuentes. Entre las medidas que se siguieron, siguiendo las teorías de este tipo de estudios, se encuentran la de reparar los desperfectos urbanos visibles en el menor tiempo posible, e intensificar la vigiliancia y ser más estrictos en cuanto a los delitos menores, como no pagar el billete de metro u orinar en la vía pública.

Cuando en su momento hablaba acerca de cómo el código bonito atrae al código bonito estaba presentando la argumentación inversa a la que los PragProgs nos proponen con la metáfora de las ventanas rotas. Dejar ventanas rotas en tu código no solo supone aumentar la deuda técnica sino tambien aumentar las probabilidades de que ese código empeore aún más en el futuro. Supongo que no es tanto una cuestión intrínseca al desarrollo de software, sino más bien relacionada con la psicología del programador: un código lleno de ventanas rotas, basura y pintadas motiva muy poco a la hora de mantenerlo; probablemente no nos importe dejar algún desperfectillo más.

Como Giuliani, podemos intentar mantener nuestro código libre pequeños “desperfectos”, atajando los “delitos menores” cuando todavía son manejables, y así evitar que la entropía nos acabe complicando la vida más adelante.

P.D. Es que hoy me he pasado el día arreglando ventanas ;)


One Response to “Arreglando ventanas”  

  1. 1 Raúl Murciano

    TPP fue el primer libro técnico que compré en inglés. Había leído muy buenas críticas y lo estuve ojeando, pensándome si de verdad quería gastarme ese dineral en el libro. Por azar llegué a la teoría de las ventanas rotas y me dije “tío, esto es una verdad como un templo, de esas sensaciones que has tenido una y otra vez pero que no habías llegado a identificar. Si el resto del libro es así esta puede ser una de las mejores compras de tu vida”. Y así fue.

    A mí con un simple FIXME me sirve para saber que el que ha roto esa ventana al menos se ha dado cuenta y se ha molestado en señalarla, en ese caso sigo creyendo en el proyecto. Eso sí, cuando ves dos o tres sin comentar, mal asunto…

    Y por supuesto el caso contrario también sucede: a veces te tiemblan las manos antes de enviar un humilde commit a un proyecto de esos que tienen un código elegante, sencillo y eficiente, casi temes mancillarlo. Todo esto suena superfriki pero, aquí en petit comité, confieso que es real :D

Leave a Reply