Implosión

Siempre se ha dicho que diseñar y escribir programas y aplicaciones de software es cómo construir una casa. A pesar del término, un “Arquitecto de Software” tiene muy poco en común con un arquitecto de edificios, principalmente porque un cliente o usuario que pide una pieza de software no tiene idea de lo que quiere hasta que ve lo que no hace el software que le construiste. Uno no puede rediseñar un edificio que está a medio construir; y resulta muy caro reemplazar la tubería completa de uno ya construido. Sin embargo esto es uso y costumbre en el mundo del software. La razón es sencilla: a diferencia de un edificio, el software es algo intangible, casi misterioso, y esto provoca que muchas veces un cliente o jefe pida funciones (o cambios) significativos en una aplicación sin de veras imaginar el tiempo o dinero que conllevará.

Hace tiempo leí un escrito muy gracioso en forma de carta titulado “Si los arquitectos tuvieran que trabajar como programadores de software”, que ilustra perfectamente el tema. Aquí lo reproduzco traducido al español:

Estimado Arquitecto:

Por favor diseñe y constrúyame una casa. No estoy del todo seguro de lo que necesito, así que debe usar su discreción. Mi casa deberá tener de dos a cuarenta y cinco habitaciones. Sólo asegúrese que los planos se realicen de tal forma que se puedan añadir o remover habitaciones fácilmente. Cuando me presente los planos, yo haré la decisión final sobre lo que quiero. Además, incluya el detalle de costo de cada configuración para yo poder escoger una arbitrariamente.

Recuerde que la casa que finalmente yo escoja debe costar menos que la que vivo actualmente. Asegúrese, sin embargo, que corrija todas las deficiencias que existen en mi casa actual (el piso de la cocina vibra cuando camino sobre él y las paredes no contienen suficiente aislamiento).

Mientras diseña, recuerde que quiero mantener mis costos anuales de mantenimiento lo más bajos posible. Esto implica el uso de materiales de costo extra como el aluminio y vinilo. Si decide no usar aluminio, esté preparado para explicar en detalle su decisión.

Asegúrese de utilizar siempre las prácticas de construcción más modernas y los últimos materiales en la construcción de la casa, ya que deseo que sea un ejemplo de las ideas y conceptos más avanzados. Le alerto, sin embargo, que debe diseñar la cocina para que acomode, entre otras cosas, mi refrigerador Gibson del 1952.

Para asegurarse que construye la casa correcta para nuestra familia entera, contacte a cada uno de nuestros hijos y suegros. Mi suegra tendrá ideas muy fuertes sobre cómo se debe diseñar la casa, ya que ella nos visita al menos una vez al año. Asegúrese de sopesar todas estas opciones cuidadosamente para que pueda llegar a la decisión correcta. Sin embargo, me reservo el derecho de anular cualquier alternativa que usted elija.

Por favor no me moleste en este momento con detalles pequeños. Su trabajo es desarrollar los planos preliminares de la casa para tener una idea general. Por ejemplo, en este momento no es apropiado seleccionar el color de las alfombras. Recuerde, sin embargo, que a mi esposa le gusta el azul.

No se preocupe en este momento de adquirir los recursos para construir como tal la casa. Su primera prioridad es desarrollar los planos y especificaciones detalladas. Sin embargo, una vez yo apruebe estos planos, espero la casa completada en no más de cuarenta y ocho horas.

Aunque usted está diseñando esta casa específicamente para mí, recuerde que tarde o temprano la debo vender. Por tal motivo debe atraer a una gran variedad de potenciales compradores. Antes de terminar los planos, asegúrese que existe un consenso entre la población del área de que la casa es de su agrado. Le recomiendo que visite la casa que mi vecino construyó hace un año. Nos gusta mucho. La misma tiene muchas funciones que nos gustaría tener en nuestra nueva casa, particularmente la piscina de setenta y cinco pies. Con una ingeniería cuidadosa, entiendo que usted puede incluir esto en el diseño sin impactar el costo final.

Prepare un grupo completo de planos. En este momento no es necesario hacer el diseño real, ya que sólo se usarán para la subasta de la construcción. Tenga en cuenta, sin embargo, que usted será responsable de cualquier aumento en los costos de construcción como resultado de cambios futuros en el diseño.

¡Imagino que debe sentirse entusiasmado de trabajar en tan interesante proyecto! Poder utilizar los materiales y las técnicas más modernas, y tener tanta libertad de diseño no se da muy a menudo. Comuníquese tan pronto como sea posible con sus ideas y diseño.

PS: Mi esposa me acaba de decir que está en desacuerdo con muchas de las instrucciones que le he dado en esta carta. Como arquitecto, es su responsabilidad resolver estas diferencias. Yo lo he intentado en el pasado y no he podido lograrlo. Si usted no puede manejar esta responsabilidad, tendré que buscar otro arquitecto.

Quizás ni siquiera necesitamos una casa, sino un remolque de acampar. Por favor asesóreme tan pronto pueda si este es el caso.

Definitivamente la arquitectura de edificios no es fácil, pero tampoco la arquitectura de software…