El código es diseño
Autor: Ryan Brush

Imagínate despertar mañana y saber que la industria de la construcción ha hecho el avance del siglo. Millones de robots baratos e increíblemente rápidos pueden fabricar materiales de la nada, tener gasto energético cercano a cero y se pueden reparar a sí mismos. Y se pone mejor: al darle un no-ambiguo plano para un proyecto de construcción, el robot puede construirlo sin la intervención humana, todo ello a un costo insignificante.

Uno puede imaginar el impacto en la industria de la construcción, pero ¿qué pasaría más adelante? ¿Cómo cambiaría el comportamiento de los arquitectos y diseñadores si los costos de construcción fueran insignificantes? Hoy en día modelos físicos y computacionales son creados y rigorosamente probados antes de invertir en la construcción. ¿Nos preocuparíamos si la construcción fuera esencialmente gratis? Si un diseño se colapsa, no hay problema, sólo encuentra qué estuvo mal y pon a nuestros robots mágicos a construir otro. Hay otras implicaciones. Con modelos obsoletos, los diseños sin terminar evolucionan mediante la construcción y mejoran en repetidas ocasiones hacia una aproximación de la meta final. Un observador casual podría tener problemas distinguiendo un diseño inacabado y un producto terminado.

Nuestra capacidad para predecir líneas de tiempo se esfumaría. Los costos de construcción son calculados más fácilmente que los costos de diseño –sabemos el costo aproximado de instalar una viga y cuántas vigas necesitamos–. Como las tareas predecibles se reducen a cero, la época del diseño menos predecible empieza a dominar. Los resultados se producen con mayor rapidez, pero los plazos fiables escapan.

Por supuesto, se sigue aplicando la presión de una economía competitiva. Con los costos de construcción eliminados, una empresa puede completar rápidamente un diseño ganando una esquina en el mercado. El tener pronto los diseños terminados se convierte en el empuje central de las firmas de ingeniería. Inevitablemente, alguien no familiarizado con el diseño verá una versión invalidada, ve una ventaja del mercado al liberar temprano y dice “esto parece lo suficientemente bien”.

Algunos proyectos de vida o muerte serán más diligentes, pero en muchos casos los consumidores aprende a sufrir el diseño incompleto. Las empresas siempre puede mandar robots mágicos a “parchar” los edificios y vehículos rotos que venden. Todo esto apunta a una conclusión intuitiva: nuestra única premisa era una dramática reducción en los costos de construcción, con el resultado de que la calidad ha empeorado.

No debería sorprendernos que la historia de arriba fuera ejecutada por el software. Si aceptamos que el código es diseño –un proceso creativo en vez de uno mecánico– la crisis del software se explica. Ahora tenemos una crisis de diseño: la demanda de diseños validados y de calidad excede nuestra capacidad de crearlos. La presión por usar diseños incompletos es fuerte.

Afortunadamente, este modelo también ofrece pistas de cómo mejorar. Las simulaciones físicas equivalen a pruebas automatizadas; el diseño de software no está completo hasta que es validado con una batería de pruebas brutal. Para hacer tales pruebas más efectivas estamos encontrando maneras de frenar en el gran espacio de estados de los grandes sistemas. Los lenguajes mejorados y las prácticas de diseño nos dan esperanza. Finalmente, hay un hecho ineludible: los grandes diseños son producidos por grandes diseñadores dedicados a la maestría de su oficio. El código no es diferente.

Traducción: Espartaco Palma

Leer contribución original