Crónicas del Buen Programador: Cero Ventanas Rotas

Un trabajo sobre ingeniería de software por Ivar Jacobson describe uno de los pocos elementos (sino el único) de las leyes físicas que parece afectar el software, Entropía:

“La segunda ley de termodinámica, en principio, nos dice que el desorden en un sistema cerrado no puede ser reducido, sólo puede permanecer sin cambios o incrementar. Una medida de este desorden es la entropía. Esta ley parece ser plausible para sistemas de software, a medida que el sistema se modifica, su desorden o entropía, siempre se incrementa. Esto es conocido como Entropía de Software“.

La entropía de software, se le conoce como “software rot” o “software decay”, en español sería algo así como “podredumbre de software”.

Muchos factores pueden contribuir a este decaimiento, exploremos algunos.

En algunas ciudades puedes contemplar zonas en las cuales hay edificios que permanecen limpios, luciendo como nuevos, mientras en otras zonas edificios parecen estar en un estado deplorable. ¿Por qué? Investigadores en el área de crimen y decaimiento urbano descubrieron un mecanismo que inicia este proceso, un simple hecho que puede convertir un edificio limpio, intacto en un edificio que rápidamente tendrá una apariencia de abandono y destrozo…

Una ventana rota

Una ventana rota, si se deja sin reparar por una cantidad de tiempo considerable envía el mensaje equivocado a los residentes del edificio, crea un sentimiento de abandono, un sentimiento que dice que las personas que están a cargo del edificio no les importa el edificio. En poco tiempo otra ventana es rota, la gente empieza a botar basura en todas partes, luego vienen Graffitis, eventualmente daño estructural empieza a surgir. En una cantidad de tiempo relativamente corto el edificio se daña al punto tal que el dueño prefiere dejarlo así y ese sentimiento de abandono se convierte en una realidad.

La teoría de “la ventana rota” inspiró al departamento de policia de New York y otras ciudades en Estados Unidos a tomar acción en las más mínimas infracciones para evitar que ocurrieran problemas peores. Funcionó, estar encima de esas “ventanas rotas”, graffiti y otras infracciones, ayudó a reducir considerablemente los niveles de crimen.

Cero Ventanas Rotas

No vivas con ventanas rotas, malos diseños, malas decisiones o mal código sin reparar. Arregla cualquiera de estos problemas apenas los identifiques. Si el tiempo es insuficiente para hacer reparos, al menos cubrelo de algun modo, quizas puedes comentar el codigo, o mostrar un mensaje “No implementado”, o substituir por datos de prueba. Toma acción para evitar daños mayores y mostrar que estás encima de la situación.

La negligencia acelera el decaimiento de software más que cualquier otro factor.

Si te encuentras en un proyecto en el cual todo el código está lleno de “ventanas rotas” corres el riesgo de que tú o tu equipo entren en un modo de “no me importa, esto es una porquería de código de todos modos” y el software se llenará aún más de ventanas rotas porque todo se está haciendo sin mayor esmero.

Por el contrario, si te encuentras en un proyecto cuyo código es sumamente limpio, elegante, sin redundancias, consistente, bien diseñado, probablemente te tomarás el tiempo y el esfuerzo extra de no ensuciarlo, ciertamente no quieres pecar en ser el primero en poner la torta.

[ad#Google Adsense-468x15ContentLinkunit]

Sobre el Autor

Angel León (aka Gubatron) es un Ingeniero de Software Venezolano (UCAB) que ha desarrollado desde sencillos sistemas con bases de datos relacionales, servicios webs distribuidos para millones de visitantes mensuales, software p2p de uso masivo, hasta aplicaciones para dispositivos mobiles, todo esto empleando gran variedad tecnologías abiertas (Linux, Android, Java, Python, PHP, C++, Javascript).

Estas crónicas son inspiradas en el libro “The Pragmatic Programmer” (un libro que debería ser un texto obligatorio en todo curso de Ingeniería de Software) junto con las experiencias de Angel León durante los últimos 8 años desarrollando software en Venezuela y los Estados Unidos.

[ad#Gubatron-AmazonAd-PPBook-120×240]
  • Angel L. Leon

    wuao hermano q gran ejemplo eres un genio y mi inspiracion te quiero gracias por esas palabras porq eso es un consejo q sirve para todo tanto en el trabajo, hogar y la vida misma sigue asi y suerte