Mientras funcione ...

Hace poco escuché a un desconocido decir algo como - Lo importante es que el código funcione correctamente no si se lee mejor o peor - no dudo ni por un minuto, que es mejor un código mal hecho que funcione, a un código perfectamente legible que no funciona. Dándole un par de vueltas y teniendo en cuenta que yo no había escuchado el resto de la conversación, imagino que lo que quería decir esa persona es que si el código mal hecho pero que funciona se puede hacer en 30 minutos en vez de en 60 es mejor, pero ahí si que discrepo totalmente.

Cuando estaba en la universidad, esa máxima era cierta, lo importante era tener la práctica terminada y funcionando (total, una vez corregida nadie la volvía a mirar). Pero cuando empecé a trabajar me dí cuenta de algo muy duro - algo me había comentado algún profesor pero de manera un poco abstracta y sin mucho detalle - ¡el software hay que mantenerlo!, ¿cómo?, a mi nadie me había enseñado eso, en que clase dieron esa parte?!?!?!

Pues sí, esa es la dura realidad, el software tiene un mantenimiento, y puede ser realmente caro si no se hacen las cosas correctamente desde el principio. Ese programador que tarda 30 minutos en hacer una funcionalidad X, dentro de 3 meses puede que tarde 5 horas en descubrir cual es el error de la aplicación simplemente porque no entendía su propio código (cuando es el suyo, porque si es de otra persona puede tardar 15 horas). Pero el programador que tardó 60 minutos, porque quería tener un código legible y usar patrones para que el código fuese más limpio, puede que tan solo tarde 1 hora en resolver el problema.

Aunque estas cifras no son científicas, creo que están muy próximas a lo que puede ocurrir en el mundo real, o simplemente a mi propia experiencia :) Con lo cual tenemos, que el programador tardó el doble en programar el método (lo que hace un total de 30 minutos de perdida), pero realizó la corrección del error 5 veces más rápido (lo que hace que gane 4 horas). Es pura lógica, yo prefiero ganar esas 4 horas!!!

Nota: Para todos aquellos que no realizan el mantenimiento de su propio código (y para que quede constancia, en general yo me encuentro en ese caso actualmente), estos consejos son igual de válidos. Si el código se mantiene facilmente, el cliente estará más contento y más contratos tendremos, además le haremos la vida más feliz a nuestros compañeros si son ellos los que mantienen el código, haciendo que nuestra empresa sea un sitio mejor. Y si lo mantiene otra empresa simplemente le harás la vida más feliz a otra persona que hará dicho trabajo, lo cual te hará mejor persona o mejorará tu karma, o cualquier otra explicación que te guste :)

Comentarios

Gregorio Mena ha dicho que…
Las cifras no serán científicas, pero yo creo que tienes más razón que un santo. Y aunque cada vez hay más escrito sobre la deuda técnica, conversaciones como esa, creo que se siguen dando mucho.
Esta y la entrada anterior pueden ser dos toques de atención muy buenos.
Un abrazo!
code clay ha dicho que…
Incluso hay quien apunta a hablar de porcentajes en cuanto a los costes de mantenimiento.

http://www.thedacs.com/databases/url/key/5881

http://java.sun.com/docs/codeconv/

Lo que reafirma tu opinión al respecto.

Saludos
Sergio ha dicho que…
Toda la explicación iba bien hasta que llegaste al karma, donde me sacaste una sonrisa. Ahora hablando en serio, estoy completamente de acuerdo contigo. La gente no suele mirar más allá de esto tengo que sacarlo rápido, y si hay que mantenerlo pues ya veremos.

De nuevo, felicidades por el blog.
Yeray Darias ha dicho que…
Muchas gracias a los tres por los comentarios de apoyo, es importante ver que hay más gente que aprecia la calidad en el desarrollo de software. Bueno Sergio tú ya sabes que yo no creo mucho en eso del karma pero después de ver "Me Llamo Earl" cualquiera sabe :)
davis ha dicho que…
Alguién dijo alguna vez:

"Escribe tu código como si fuese a mantenerlo un maníaco violento que sabe donde vives" :P

Un buen resumen, ¿no?

Un saludo
Yeray Darias ha dicho que…
jajajaja, si la verdad es que esa frase resume muy bien como se deberían hacer las cosas.

Muchas gracias.
Juanjo ha dicho que…
He de decir que estoy completamente de acuerdo, pero muchas veces la situación (prisas por entregar, la más recurrente) no te permite hacer el código de la forma en que te gustaría.
Y los retrasos también cuestan dinero.
Salu2

PD: por dar la brasa y desmarcarme de la opinión popular XDDD
Yeray Darias ha dicho que…
En fin Juanjo, lo tuyo es siempre llevar la contraria verdad??? :D
Anónimo ha dicho que…
Este comentario ha sido eliminado por un administrador del blog.

Entradas populares de este blog

Log4j - JMS Appender con ActiveMQ

La técnica del patito de goma

#informáticaSoluciónYA