viernes, 16 de enero de 2009

2008: El año de los métodos no convencionales de desarrollo de software

Luego de un largo y profundo silencio en las publicaciones, me veo nuevamente inspirado para escribir. Ese silencio tenía mucho que ver con una pausa necesaria para pensar, especialmente por las vertientes académicas y profesionales que generalmente me inspiran a hacerlo. El 2008 fue un año muy movido tanto en lo académico, profesional y en lo personal - ahora soy un hombre casado :D.

La actividad intelectual a lo largo del año 2008 estuvo muy centrada en lo que yo llamaría métodos no convencionales de desarrollo de software, distinto a lo que habitualmente se consigue en el mercado que suele oscilar entre programación heróica (code-and-fix) y métodos prescriptivos de desarrollo, también conocidos como heavy-weight (como RUP o aquellos hechos en casa con certificaciones CMM-CMMI).

De hecho, algo de esto se puede extrapolar de mi publicación anterior, donde mencionaba mi participación en el CIBESS 2008 donde hice una presentación que analizaba el método de desarrollo del software libre, el Bazar, como lo denominó Eric S. Raymond en su archiconocido ensayo, La Catedral y El Bazar.

Además del caso del Software Libre, hay dos fuentes más de ideas que sobre las que he estado estudiando. Una, ha sido el Desarrollo Ágil de Software. He sido fuertemente seducido por las ideas que tras esta filosofía se esconden, la mayor parte de ellas nada contrarias a lo que proponen muchos de los métodos prescriptivos de software. Sin embargo, consigo mayor seducción en las ideas que muchos consideran subversivas y que son parte esencial de esta manera de hacer software. Un buen sitio para comenzar con estas ideas es sin lugar a dudas el Manifiesto Ágil que pueden encontrar aquí.

La otra vertiente de la que he estado extrayendo ideas es el mundo de la Web 2.0. Entender que esto es una actitud, una filosofía, antes que una tecnología o un grupo de ellas, es una herramienta poderosa; la masificación y la descentralización en la producción de contenidos ha llevado a la web a un nuevo estadio. ¿Qué mejor ejemplo que la popularización en la publicación de contenidos que un blog como en el que hoy escribo?. Gracias al poder detrás de esta actitud, han surgido ideas acerca de como aprovechar dicho poder en las organizaciones y para muestra aquí tenemos un ejemplo. Ello me llevó también durante el año pasado a hacer una aproximación de como podemos sacar provecho de esta actitud en el desarrollo de software, propuesta que llevé a las pasadas XXI Jornadas Infociencias de la UCLA en Barquisimeto, Venezuela, con el nombre de Desarrollo de Software en la Web 2.0.

Desarrollar software hoy por hoy sigue siendo considerada una tarea altamente compleja, que sigue siendo estudiada en el mundo académico y la Crisis del Software sigue siendo tan vigente como hace 40 años, aunque en menor medida. Cada método de desarrollo de software viene (o debería venir) con su lista de excepciones a las condiciones bajo las cuales no puede ser aplicado, porque es ampliamente aceptado que no hay una bala de plata para resolver todas los distintos sabores del desarrollo de software. Ante este escenario, la búsqueda de métodos alternativos como estos que les he resumido es perfectamente válida para responder a la pregunta de: ¿Que hacer si mi proyecto cae justamente en los casos no cubiertos por los métodos conocidos de desarrollo de software?

En futuras publicaciones, ahondaré en cada uno de estos métodos no convencionales de desarrollo de software.