viernes, febrero 25, 2005

Ingeniería del Software en la Universidad

ó el arte de hacer el paripé.
Este artículo es una pequeña reflexión sobre lo que debería ser la Ingeniería del Software y lo que luego realmente es en el ámbito académico.

Para aquellos que no sepan qué es la Ingeniería del Software, se puede resumir brevemente en que es la disciplina que trata sobre cómo hacer Software (es decir, programas informáticos) usando técnicas de Ingeniería, siguiendo un proceso y unos estándares (por contraposición al desarrollo artesanal) para conseguir productos software de calidad y con los plazos y costes previstos.

¿Con qué nos encontramos en la Universidad? Básicamente con un "sálvese quien pueda". Chavales corriendo a la desbandada para cumplir plazos de entrega atroces, sin poner atención a lo que hacen, porque lo único que hay que justificar es un volumen de trabajo que se mide al peso sobre la documentación.

Recuerdo la primera asignatura introductoria a la Ingeniería del Software, en la que enseñaban a numerar las líneas de código de forma conveniente para hacer unos GOTO muy molones y a diseñar formularios mucho tufillo a los tiempos de COBOL. Aquella asigntura era el no-va-más, la impartía un carcamal salido que claramente favorecía a escotes y minifaldas. Vi a tías muy inútiles aprobar esa asignatura en revisiones a puerta cerrada, mientras que yo caía miserablemente por tener un poco de criterio y haberme permitido el lujo de llevarle la contraria al profesor en público. Aquel indivíduo me saludaba con una sonrisa malévola por los pasillos, seguramente pensando "tu culo es mío, chaval...". Al final aprobé la asignatura, creo que debido a que confundió mi examen con el de otro compañero que se llama de forma parecida (y que obviamente suspendió). Aún después de haberme aprobado me seguía sonriendo de forma maliciosa, seguramente confundido por su error.

Del siguiente par de asignaturas relacionadas con la Ingeniería del Software guardo mejores recuerdos. Nos enseñaron a hacer buenos diseños con UML, patrones, la metodología USDP, a seguir un estándar de documentación (el de la ESA) y también a ser críticos con el trabajo propio y ajeno. Ahí algunos aprendimos a hacer las cosas bien (o al menos intentar hacerlas, y si no se podía intentar justificarlo), pero otros mostraron una asombrosa capacidad para vender motos. Ahí es donde se vió quienes tenían madera de ingeniero, preocupándose por el diseño hasta el más mínimo detalle, mimando los diagramas y la redacción de los requisitos... y también quienes tenían madera de Minglanillez, que mostraban una caja de huevos y te decían que eso era un prototipo (gracias a Fuckowski por ser fuente de inspiración constante). Como los de los huevos no valen para ingenieros, seguramente acaben en algún puesto directivo donde estorben lo menos posible y cobren el máximo admisible.

La última asignatura de Ingeniería del Software que he tenido ya ha sido la repanocha... parece que ha sido un cursillo de Word, en el que de lo único que te tenías que preocupar era de presentar unos documentos bonitos y muy gordos. Se suponía que nos iban a enseñar a hacer estimación de proyectos, planificaciones, gestión de recursos... ¡pero no! ¿para qué? ¡si es más fácil romperle el ojete a los chavales con una cojo-práctica en la que el esfuerzo de corrección es mínimo porque se hace con una báscula! ¡así están distraidos y van dilatando el ano un poquito más, que falta les hará cuando trabajen!

Me jode enormemente esa gente que vive en el mundo de las piruletas, que se creen demasiado importantes para siquiera plantearse si la mierda de dibujo que ellos llaman diagrama tiene alguna coherencia, porque ya vendrá alguien detrás que hará que funcione. Cuando uno hace un diseño debería pensar que es él al que le va a tocar implantarlo... como en aquel anuncio de coches en el que decían que los ingenieros que los diseñaban pensaban en sus propias familias al crearlos.