12 Jun 2004: reflexiones sobre la carrera
(This is a reprint of the original post)
Ayer acudí a la ceremonia de graduación (uno, dos y tres) de algunos de mis compañeros (los que más prisa se han dado en leer el proyecto), con la esperanza y la autoexigencia de que el próximo año yo sea uno de los que recojan el título.
Aunque todavía no me he incorporado a la vida laboral, me parece que es un buen momento para dar alguna opinión sobre el plan de estudios, y cómo considero que ha sido mi formación universitaria. No pretendo valorar a los profesores, al menos hoy, sino las materias impartidas.
Me resulta más fácil empezar por lo que considero que son las principales deficiencias:
- ¿Dónde están los patrones de diseño? Resulta increíble que, salvo una mención de pasada, no se estudien o al menos se comenten los patrones de diseño de software. Y eso que hay una asignatura de 18 créditos dedicada a la Ingeniería del Software.
- Abordar las metodologías, las técnicas y las herramientas del ingeniero de software de una forma diferente. No como entidades sin conexión con la programación, sino como ayudas para la producción de programas más rápidamente y con mejores resultados. No me canso de recomendar el libro de Craig Larman a todo el que quiere escucharme.
- Describir la utilidad y el potencial de las herramientas de trabajo colaborativo. La actividad de la ingeniería del software no es la de un profesional aislado, sino la de un equipo, y por tanto, debe ser necesario coordinarse y cooperar. Me parece imprescindible tratar las herramientas de gestión de bugs (algo fundamental para asegurar la calidad de los productos y poder darles mantenimiento) y sobre todo las herramientas de control de versiones (CVS). Como ya han dicho otros, programar sin CVS es como saltar de un avión sin paracaidas.
- Evitar el solapamiento y la repetición de muchas materias. Hablo, por supuesto, de los planes de estudio que me han tocado a mi (en el caso de la ingeniería técnica, ya se trata del plan viejo porque ha sido superado por uno más reciente). Algunas asignaturas de tercero y de cuarto coinciden en sus programas e incluso en sus denominaciones (Ingeniería del Software, Redes, etc.). Sin duda, los culpables son la descoordinación entre los planes y la necesidad de equilibrar a los estudiantes procedentes de cada una de las dos especialidades de la carrera técnica. Dentro de un mismo plan de estudios, se incide varias veces sobre determinados aspectos (como la programación con sockets).
- Mantengo la opinión que me formé cuando empecé la carrera: utilizar Pascal como primer lenguaje de programación en la enseñanza es, cuando menos, poco conveniente. No voy a extenderme mucho más en la cuestión, por cuanto el plan de estudios ya ha modificado este aspecto, y además, se pueden encontrar muchos artículos de personas que han analizado esta cuestión con más calma que yo (enlazo este por ser el primero que he encontrado esta noche, pero he leido varios más).
- El ya casi extinto plan de estudios de Informática Técnica por el que yo estudié (me parece que era del año 1992) dio mucho que hablar por el peso que daba a las asignaturas del área de matemáticas, a todas luces desproporcionado. Tampoco quiero entrar a fondo en esta cuestión, puesto que no conozco los detalles del nuevo plan, en el que esta situación ha sido corregida, al menos parcialmente.
- No hay apenas formación sobre seguridad informática. Este es un tema de especial atención en los tiempos recientes, pero apenas se trata en la carrera. Unos ingenieros mejor preparados en cuestiones de seguridad de sistemas y programación de aplicaciones seguras permitirían evitar una parte de los sustos relacionados con la seguridad informática y las pérdidas que ocasionan.
Como reflexión final, sería deseable tener mecanismos que permitan mantener los planes de estudio actualizados. En los últimos años han surgido movimientos tan importantes como Java, .NET o la programación extrema, que no pueden ser incorporadas con agilidad a los planes de estudio, lo que es especialmente irónico en el caso del XP. Por otra parte, el mercado del software está volcado hoy en día hacia la programación web, algo apenas contemplado en los planes de estudio, así como los servidores de aplicaciones.
Estoy seguro de que en las próximas horas se me ocurrirán gran cantidad de temas que debería haber tratado en este mensaje. Si surge alguno que considere especialmente interesante, lo añadiré como un comentario. También invito a los lectores de este largo mensaje a que aporten sus opiniones en forma de comentarios. Quizás algún otro día decida retomar el hilo de este mensaje para valorar los aciertos de los planes de estudios.
Curiosamente, en todo este artículo no he mencionado el software libre. Creo que esa cuestión es ortogonal a la que he tratado hoy.