jueves, 23 de mayo de 2013

¿Porqué el software falla?

Muchos culpamos a los administradores o a otros usuarios mortales de que nuestra aplicación se bloquea y falla cuando hay una sola y simple razón: mala programación.


¡¡Pero por Dios!! como es esto posible si los programadores son personas inteligentes, racionales y únicos en el mundo...ok me pasé. 

Pues déjenme decirles que esto es básicamente gracias a la complejidad.

El libro Code Simplicity (fuente de inspiración de este blog y base de este post) explica que las computadoras son probablemente los dispositivos más complejos que se puedan construir en nuestros días. 

El software es igual de complejo. Microsoft Windows 2000 fue uno de los software más grandes jamás creado en su momento, tenia cerca de los 30 millones de líneas de código. Imaginen la complejidad de eso.


Cuando algo falla en el software no podemos tomar una pieza como la de un coche y revisarla por que todo es abstracto y puede ser difícil entenderlo. 

El hecho es que la gran mayoría del software es muy complejo y las personas no pueden entender como funciona en su totalidad.

Entonces, ¿Qué se debe hacer?

La respuesta obvia es: reducir la complejidad a simplicidad. Las piezas de software complejas deben de organizarse de alguna manera para que otros programadores puedan trabajar con el sin tener que ser romperse la frente en el escritorio.

"El arte de la programación es reducir de la complejidad a la simplicidad"



Los malos programadores lo son por que fallan en reducir la complejidad, esto me trae la siguiente frase en mente:

"La diferencia entre los buenos y los malos programadores es el entendimiento"

Los malos programadores no entienden lo que están desarrollando...

Recuerdo: Una vez un amigo programador, de los malos, platicaba sobre lo que desarrollaba y termino diciéndome "... y no pues ya gracias a Dios ya funciona"....Yo fiel a mis creencias le dije "Amén hermano".

Lo primero es:

"Dejar de programar solo para que funcione y comenzar a programar para que otros lo entiendan"

Gastar un poco más de tiempo en programar código simple termina siendo más rápido que hacer código rápido al principio y luego gastar tiempo entendiéndolo.

En el siguiente post hablaré sobre lo que es un software realmente y como comenzar a simplificarlo. 

Pregunta: ¿Eres buen o mal programador? y ¿Como simplificas el código?






8 comentarios: