Parábola de los dos programadores

Érase una vez las empresas "AAA-AUTOMATED APPLICATIONS ASSOCIATION" y la "CCCC--CONSOLIDATED COMPUTERIZED CAPITAL CORPORATION", desconocidas ente si. Ambas decidieron que necesitaban el mismo programa para prestar un determinado servicio.

AAA contrato a un analista-programador, Alan, para que resolviera el problema.

CCCC encargó el trabajo a un programador junior, contratado para ver si era tan bueno como decía.

Alan, que poseía experiencia en la realización de proyectos de programación difíciles, decidió emplear el método PQR de diseño estructurado.

En función de ello, solicito a su jefe de departamento que nombrase a otros tres programadores para formar un equipo de programación. A continuación el equipo puso manos a la obra, elaborando cantidad de informes previos de análisis del problema.

En CCCC, Charles dedico un tiempo a considerar el problema. Sus compañeros de trabajo observaban que a menudo se sentaba con los pies sobre su escritorio, mientras bebía café. A veces se le veía sentado frente al terminal, pero su compañero de oficina podía adivinar que en realidad estaba jugando a marcianitos, por su forma rítmica de teclear.

A estas alturas, el equipo de AAA estaba empezando a codificar. Los programadores dedicaban la mitad de su tiempo a escribir y recopilar códigos y pasaban el resto del día reunidos, hablando de las interfaces entre los diversos módulos.

El compañero de oficina de Charles advirtió que este finalmente había dejado de jugar a marcianitos. En lugar de ello, su tiempo transcurría bebiendo café con sus pies sobre la mesa y haciendo garabatos en trozos de papel. Por sus garabatos no se podía decir que estuviese jugando a "tres en raya" pero tampoco parecían tener mucho sentido.

Han pasado dos meses. El equipo de AAA ya ha elaborado el calendario de implantación del programa. Dentro de dos meses tendrán la primera versión del mismo. Tras un periodo de dos meses más, para verificarlo y mejorarlo debería quedar concluida la versión completa del mismo.

En este momento, el jefe de Charles ya se ha cansado de verle holgazanear. Decide enfrentarse a él. Pero cuando se dirige a su oficina se queda sorprendido de verle muy enfrascado, introduciendo códigos en el terminal. Así que decide prorrogar el encuentro. Hablan un poco y se marcha. No obstante, empieza a vigilar de cerca a Charles, para enfrentarse a él en cuanto se le presente la ocasión. Como en realidad no deseaba tener una conversación desagradable le alegra comprobar que Charles parece estar ocupado la mayor parte del tiempo. Incluso se le ha visto ir tarde a comer y quedarse a trabajar fuera de horas de oficina dos o tres días a la semana.

Transcurridos tres meses, Charles anuncia que ha finalizado el proyecto, presenta un programa de 500 lineas. El programa esta escrito con claridad, y una vez verificado, ejecuta todo lo que se le exigía.

De hecho, posee incluso unos rasgos adicionales que podrían mejorar en gran medida la rentabilidad del programa. Este se somete a prueba y, con excepción de un descuido que se corrige rápidamente, funciona de manera satisfactoria.

El equipo de AAA ya ha concluido dos de los 4 módulos principales que configuran su programa. Mientras se elaboran los dos restantes, aquellos se someten a prueba.

Tres semanas después, Alan anuncia que ya esta lista la versión preliminar del programa una semana antes de lo previsto. El programa se somete a prueba. Los usuarios detectan una serie de fallos y deficiencias, a parte de los previstos. Como Alan aclara, no hay por qué engañarse. Después de todo, se tata de una versión preliminar en donde los fallos son normales.

Transcurridos unos dos meses mas, el equipo ha concluido su versión definitiva del programa. Esta constituida por 2500 líneas de código (si le sorprende esta cifra, pregúntele a un programador profesional. Le dirá que es bastante típico un ratio de 5 a 1 entre el programa más largo y el más corto, y normalmente estos últimos son los mejores). Una vez verificada, parece satisfacer la mayor parte de lo que se pedía. Contiene un par de omisiones, y el formato de su input de datos es muy confuso. Sin embargo, la compañía decide instalar el programa: siempre puede instruir al personal de entrada de datos para que lo hagan en el formato requerido. Se remite el programa a algunos programadores de mantenimiento para que subsanen las omisiones.

Desenlace

En un principio, el supervisor de Charles se quedo impresionado, pero a medida que iba leyendo el código fuente, se dio cuenta de que el proyecto era en realidad mucho más sencillo de lo que habían pensado.

Ahora parecía claro que no representaba un reto ni siquiera para un programador principiante. Charles había hecho cinco lineas de código por día. Representaba un promedio superior al normal. Pero, teniendo en cuenta la sencillez del programa no tenia nada de excepcional.

Además, su supervisor no olvidaba los meses que había estado haciendo el vago. En la revisión salarial siguiente, Charles recibió un aumento igual a la mitad correspondiente a la mitad de la inflación correspondiente a dicho periodo. No se le ascendió de puesto. Al cabo de un año aproximadamente, abandono CCCC desanimado.

En AAA, Alan recibió felicitaciones por haber concluido el proyecto en el tiempo previsto. Su jefe echo un vistazo al programa. Después de hojearlo durante unos minutos, vio que en él se respetaban las normas de la compañía sobre la programación estructurada. No obstante rápidamente desecho la idea de leerse todo el programa; parecía bastante incomprensible. En este momento se daba cuenta de que el proyecto era en realidad mucho más complejo de lo que había pensado en un principio y felicito a Alan por su trabajo.

Cada programador del equipo había producido 3 lineas de código por día. Era un promedio normal, pero, teniendo en cuenta la complejidad del programa, podía considerarse como excepcional. Se concedió a Alan un elevado aumento de sueldo y se le ascendió a Analista de Sistemas en recompensa a su trabajo.

Se invita al lector a que extraiga sus propias conclusiones.

Comentarios

Tan real como la vida

Tan real como la vida misma...

Enviar un comentario nuevo

Smileys
:);):(:D}:):P:O:?8):jawdrop::sick:
El contenido de este campo se mantiene como privado y no se muestra públicamente.
  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Saltos automáticos de líneas y de párrafos.
  • Textual smileys will be replaced with graphical ones.

Más información sobre opciones de formato

Captcha
Esta pregunta es para probar que el que escribe el comentario es un humano
1 + 6 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.

Tienda de música online