jueves, 1 de febrero de 2007

Modelos de desarrollo de software

Muy acertado en mi opinion este articulo de Enrique Dans sobre la obligación o necesidad de cambiar a Windows 'Wow' Vista, y en especial esta descripción, clara como pocas que he leido, sobre los dos modos de desarrollo de software: el tradicional y el libre.

[sobre microsoft] [...] Analice el producto anterior de la empresa, Windows XP: haga memoria, recuerde cuando lo instaló. ¿Ha cambiado mucho desde entonces? Dejando aparte un par de parches, nada. El páramo más absoluto en términos de innovación, en medio de una de las épocas de mayor y más agresivo avance en la historia reciente de la tecnología. Se ha pasado usted esos seis años de dinámica innovación caminando por un escalón completamente plano. Eso sí, ahora, ni se le ocurra dudar de la necesidad o idoneidad de cambiar a Vista; sería usted un retrógrado y un antisocial.


¿Cómo funciona ese esquema en otras opciones, particularmente en aquellas de código abierto? En el momento en que un programa se lanza, empiezan a constituirse con él dos comunidades: la de usuarios y la de desarrolladores, a veces íntimamente ligadas. La primera versión del programa tal vez sea menos potente que la de un programa propietario comparable pero, ¿qué ocurre a partir de ahí? Dos parámetros empiezan a imponer su ley: por un lado, el tamaño de la comunidad de usuarios. A mayor tamaño, mayor interés en programar para ellos, en satisfacer ese mercado que, además, demanda nuevas posibilidades y expansiones de funcionalidad cada vez que se las encuentra, cual si fuera un enorme y descentralizado departamento de I+D. Por otro, el tamaño de la comunidad de desarrolladores, ligada con la anterior, y que produce un ecosistema de desarrollo más dinámico, más eficiente, con más ojos supervisando y más personas proponiendo mejoras y novedades.

Cada vez que alguien resuelve un problema o crea algo nuevo, su desarrollo es puesto en repositorios para que, a partir de ahí, cualquiera que plantee algo similar, pueda ver esa solución y mejorarla si lo estima oportuno. Las prestaciones de la aplicación, en lugar de condicionarse al calendario de desarrollo y comercialización de nuevas versiones de una empresa específica, se mueve con la velocidad real del desarrollo tecnológico, siguiendo una curva exponencial continua definida por los parámetros antes citados: a mayor tamaño de las comunidades de usuarios y desarrolladores, mayor pendiente, mayor progreso. Que esa curva exponencial supere el avance escalonado del programa en versión propietaria es únicamente cuestión de tiempo, de ciclo. Un ciclo que, en el caso de los sistemas operativos, ya se ha superado claramente.




Léelo completo aqui