Sobre la teoría de la ventana rota

He cogido la mala costumbre de leer libros… Pues bueno, hace no más de una semana recibí en casa un par de libros que encargué por Amazon.

Code Complete 2

The Pragmatic Programmer

Para colmo, estoy leyendo los dos al mismo tiempo, y lo intercalo con algún que otro visionado de revistas antiguas de “El Jueves”.

Bueno, me centro en el segundo, en “The Pragmatic Programmer”: En uno de los primeros capítulos leí sobre “La teoría de la ventana rota” y me pareció de sumo interés.

Se hizo un estudio sobre el abandono de edificios en grandes ciudades (Niu York, si no recuerdo mal) y se descubrió que el deterioro de un edificio empieza a crecer exponencialmente si en ese edificio hay una ventana rota. Podemos tener un edificio abandonado, pero intacto, todo perfecto durante muchos años, pero en el momento en que una ventana se rompa, el deterioro y la destrucción del mismo (que catastrófico) llega en días. ¿Razón? Da una sensación de abandono y no cuidado. Por ello, se deja aún más estar y acaba siendo una absoluta ruina: llegan los grafiteros y pintan en las paredes, los niños rompen más ventanas…

Apliquemos esto mismo a un proyecto de software. Supongamos que tenemos un proyecto perfecto, limpio, organizado y de pronto, nos encontramos con “una ventana rota”: código guarro, mala implementación, etc etc… Si no lo arreglamos en el momento, corremos el riesgo de que nuestro proyecto acabe en ruinas. Si dejamos ese tipo de cosas, cualquiera que venga a trabajar en tu proyecto y vea esa ventana rota, no tendrá cuidado cuando cree su código ya que le dará la sensación “de abandono, de que está todo así”. Sin embargo, si está todo sin ventanas rotas, pondremos mucho más cuidado en nuestro código, para no enguarrar el edificio y mantener la armonía.

Curioso y cierto como que el pan sube todos los años…

Advertisement

~ por jbeerbros en abril 12, 2010.

6 comentarios to “Sobre la teoría de la ventana rota”

  1. Casualidades de la vida yo también me compré los dos en Amazon (junto con Effective Java) y me los he ido leyendo a la vez.

    Al final me he acabado Effective Java y The pragmatic programmer, los dos realmente buenos. Code Complete me está costando un poco más…

    No aporto nada/mucho pero hacía tiempo que no hacía un comentario en un blog :)

  2. Genial! Ahora mismo le estoy metiendo más caña al de “Pragmatic Programmer” y me está gustando bastante.

    Después de leer los libros, ¿Te ha servido en tu día a día a la hora de enfrentarte a código y proyectos?

  3. Effective Java me ha servido bastante a la hora de leer código ajeno, o ver un patrón de diseño que se podría utilizar para algunas cosas que estoy haciendo (Builder, Factory, etc.)

    The Pragmmatic Programmer diría que hay que leérselo cada año, sin darte cuenta le das más importancia al diseño de tu proyecto, para que sea más modulable, mantenible y testeable.

    No son varitas mágicas ni hay nada concreto que te vaya a servir, sólo te ayuda a pensar más ‘out of the box’ y no ponerte a programar sin antes reflexionar un poco.

    Saludos!

  4. Se me olvidaba, ahora que intento meter unit testing a algunas de mis aplicaciones te das cuenta sobre lo difícil de hacer ‘código testeable’. Una buena costumbre que quiero hacer para todos mis proyectos.

  5. Esa es la idea. Hay muchas cosas que te cuentan estos libros, que pueden ser muy obvias, pero hasta que no lo lees no te das cuenta de ello y reflexionas. También te pueden ayudar a asegurar una intuición que tenías sobre tal forma de hacer las cosas…”Ah! Así que no iba tan mal encaminado!”

  6. Nosotros hemos empezado a meter Junits en los proyectos recientemente. El uso de TDD es simplemente asombroso no solo a la hora de ahorrarte tiempo cuando haya problemas, si no, el crear una API organizada y estructurada desde 0.
    El pensar en los tests antes de crear la implementación ya te va orientando el como debe ser dicha funcionalidad.
    Ayuda a generar código más limpio.

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

 
Seguir

Get every new post delivered to your Inbox.