¿Tiene sentido hablar de arquitectura del software?

La entrada sobre Arquitectura de Software en la Wikipedia en español me parece demasiado pretenciosa:

En los inicios de la informática, la programación se consideraba un arte y se desarrollaba como tal, debido a la dificultad que entrañaba para la mayoría de las personas, pero con el tiempo se han ido descubriendo y desarrollando formas y guías generales, en base a las cuales se puedan resolver los problemas. A estas, se les ha denominado Arquitectura de Software, por que, semejanza de los planos de un edificio o construcción, estas indican la estructura, funcionamiento e interacción entre las partes del software.

Primero, no creo que el programar haya dejado de ser un arte, lo dicho por Knuth sigue siendo válido:

Me parece que si los autores que he estudiado escribieran hoy en día, estarían de acuerdo con la siguiente caracterización: la Ciencia es el conocimiento que podemos entender tan bien que se lo podemos enseñar a un computador; y si no podemos entender totalmente algo, es un arte lidiar con este. Dado que la noción de un algoritmo o un programa de computadora nos da una profunda prueba de la profundidad de nuestro conocimiento sobre algún asunto dado, el proceso de ir desde un arte a una ciencia significa que hemos aprendido como como automatizar algo.

La inteligencia artificial ha estado haciendo progresos sifnificativos, y aún allí hay una tremenda brecha entre lo que los computadores pueden hacer en un futuro previsible y lo que las personas comunes pueden hacer. Los misteriosas ideas que tienen las personas cuando hablan, escucha, crean y aún cuando programan, están aún lejos del alcance de la ciencia; casi todo lo que hacemos aún es un arte.

En segundo lugar lo que no me gusta de la noción de arquitectura de software, es que lleva implícita la idea de que el software se construye, del mismo modo como se construyen edificios.

Mi experiencia me dice que no es así, y siempre he pensado que el software no se construye de esa manera, y por eso que es mejor decir que “desarrollamos software”, porque usamos el término en el sentido de evolucionar. Es decir, el software no se construye, el software evoluciona.

Aunque podemos aprender y adaptar algunas prácticas de la arquitectura a nuestra labor, no me parece correcto plantear que debemos hablar de la arquitectura de software como una actividad que realmente exista.

El software tiene una naturaleza distinta a todos los otros artefactos que construye el hombre.

Si abandonamos la noción de que el software se construye, nos damos cuenta que no tiene sentido hablar de arquitectura de software (como tampoco tiene mucho sentido hablar de ingeniería de software).

No sé cómo podemos caracterizar nuestra profesión (una labor de envergadura), pero si creo que tenemos que mirarla de otra manera, quizás el viejo Knuth tiene razón, al final sólo somos artistas (¿o artesanos?).

Me gustaría saber qué piensan ustedes, ¿deberíamos dejar de hablar de arquitectura de software?, digo, ¡antes de que aparezcan los colegios de arquitectos de software!

Autor

Ingeniero, autor, emprendedor y apasionado programador. Mantengo este blog desde 2005.

comments powered by Disqus
Siguiente
Anterior

Relacionado

¿Te gustó?

Puedes apoyar mi trabajo en Patreon:

O puedes apoyarme con un café.