jueves, febrero 25, 2010

Arquitectura de Software, ciencia? ingenieria? arte? o alquimia?

Siempre es un tema que sale con birras de por medio y nunca llegamos a la conclusión, digamos que:
1. Es ciencia? La verdad que no, sin entrar en detalle en la definición, la arquitectura de software está claramente lejos de la formalización, gracias adiós, jamás podría pensar un modelo formal para manejar las variables que se consideran para crear una arquitectura, y menos que eso poder validarla. Aunque hay ciertos aspectos de la ciencia que si son interesantes y se usan para tomar decisiones, se me ocurren temas de disponibilidad.
2. Es una ingeniería? Aca creo que nos vamos acercando un poco, aunque todavía no creo que el software haya llegado a la ingeniería todavía, siendo ingeniero (de sistemas, no de software) podría decir que nos falta mucha madurez para tener un un método que me permita obtener el mismo resultado (o parecido) y asegurar la completitud de las necesidades. Obviamente esa es la manera conservadora de ver la ingeniería.
3. Es un arte? Aca estamos un poco más cerca, definitivamente... el proceso de creación de arquitectura está más cerca de la creatividad que de los metodos formales de diseño. En que cabeza cabe que el diseño puede ser "formalizado" y definido en un proceso? Está claro que pueden haber guias, experiencias documentadas, ejemplos, maneras de comunicar un diseño, pero ahora tener un proceso (input-X-output) repetitivo en diferentes contextos y situaciones, yo no creo. Ahora tampoco creo que es puramente artístico la creación de la arquitectura, se supone que debemos que elegir la solución más simple, con mayor reuso (assets, patterns, estilos, etc) y restringidos por tiemos y costos, esta ultima parte destruye (felizmente) la fumatina de los arquitectos. Que según Esteban Lorenzano "Arquitecto con tiempo es más peligroso que mono con navaja"

Ahora bien, si bien creo que la arquitectura de software tiene algunos componentes de la ciencia, se podría decir que está muy cerca de la ingeniería y tiene mucho del arte, he llegado a la conclusión que yo a la arquitectura de software encasillaría dentro de lo que es una alquimia, por que? bueno.... algunos puntos:
  • La alquimia se basa en algunos aspectos de la ciencia, sobre todo las bases
  • La experiencia y sabiduría de quien la practica es el elemento fundamental de la alquimia
  • Arte, que más decir aca la alquimia definitivamente está muy influenciado por la creatividad y la constante expresión
  • El aprendizaje constante de nuevas técnicas
  • La búsqueda del resultado/transformación más apropiado
  • La amplitud recibir y compartir experiencias místicas dentro del proceso
Bueno, este es mi aporte del mes :) opiniones/insultos más que bien recibidos/as

3 comentarios:

nohorbee dijo...

Es un tema sobre el cual aún no me decido. No creo que sea puramente ciencia, pero no concuerdo con los argumentos que expusiste en este caso para descartar su naturaleza artística. Es decir, en el arte también existen "constrains" como los que mencionas. Incluso, son constrains que se van modificando con la evolución artística. Si se quiere incluir al cine como un arte, es un gran ejemplo. Hace 100 años, pensar en un cine hablado, era algo que no se contemplaba en los costos, tiempos, etc. Hace 30 años, pensar que la imagen podía verse fuera de la pantalla, dando la sensación de una 3ra dimensión, era impensado también.

Yo creo que hoy no se considera la arquitectura como una pieza de arte, basicamente porque no hay un edificio gigante en París que esté dispuesto a colgar diagramas de componentes, decisiones de arquitectura, ni ningún otro tipo de lienzo UMListico.
Quizas si un día, planteamos una revolución y la llamamos Re-Renacimiento, nos den un poco de bola (pero ojo, ese día se da vuelta la tortilla para todo. Ser Ingeniero te va a permitir ganar MINAS!!!).

Bueno, después del aporte, sigo sin decidirme donde lo pondría. Voy apagando el faso.

Gona dijo...

Ojo, que es dificil diferenciar al alquimista bueno del chamuyero.
Igual coincido con vos en las similitudes, como los alquimistas querian trasnformar el plomo en oro, hubo muchos "arquitectos" que los superaron transformando sistemas muy malos y que nunca andaron en oro...
Para mi no podemos hablar de nada que tenga que ver con el software sin aceptar y estudiar su naturaleza unica, muchos problemas vienen de intentar aplicar conceptos de otras ramas (ingenieria, algunas ciencias) a el software sin entender su naturaleza inmaterial, yo intentaria no clasificarlo en ninguna de las ramas anteriores y decir solamente "tipo que hace software", los que hacen software, el resto que se ponga a laburar :P

Gona dijo...

Por ahi le va tambien "protociencia"
http://es.wikipedia.org/wiki/Protociencia