Diseño

Así habló el maestro Desarrollador:
«Cuando el programa está siendo probado, es muy tarde para hacer cambios de diseño.»

3.1
Hubo una vez un hombre que fue a una feria de computadoras. El primer día al entrar, le dijo al guardia de la puerta:
«Yo soy un gran ladrón, renombrado por mis hazañas de robar tiendas. Estás avisado de antemano, porque esta feria no escapará sin ser saqueada.»
Estas palabras incomodaron mucho al guardia, porque adentro había millones de dolares en equipo computacional, así que observó al hombre cuidadosamente. Pero el hombre solamente vagaba de stand en stand, murmurando para sí.
Cuando el hombre se iba, el guardia se lo llevó aparte y buscó entre sus ropas, pero no encontró nada.
Al siguiente día de la feria, el hombre regresó y regañó al guardia diciendo: «Ayer escapé con un gran botín, pero hoy será todavía mejor.» Así que el guardia lo observó más de cerca, pero sin resultados.
En el último día de la feria, el guardia no pudo resistir más su curiosidad. «Señor Ladrón, » dijo
«estoy tan confundido que no puedo vivir en paz. Por favor ilumíneme. ¿Qué es lo que está robando?»
El hombre sonrió. «Estoy robando ideas» dijo.

3.2
Hubo una vez un maestro Desarrollador que escribía programas no estructurados. Un Desarrollador novicio, buscando imitarlo, también 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 señor de Wu. El señor le preguntó al Desarrollador: «¿Qué es más fácil de diseñar: un paquete de contabilidad o un sistema operativo?»
«Un sistema operativo», contestó el Desarrollador.
El señor lanzó una exclamación 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 diseñar un paquete de contabilidad, el Desarrollador opera como un mediador entre personas que tienen ideas diferentes: cómo debe operar, cómo 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 diseñar un sistema operativo, el Desarrollador busca la armonía más simple entre máquina e ideas. Es por esto que un sistema operativo es más fácil de diseñar.»
El señor de Wu asintió y sonrió. «Eso está bien y correcto, pero ¿cuál es más fácil 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 aplicación. El gerente le preguntó al maestro: «¿Cuánto tiempo tomará diseñar este sistema si le asigno cinco Desarrolladores al proyecto?»
«Tomará un año», dijo el maestro rápidamente.
«¡Pero necesito este sistema inmediatamente o antes! ¿Cuánto tiempo se tardará en diseñar este sistema si le asigno diez Desarrolladores?»
El maestro frunció el ceño. «En este caso, tomará dos años.»
«¿Y si le asigno cien Desarrolladores?»
El maestro se encogió de hombros. «Entonces el diseño nunca será completado», dijo.