Developer Science

Escrito por , 17 de diciembre de 2012 a las 15:50
Developer Science
Tecnología

Developer Science

Escrito por , 17 de diciembre de 2012 a las 15:50

«The art of association then becomes, as I have said before, the mother of action, studied and applied by all».

Alexis Tocqueville, Democracy inAmerica.

Las comunidades de conocimiento no son un invento moderno. Ya en la antigüedad, colectivos de intelectuales organizaron comunidades que desarrollaban y compartían conocimientos. Randall Collins ha llegado a analizar en alguna de sus obras (por ejemplo The Sociology of Philosophies), con resultados extremadamente interesantes, el efecto que estas comunidades tuvieron en el desarrollo de la filosofía occidental. Son ampliamente conocidos los orígenes comunitarios de instituciones como la Royal Society y el efecto que jugaron las comunicaciones, en latín y mediante correo postal, en la definición y constitución de dicha institución.

Más recientemente y dentro de campo del software, se podrían destacar las comunidades de usuario/programadores surgidas en el entorno de los mainframes IBM OS/360 o los mini computadores PDP. Sin duda, el proceso empleado en la distribución de las primeras versiones de UNIX constituye un ejemplo paradigmático. Algunas experiencias interesantes de esta época pueden ser encontradas en el clásico: The MythicalMan-Month, de Frederick P. Brooks.

Lo cierto es que ha sido dentro de la producción de software donde hemos visto florecer las comunidades como en ninguna otra tecnología o dominio de la ciencia. Debido a los reducidos costes de capital que requiere el desarrollo de software, las barreras para los recién llegados son mínimas y la innovación se multiplica hasta niveles inimaginables: favorecida por licencias abiertas y la existencia de Internet como plataforma de comunicación, la tecnología fluye y se transfiere a todos los niveles.

El concepto de desarrollador, como programador de perfil técnico elevado, se supera alcanzando colectivos con escasa o incluso nula formación técnica, que contribuyen, no obstante, en los procesos de innovación abierta. El análisis de los efectos tecnológicos, económicos y sociales de la gestión del conocimiento o transferencia tecnológica en ambientes de innovación abierta, propios de las comunidades de desarrolladores, conducen a lo que podríamos denominar como Developer Science o DevSci.

Para entender la situación actual de las comunidades de desarrolladores, resulta útil analizar la evolución vivida por dichas comunidades durante las ultimas tres décadas. A continuación se presenta un análisis de esta evolución que, aun reconociendo que otras visiones son admisibles, la aquí propuesta resulta especialmente útil para el diseño de estrategias de transferencia tecnológica.

Comunidades: factores singulares

Para una adecuada comprensión del análisis propuesto, es necesario establecer primero una ventana temporal de observación, así como un conjunto de factores que caracterizaran la evolución descrita. Ésta se realizara en base a una serie de generaciones de desarrolladores, caracterizados adecuadamente por distintos valores de los factores elegidos como singulares. Es necesario aclarar que las fronteras entre dichos periodos no son abruptas; de hecho, cada generación no ha supuesto la desaparición de las anteriores, sino que todas ellas han sobrevivido, conviviendo simultáneamente en la actualidad.

De igual forma, aunque la evolución descrita se configura en hitos correspondientes al desarrollo de esquemas de licenciamiento open source, en realidad la organización en comunidades de desarrolladores sobrepasa el mundo del software libre. Existen importantes ejemplos de comunidades colaborativas en torno a software privativo, como la comunidad de partners de SAP, Microsoft o Blackberry.

Hechas todas estas aclaraciones, los factores singulares seleccionados son:

  • Foco: el foco constituye el factor que dirige el desarrollo de la comunidad en un cierto momento. Lo que llamaríamos el driving factor. Se trata de la principal motivación que tiene los desarrolladores para participar en la comunidad o,  visto de manera inversa, es el desafío que afronta la comunidad, entendiendo ésta como un emergence system (swarm intelligence).
  • Interoperabilidad: este factor define el nivel de fragmentación/interoperabilidad existente en la tecnología que se desarrolla en el ámbito de la comunidad. Este factor, más allá del impacto tecnológico, afecta de manera significativa al desarrollo de la comunidad: comunidades fragmentadas y con ámbito técnico de foco reducido dificultan el crecimiento y la cooperación.
  • Geografía: referencia al ámbito geográfico donde surgen y se desarrollan las comunidades. Aunque Internet elimina las barreras geográficas y temporales, lo cierto es que en términos generales, se puede identificar claramente el ámbito de los principales desarrolladores y lideres de las comunidades.
  • Segmento: se trata de un factor que determina el número, pero también el carácter o cualificación de los desarrolladores correspondientes a dicha generación. Es una aproximación a la segmentación de las comunidades de desarrolladores.
  • Licencias: finalmente se ha introducido un factor que caracteriza las generaciones en función de las licencias open source: la innovación en los esquemas de licencias son la respuesta a la evolución de las comunidades. Si bien se trata de un factor parcial, que no tiene necesariamente que caracterizar las comunidades en torno al software privativo, introduce un enfoque muy productivo para analizar la situación general.

Con estos factores en mente, la siguiente figura presenta las generaciones de comunidades identificadas, y que se explican a continuación:

 Dinámica de crecimiento de las comunidades de desarrolladores

 Figura 1 – Dynamic of Developer Communities

Primera generación: Free Software Foundation

Un tanto arbitrariamente, se sitúa el comienzo de la primera generación de comunidades de desarrolladores en 1985, año en el que Richard Stallman funda la Free Software Foundation. Richard Stallman revolucionó los procesos de desarrollo de tecnología software con el objetivo de “eliminar las restricciones sobre la copia, redistribución, entendimiento, y modificación de programas de computadoras”, particularmente “ayudando a desarrollar el sistema operativo GNU”. El sistema operativo GNU, al que posteriormente se añadió el kernel Linux, surgió como un plan para crear una plataforma alternativa abierta de los sistemas UNIX existentes.

En esta primera generación, las comunidades de desarrolladores como ecosistemas independientes se concentraban (comparativamente) en pequeños grupos, poco numeroso y de programadores con destacadas capacidades técnicas. La naturaleza de estos grupos condicionaba la producción de tecnología: poco “interoperable” y con elevada fragmentación. El ámbito geográfico estaba restringido, de manera prácticamente exclusiva, a EEUU.

En relación a comunidades ajenas al mundo del software libre ya en esta época, existían interesantes ejemplos de esquemas de licenciamiento y distribuciones «alternativos» que favorecían las comunidades. El fenómeno de la distribución a través de BBS y licenciamiento shareware surgieron en EEUU, alimentando las conexiones entre las comunidades de desarrollo y un incipiente mercado de consumidores finales de software.

Segunda generación: Open Source Initiative

De nuevo, puestos a hacer coincidir el nacimiento de una segunda generación de comunidades de desarrolladores con un hito dentro de la evolución del software libre, sin duda, el hito escogido sería la fundación de la Open Source Initiative, que tuvo lugar en 1998 gracias a los esfuerzos de Bruce Perens, Eric S. Raymond y otros muchos.

Durante los años 80 y 90, muchos de los desarrolladores que habían liderado las comunidades de la primera generación comenzaron a crear empresas y contribuyeron a una concepción más business friendly, o permisiva, del software libre. Por otra parte, ante los evidentes beneficios del software libre, numerosas empresas se acercaban y contribuían a las comunidades. La fuerte componente ideológica que impregnaba las primeras comunidades empezó a convertirse en un rígido corsé. En este contexto surgió la OSI,  con el propósito de dar cabida a un mayor número de interesados en el software libre.

En términos de licencias, podría decirse que estas comunidades encontraron mayor flexibilidad en licenciamientos como las licencias MIT (1988) o Apache (1995), que permiten un uso más flexible del software libre en la industria, facilitando la integración de software privativo y software libre. Desde un punto de vista tecnológico, las comunidades abordaban ya sin miramientos desarrollos de plataformas muy complejas. Con ejemplos como el kernel Linux (1991), Mozilla-Netscape(1998), Debian (1993), Cygwin(1995), o por citar algunas comunidades que no producían código, la IETF y el excelente trabajo realizado en la producción de estándares para Internet (RFCs).

El segmento de desarrolladores comenzó a incluir a un número mayor de individuos, un número creciente de comunidades y con perfil no tan técnico. Merece la pena destacar el papel que tuvieron las comunidades de software libre en la formación de millones de universitarios de todas las disciplinas. La formación técnica adquirió un sabor DIY que extendió aun más la producción de tecnologías y las contribuciones innovadoras. En términos de ámbito, Europa empezó a contribuir con desarrolladores y lideres en muchas de las comunidades existentes, fomentando la aparición de nuevas comunidades.

Tercera generación: Creative Commons

La tercera generación de comunidades de desarrolladores supuso una revolución innovadora y sin duda disruptiva. Asociándola nuevamente con un hito dentro de la evolución de los paradigmas open source, sin duda este debería ser a la creación, en 2001, de la fundación Creative Commons. La primera versión de la licencia que lleva dicho nombre, aparecería en Diciembre de 2002.

Originado por una revisión crítica de las leyes de propiedad intelectual, el movimiento de Creative Commons extiende las licencias que favorecen el hecho de compartir más allá del ámbito del software, para alcanzar a contenidos de todo tipo. Muchos argumentos y  la motivación que están en el origen de la fundación y sus licencias pueden encontrarse en el libro de Lawrence Lessig, Free Culture.

Lo que parecía un mero ejercicio dentro de un marco teórico, dio lugar, con la aparición de plataformas donde compartir información multimedia, a un movimiento cuyas consecuencias seguimos experimentando hoy en día: la generalización de los esquemas de desarrollo tecnológico colaborativos se ampliaron para incluir a creadores de contenido y mas recientemente, non programmers. Hoy en día, el número de desarrolladores se cuenta por millones y alcanza prácticamente todos los rincones del mundo, con especial desarrollo en los países emergentes.

Por último, la complejidad de los sistemas y el imperativo de la interoperabilidad han impuesto a todos los niveles los estándares abiertos, incluso en compañías con larga tradición al margen de los desarrollos de tecnología libre.

Conclusiones y evolución futura

Las comunidades siguen evolucionando y la eclosión de proyectos como Webmaker, Scratch, App Inventor o MeuApp abre la puerta a comunidades de desarrolladores formadas por usuarios finales o non programmers. Juguetes como MindStorm cuentan con enormes comunidades para el desarrollo de elementos robóticos i.e. software & hardware.

Así mismo, los procesos de inclusión digital, donde la sociedad ve como actividades de educación, gobierno, salud o cooperación se ven redefinidas. Están siendo refundadas sobre la base de innovación tecnológica, que sin duda constituirán el driver para la adopción de muchas tecnologías y el desarrollo de nuevas esquemas de colaboración.

En cuanto a las licencias, es posible, que tras la evolución de las plataformas cloud, sean los SLAs y no tanto las licencias convencionales las que determinen la evolución de las comunidades.

Por ultimo, en cuanto al ámbito geográfico.  Bueno, es posible que ya sepáis que la NASA anda trabajando en un Internet interplanetaria.

 

 

anterior artículo

La democratización de la criptografía

La democratización de la criptografía
siguiente artículo

Parabólicas en las favelas: se impone un modelo de innovación distribuido

Parabólicas en las favelas: se impone un modelo de innovación distribuido

Recomendados