Cómo nos gusta complicar las cosas

Ains...

Publicado por Daniel Vela en April 23, 2022
Lea esta página en un idioma diferente:

Durante mis años universitarios sufrí -o más valdría decir, disfruté- varias obsesiones. Una de ellas fue descubrir la diferencia entre lo que se denominaba un “diseño de software” y un “análisis de software”. Leí y leí multitud de libros de diseño y análisis informático, pero no conseguí resolver mis dudas; lo que en algunos libros denominaban análisis, en otros lo llamaban diseño. En ninguno de esos libros encontré la diferencia entre estos términos. Si me obsesioné con ellos fue debido a algún libro, o curso que realicé, donde se especificaban las fases del desarrollo de software: desde la recogida de requerimientos, hasta la codificación, se pasaban por varios estados: dos de esos estados eran el análisis y el diseño.

Por más que preguntaba a mis profesores y compañeros, y por más que buscaba en libros e internet, no conseguí resolver esta duda. ¿Cuál es la diferencia entre el análisis y el diseño de software? Al final conseguí resolver esta duda en el sitio más insospechado de todos, -no recuerdo cómo llegué a la conclusión de mirar ahí, puede que desesperación-: el lugar donde encontré la diferencia fue el real diccionario de la academia española.

Mi confusión estaba provocada por que mirase donde mirase, el resultado del análisis y el diseño era lo mismo, pero en todos lados decían que eran conceptos diferentes. Gracias al diccionario conseguí descubrir que el análisis es un proceso mental con el que desmenuzamos conceptos para poder entenderlos mejor. Un diseño es una representación gráfica de unos conceptos. Análisis y diseño están relacionados porque para diseñar cualquier cosas primero debemos analizarla, y gracias a ese diseño, podemos seguir diseñando, sin necesidad de tenerlo todo en la cabeza. Es decir, el diseño es una herramienta que ayuda a analizar, y a dejar constancia gráfica de dicho análisis.

Todo esto, a día de hoy, parece superficial incluso simplón, pero os puedo asegurar que leyendo todos aquellos libros de ingeniería de software, ninguno de ellos lo presentaba de manera tan sencilla, lo que me provocó muchas dudas de algo que era así de simple. ¿Para qué nos complicamos tanto?