h1

¿Software libre vs Ingeniería del software?

07/09/2009

Hace algo más de un mes, Ricardo Galli, entre otras cosas socio-fundador de Meneame, criticaba la “ingeniería del software tradicional” porque limita la innovación y porque, entre otras cosas, no la considera realmente una ingeniería.

Añade críticas al software privativo, las regulaciones y colegios profesionales, y al “establishment” de la ingeniería del software entre otros, poniendo como ejemplo casos de éxito muy complejos en los que no se han utilizado métricas tradicionales sino un trabajo colaborativo, distribuído, con una coordinación débil y que, como digo, han resultado un éxito rotundo. Como ejemplos de estos éxitos cita el núcleo de Linux, KDE o Gnome.

Sería realmente una necedad no estar de acuerdo con él en casi todo. Quienes se agarran a la propiedad, a modelos arcaicos de gestión diseñados para un mundo distinto al que pisamos ahora mismo están irremediablemente destinados al ostracismo. Es innegable la ventaja que supone la revisión pública del código de un proyecto de software libre y la inmensa comunidad que puede colaborar en un proyecto. “Dado un número suficientemente elevado de ojos, todos los errores se convierten en obvios“, dijo Linus Torvalds y no parece que estuviera equivocado. No se puede discutir el éxito que han tenido proyectos con un bajo control, como reconocía Tom DeMarco y cita el propio Galli.

Sin embargo, no sería tan tajante en otras cosas. Quizás la respuesta correcta o el mejor camino sea, como tantas veces, un gris que evite la natural dicotomía latina (o conmigo o contra mí, Barça o Madrid, Linux o Windows) en las que hay que posicionarse en un bando que te vende todo el pack.

Las ingenierías tradicionales llevan cientos de años aprendiendo, mejorando y aportando nuevos materiales y técnicas, pero tras tantos años y con la enorme limitación de un mundo físico, los avances son más lentos, de tal manera que en las facultades puede enseñarse la ingeniería durante mucho tiempo del mismo modo. La ingeniería del software es algo relativamente reciente. Galli habla de unos 40 años y seguro que no es mucho más. ¿Alguien puede imaginar empezar prácticamente de cero con la ingeniería civil o con la arquitectura con todo el conocimiento que tenemos en otras áreas y con un número prácticamente ilimitado de “materiales” que se pueden inventar? ¿No cambiarían cada día? ¿No habría cada mes una importante conferencia donde se presentase una innovación asombrosa? Sería un carrusel constante de novedades que, sin embarg,o iría dejando ciertas cosas, ciertos patrones, ciertos elementos comunes, tal y como ocurre con las TIC. ¿Y no sería una ingeniería?

Esos elementos comunes son los que hay que estudiar, y las buenas innovaciones son las materias que hay que incorporar a los programas educativos. Lo que desde luego no se puede hacer es tardar el mismo tiempo en actualizar los planes de estudio de Caminos e Informática, porque lo que haya podido pasar en el mundo de la ingeniería de caminos, canales y puertos en cinco años (y hablo con un importante desconocimiento, con todos los respetos, pero con sentido común) creo que es infinitamente menos relevante que lo que ha pasado que afecte a la IS, que ha podido cambiar significativamente. Nuevos métodos, nuevos patrones, nuevas formas de concebir un producto software hacen a la ingeniería del software más dinámica, no menos ingeniería.

Una innovación lleva a otra y lo que se ha aprendido en un sitio sirve para hacer otra cosa distinta en otro momento. Pero tiene una base común. ¿No se parecen muchos proyectos de software libre? ¿No se trabaja parecido para unos y otros? ¿Twitter no se parece al estado de Facebook? ¿Facebook no integra la idea del IRC con una recopilación de vídeos como en youtube, fotos como en flickr y amigos como en orkut? ¿Existiría facebook si no hubiese existido geocities? ¿El que está ahora mismo cocinando la nueva aplicación revolucionaria no ha tenido en cuenta los casos de éxitos pasados? ¿No va a pedir colaboración a la comunidad? ¿No ha hecho un diseño de lo que pretende hacer?

Quiero decir con esto que me convence el software libre, me convence el trabajo colaborativo, me convence incluso la coordinación débil para proyectos experimentales tipo Google labs de los que no se sabe muy bien qué puede salir pero se apuesta por la innovación, o para proyectos con una masa gigantesca de colaboradores como los ejemplos que se citan. Me recuerda un poco a la mutación genética. Varios elementos de la comunidad actúan realizando mutaciones diversas, y la comunidad de usuarios finales como el ecosistema que decide si esa especie mutada va a vivir o a morir. Y cuando algo se parece al modo en que la naturaleza lo resuelve, suele ser un buen modo para hacer las cosas.

Sin embargo no renuncio a las técnicas de ingeniería del software aprendidas, mejoradas y válidas durante todo este tiempo (actualizadas convenientemente) para otros muchos tipos de proyectos ni a la regulación de la profesión. Tener un colegio oficial de ingenieros no significa que no se pueda innovar. Significa que los profesionales están unidos para defender sus intereses, para contar con representantes ante los diversos organismos y para que haya alguien que vele no por que se sigan métodos estrictos de diseño y producción industriales en el software, sino por que exista una buena praxis por parte de sus colegiados, identificados, titulados y que se responsabilizan de lo que han diseñado. Al final no es más que otro tipo de comunidad de profesionales.

Anuncios

3 comentarios

  1. […] ¿Software libre vs Ingeniería del software?eadmon.wordpress.com/2009/09/07/%C2%BFsoftware-libre-vs-inge… por Pache hace pocos segundos […]


  2. Le invito a debatir.



Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: