TAO Del Programdor
TAO Del Programdor
TAO Del Programdor
Traducido por Geoffrey James, Transcrito por Seth Robertson, Versin Espaola por TESI
Tabla de Contenido
Libro 1 - El Vaco Silencioso Libro 2 - Los Maestros Antiguos Libro 3 - Diseo Libro 4 - Codificacin Libro 5 - Mantenimiento Libro 6 - Administracin Libro 7 - Sabidura Corporativa Libro 8 - Hardware y Software Libro 9 - Eplogo
Pero no programes en COBOL si puedes evitarlo. 1.3 En el principio era el Tao. El Tao engendr al Espacio y Tiempo. Por lo tanto, Espacio y Tiempo son el Yin y el Yang de la programacin. Los Desarrolladores que no comprenden el Tao siempre se quedarn sin tiempo y espacio para sus programas. Los Desarrolladores que comprenden el Tao siempre tendrn suficiente tiempo y espacio para realizar sus objetivos. Cmo podra ser de otra forma? 1.4 Al Desarrollador sabio le hablan del Tao y lo sigue. Al Desarrollador promedio le hablan del Tao y lo busca. Al Desarrollador necio le hablan del Tao y se rie. Si no fuera por la risa, no habra Tao. Los sonidos ms altos son los ms difciles de oir. Ir hacia el frente es una forma de retirarse. Los grandes talentos se muestran hasta tarde en la vida. Hasta un programa perfecto tiene errores.
2.3 Un Desarrollador de una compaa muy grande de computadoras fu a una conferencia de software y luego regres a reportarse con su jefe, diciendo: "Que clase de Desarrolladores trabajan para las otras compaias? No se comportan y no les interesan las apariencias. Su pelo era largo y descuidado y sus ropas arrugadas y viejas. Arruinaron las reglas de etiqueta e hicieron ruidos groseros durante mi presentacin." El jefe dijo: "Nunca deb haberte enviado a la conferencia. Esos Desarrolladores viven ms alla del mundo fsico. Ellos consideran a la vida un absurdo, una coincidencia accidental. Ellos van y vienen sin conocer limitaciones. Sin ningn cuidado, ellos viven solo para sus programas. Porque deberan molestarse por las convenciones sociales? Ellos viven dentro del Tao." 2.4 Un novicio le pregunt al Maestro: "Hay un Desarrollador que nunca disea, documenta, ni prueba sus programas. Y todos los que lo conocen lo consideran uno de los mejores Desarrolladores del mundo. Cmo es esto?" El Maestro contest: "Ese Desarrollador se ha convertido en un maestro del Tao. El ha ido ms all de la necesidad de disear; el no se enoja cuando el sistema se cae, acepta al universo sin preocupacin. El ha ido ms all de la necesidad de documentar; ya no le interesa si alguien ms ve su cdigo. El ha ido ms all de la necesidad de probar; cada uno de sus programas son perfectos dentro de s mismos, serenos y elegantes, su proposito es auto-evidente. Realmente, el ha penetrado el misterio del Tao."
En el ltimo da de la feria, el guardia no pudo resistir ms su curiosidad. "Seor Ladrn, " dijo "estoy tan confundido que no puedo vivir en paz. Por favor ilumneme. Qu es lo que est robando?" El hombre sonri. "Estoy robando ideas" dijo. 3.2 Hubo una vez un maestro Desarrollador que escriba programas no estructurados. Un Desarrollador novicio, buscando imitarlo, tambin comenz a escribir programas no estructurados. Cuando el novicio le pidi al maestro evaluar su progreso, el maestro lo critic por escribir programas no estructurados, diciendo: "Lo que es apropiado para el maestro no es apropiado para el novicio. Debes entender el Tao antes de trascender la estructura." 3.3 Hubo una vez un Desarrollador que estaba asignado a la corte del seor de Wu. El seor le pregunt al Desarrollador: "Qu es ms fcil de disear: un paquete de contabilidad o un sistema operativo?" "Un sistema operativo", contest el Desarrollador. El seor lanz una exclamacin de incredulidad. "De seguro un paquete de contabilidad es trivial comparado con la complejidad de un sistema operativo", dijo. "No tanto," dijo el Desarrollador, "al disear un paquete de contabilidad, el Desarrollador opera como un mediador entre personas que tienen ideas diferentes: cmo debe operar, cmo debe entregar sus reportes, y como debe conformarse con las leyes de impuestos. Al contrario, un sistema operativo no est limitado por las apariencias externas. Al disear un sistema operativo, el Desarrollador busca la armona ms simple entre mquina e ideas. Es por esto que un sistema operativo es ms fcil de disear." El seor de Wu asinti y sonri. "Eso est bien y correcto, pero cul es ms fcil de depurar?" El Desarrollador no contest. 3.4 Un gerente fue con el maestro Desarrollador y le mostr el documento de requerimientos para una nueva aplicacin. El gerente le pregunt al maestro: "Cunto tiempo tomar disear este sistema si le asigno cinco Desarrolladores al proyecto?" "Tomar un ao", dijo el maestro rpidamente. "Pero necesito este sistema inmediatamente o antes! Cunto tiempo se trdar en disear este sistema si le asigno diez Desarrolladores?" El maestro frunci el ceo. "En este caso, tomar dos aos." "Y si le asigno cien Desarrolladores?" El maestro se encogi de hombros. "Entonces el diseo nunca ser completado", dijo.
El maestro tosi y cambi ligeramente su posicin. "La leccin se acab por hoy", dijo. 4.4 El Desarrollador del Prncipe Wang estaba codificando. Sus dedos bailaban sobre el teclado. El programa compil sin un mensaje de error, y el programa corri como viento ligero. "Excelente!," exclam el Prncipe, "Tu tcnica no tiene fallas!" "Tcnica?," dijo el Desarrollador, girndose hacia su terminal, "Lo que yo sigo es el Tao -- mas all de toda tcnica. Cuando al principio empec a programar yo poda ver el programa completo en un bloque. Despus de tres aos ya nunca ms vi ese bloque. En vez de eso, us subrutinas. Pero ahora no veo nada. Todo mi ser existe en un vaco sin forma. Mi sentidos estan ociosos. Mi espritu, libre para trabajar sin un plan, sigue su propio instinto. En resmen, mi programa se escribe as mismo. Es verdad, a veces hay problemas y dificultades. Las veo venir, me freno, observo silenciosamente. Entonces cambio una sola linea de cdigo y las dificultades se desvanecen como nubes de humo. Entonces compilo el programa. Me siento erguido y dejo que el gozo del trabajo llene mi ser. Cierro mis ojos por un momento y entonces cierro mi sesin." El Prncipe Wang dijo, "Ojal todos mis Desarrolladores fueran tan sabios!"
5.3 Un Desarrollador novicio fue una vez asignado para codificar un paquete financiero sencillo. El novicio trabaj furiosamente por muchos dias, pero cuando su maestro revis su programa, descubri que contena un editor de pantalla, un conjunto de rutinas generales grficas, y una interface con inteligencia artificial, pero ni la ms remota mencin de nada financiero. Cundo el maestro le pregunt acerca de esto, el novicio se indign. "No seas tan impaciente, " dijo, "ya pondr esa cosa financiera eventualmente." 5.4 Acaso un buen granjero abandona la cosecha que ha plantado? Acaso un buen maestro pasa por alto an al ms humilde estudiante? Acaso un buen padre permite que uno slo de sus hijos se muera de hambre? Acaso un buen Desarrollador se rehusa a mantener su cdigo?
6.3 Un gerente estaba a punto de ser despedido, cuando un Desarrollador que trabajaba para l invento un nuevo programa que se hizo muy popular y se vendi bien. Como resultado, el gerente retuvo su empleo. El gerente intent darle al Desarrollador un bono, pero el Desarrollador se rehus, diciendo, "Escrib el programa porque pens que era un concepto interesante, y por eso no espero ninguna recompensa." El gerente, al oir esto, coment, "Este Desarrollador, aunque tiene una posicin poco estimada, entiende bien el deber propio de un empleado. Djenos promoverlo al privilegiado puesto de consultor de la administracin!" Pero cuando le dijo esto, el Desarrollador una vez ms se rehus, diciendo, "Yo existo para poder programar. Si yo fuera promovido, no hara nada excepto desperdiciar el tiempo de todos. Me puedo ir ya? Tengo un programa en el que estoy trabajando." 6.4 Un gerente fu con sus Desarrolladores y les dijo: "Con respecto a sus horas de trabajo: ustedes van a tener que venir a las nueve de la maana e irse a las cinco de la tarde." Con esto, todos se enojaron y varios renunciaron en el momento. Entonces el gerente dijo: "Est bien, en ese caso ustedes pueden fijar sus propias horas de trabajo, siempre y cuando terminen sus proyectos a tiempo." Los Desarrolladores, ahora satisfechos, comenzaron a llegar a medioda y trabajar hasta la madrugada.
El Desarrollador novicio mira sorprendido al pjaro, porque no lo entiende. El Desarrollador promedio teme la llegada del pjaro, porque tiene miedo de su mensaje. El maestro Desarrollador contina trabajando en su terminal, porque el no sabe que el pjaro ha venido y se ha ido. 7.3 El Mago de la Torre de Marfil llev su ltimo invento para que el maestro Desarrollador lo examine. El mago acarrea una gran caja negra a la oficina del maestro mientras el maestro espera en silencio. "Esta es una estacin de trabajo integrada, distribuida y de propsito general, " comenz el mago, "diseada ergonmicamente con un sistema operativo propietario, lenguajes de sexta generacin, y mltiples interfaces de usuario avanzadas. Tom a mis asistentes varios cientos de aos-hombre construirla. No es sorprendente?" El maestro alz sus cejas ligeramente. "Por supuesto que es sorprendente", dijo. "Los Cuarteles Corporativos han mandado, " continu el mago, "que todos usen esta estacin de trabajo como la plataforma para los nuevos programas. Est de acuerdo con esto?" "Ciertamente, " replic el maestro, "Har que sea transportada al centro de datos inmediatamente!" Y el mago regres a su torre muy complacido. Muchos das despus, un novicio vagaba por la oficina del maestro Desarrollador y dijo, "No puedo encontrar el listado de mi nuevo programa. No sabes donde puede estar?" "Si, " replic el maestro, "los listados estn apilados en la plataforma del centro de datos". 7.4 El maestro Desarrollador se mueve de un programa a otro programa sin miedo. Ningn cambio en la administracin le puede hacer dao. No ser despedido, aunque el proyecto sea cancelado. Por qu es esto? El est lleno con el Tao.
8.2 Un maestro Desarrollador pas cerca de un Desarrollador novicio un da. El maestro not la preocupacin del novicio con un juego de computadora porttil. "Perdname, " dijo, "puedo examinarlo?" El novicio prest atencin y le pas el dispositivo al maestro. "Veo que el aparato dice que tiene tres niveles de juego: Fcil, Intermedio y Difcil", dijo el maestro. "Y todava cada aparato tiene otro nivel de juego, donde el dispositivo no busca conquistar al humano, ni ser conquistado por el humano." "Ruego, gran maestro, " implor el novicio, "cmo hace uno para encontrar esa misteriosa configuracin?" El maestro tir el dispositivo al suelo y lo aplast bajo su pie. Y de repente el novicio fu iluminado. 8.3 Haba una vez un Desarrollador que trabajaba con microprocesadores. "Mira que tan bien estoy aqu, " le dijo a un Desarrollador de mainframes que vino a visitarlo, "tengo mi propio sistema operativo y dispositivo de almacenamiento de archivos. No tengo que compartir mis recursos con nadie. El software es consistente y fcil de usar. Por qu no dejas tu trabajo actual y te unes a mi aqu?" El Desarrollador de mainframes entonces comenz a describir su sistema a su amigo, diciendo: "El mainframe est sentado como un antiguo adivino meditando enmedio del centro de datos. Sus unidades de disco descansan una con otra como un gran ocando de maquinaria. El software es multifactico como un diamante y tan enredado como una selva primitiva. Los programas, cada uno es nico, se mueven a travs del sistema como un ro que fluye rpido. Es por eso que soy feliz donde estoy." El Desarrollador de microcomputadoras, al oir esto, guard silencio. Pero los dos Desarrolladores siguieron siendo amigos hasta el fin de sus das. 8.4 Hardware se encontr a Software en el camino a Changtse. Software dijo: "Tu eres el Yin y yo soy el Yang. Si viajamos juntos nos volveremos famosos y ganaremos enormes sumas de dinero." Y as la pareja march junta, pensando en conquistar al mundo. Luego ellos conocieron a Firmware, quien estaba vestido con harapos rados, y cojeaba apoyado en un bastn espinoso. Firmware les dijo: "El Tao reside mas all del Yin y Yang. Es silencioso y erguido como un pozo de agua. No busca fama, por lo tanto nadie sabe de su presencia. No busca fortuna, porque es completo dentro de s mismo. Existe mas all del espacio y el tiempo." Software y Hardware, avergonzados, regresaron a sus casas.