Fábrica de software libre: sirviendo al bienestar colectivo

Jose Aguilar1,2,Oswaldo Terán1,2,3,Johanna Alvarez1,Blanca Abraham1

FUNDACTE-Mérida1, Vía La Hechicera, Mérida, Venezuela

Centro de Microprocesadores y Sistema Distribuidos (CEMISID) 2, Universidad de Los Andes, Mérida-Venezuela.

Centro de Simulación y Modelos (CESIMO)3, Universidad de Los Andes,
Mérida – Venezuela.

Tel:+58-0274-2447111. Fax:+58-0274-2440370

{oteran,aguilar}@ula.ve,

{jalvarez, blanca}@fundacite-merida.gob.ve

Resumen. En este trabajo se presentan los elementos tanto operativos como filosóficos de una Fábrica de Software Libre con localización concreta, implantada en una institución pública venezolana, el Centro Nacional de Tecnología Libres, el cual está al servicio (prioritariamente) del sector público venezolano. Se presenta una metodología elaborada en y para ésta fábrica, donde se han combinado aspectos de modelos y métodos de desarrollo de software, así como elementos de la producción industrial, con los estilos de desarrollo de software libre catedral y bazar, siempre bajo la premisa de atender estratégicamente, y con visión a largo plazo, la problemática del sector público venezolano. A la vez, se complementan elementos tradicionales de la Ingeniería del Software con herramientas como la Planificación Estratégica y la Prospectiva Tecnológica, a fin de enfocarse de manera global en el problema social que se está tratando (e.g., búsqueda de la soberanía tecnológica) y la problemática particular del sector social receptor.

Introducción

Bajo la nueva estrategia territorial, en Venezuela se propone la creación de un modelo productivo que articule la acción de comunidades organizadasen unidades productivas para conformar Núcleos de Desarrollo Endógeno (NUDE) [11], adecuadamente ubicados en el territorio.

Por otro lado, según el PNUD (Programa de la Naciones Unidas para el Desarrollo), las Tecnologías de Información y Comunicación (TICs) se manifiestan en dos estratos: uno de naturaleza estructural (“Infoestructura“) y otro de naturaleza cultural (“Infocultura“)
[15]. En el primer estrato se incluye el conjunto de dispositivos de computación, almacenamiento, telecomunicación e interfaz (hardware), junto con todo el universo de programas básicos y de aplicación (software), y los registros de contenidos, en las distintas áreas de aplicación. Por otra parte, se le ha dado el nombre de Infocultura a aquella parte de la cultura orientada a comprender y usar de la mejor manera la Infoestructura para resolver los distintos problemas que se presentan en el de venir de la sociedad.

Es importante resaltar que en la ciudad de Mérida confluyen en la actualidad una serie de aspectos académicos, tecnológicos, económicos, sociales y políticos que la califican como un potencial núcleo de desarrollo endógeno basado en TICs [2].

Para impulsar el NUDE en TICs se requiere de instituciones públicas dedicadas al tema de Investigación y Desarrollo en TICs, las cuales asuman el reto de generar las políticas públicas y de articular los grandes proyectos del país en el sector. Así nace el Centro Nacional de Desarrollo e Investigación en Tecnologías Libres (CENDITEL), como un centro orientado a promover la reflexión, investigación, desarrollo y apropiación de Tecnologías Libres pertinentes (infoestructura del NUDE). Algunos de los proyectos actuales de dicho centro son: La Fábrica Nacionalde Software Libre (FSL) y La Academia Nacional de Software Libre (ASL). Tanto la FSL como la ASL son localidades concretas, la primera de enseñanza de, y la segunda de elaboración de, software libre. En este trabajo hablaremos sobre la FSL.

Fábrica de Software Libre

Se define como “software libre” (SL) al software disponible al usuario de manera que éste pueda usarlo, acceder al código, modificarlo, y distribuirlo. Otro aspecto importante, en el desarrollo de SL es que este puede elaborarse de manera colectiva, por comunidades de desarrolladores que aportan soluciones desde lugares distantes, aprovechando los beneficios de la Internet, Intranet o cualquier tipo de comunicación en red que sirva a la comunidad de desarrolladores. Existen dos modalidades o modelos de desarrollo de SL, a saber (para más detalles, véase Raymond [16]):

 

  • Estilo Bazar: En este caso, el desarrollo de software no es dirigido de manera centralizada, la construcción de la aplicación se realiza con la participación de una comunidad de interesados que libera frecuentemente cada versión desarrollada, con la finalidad de que otros puedan depurar el código.

  • Estilo Catedral: En el estilo catedral el desarrollo de software está dirigido de manera centralizada y el proceso de desarrollo esta restringido a un grupo de programadores, quienes trabajan fuertemente en la depuración del código con la finalidad de que los usuarios puedan ver menos errores en cada versión liberada.


 

 

A pesar de que muchos colaboradores de una FSL puedan estar ubicados en diferentes localidades, como lo sugiere el estilo Bazar, la fábrica, como entidad identificable, debe tener una ubicación específica a fin de facilitar el aprovechamiento de las ventajas de la producción industrial. Por otra parte, generalmente una FSL responde a necesidades o demandas con tiempos específicos, lo que implica que debe haber una planificación explícita y un control del avance de los proyectos específicos, de manera localizada y centralizada, aún cuando se haga uso de componentes re-usables desde la comunidad de SL.

Utilizando estas nociones, tenemos la siguiente definición de FSL:

localidad concreta donde se elabora SL de manera eficiente y eficaz para satisfacer cierta demanda o necesidad especifica; aprovechando los beneficios de los criterios y conceptos útiles en la producción industrial (e.g., de la automatización y del re-uso de componentes); promoviendo el desarrollo colaborativo y solidario, ofrecido por comunidades de individuos o grupos localizados
en lugares diversos.”

Una FSL promueve el desarrollo de software y la apropiación de la tecnología localmente, tanto a nivel de la fábrica misma como a nivel de comunidades de desarrolladores, mientras facilita el acceso al producto por parte de las comunidades y PYMES. Así, una FSL apunta hacia la independencia tecnológica, el crecimiento socio-productivo local, además de ofrecer características de seguridad importantes.

Además, una FSL debe saber descubrir las necesidades del cliente, muchas de las cuáles irán más allá de la simple implementación de una aplicación de software. Para ello, no son suficientes las nociones tradicionales de gestión de desarrollo de software. Por tanto, se hace necesaria la inclusión de herramientas útiles para descubrir las necesidades y debilidades del sector social receptor del servicio, tales como la planificación estratégica y la prospectiva tecnológica [3, 9,17]. Esto puede llevar a la creación, incluso, de otras organizaciones que apoyen y complemente a la FSL en su rol social. En este contexto aparece, por ejemplo, una ASL, que promueve la enseñanza en torno al uso del SL, a fin de disminuir la falta de comprensión y conocimiento en torno al SL (una debilidad actual del sector social receptor).

Aspectos considerados para la creación de la FSL de CENDITEL

La FSL de CENDITEL ha estado desarrollando SL para instituciones públicas venezolanas desde el 2003. Actualmente en la FSL de CENDITEL trabajan más de veinte ingenieros y técnicos especialistas en análisis y desarrollo de software. Así mismo, la FSL se fortalece con el trabajo colaborativo de toda la comunidad de desarrolladores que desee contribuir en el progreso de alguno de los
proyectos en particular o iniciar uno nuevo, pues la plataforma colaborativa [10] permite quese descarguen y se incorporen actualizaciones de sistemas existentes.

La FSL de CENDITEL ha sufrido un proceso de mejoras a medida que se desarrollar y aplica una metodología [1, 6], basada en modelos organizacionales de referencia y métodos de desarrollo. Entre a los métodos que han sido tomadas en cuenta para el desarrollo de una metodología para la FSL de CENDITEL (a ser presentaba brevemente en la sección 3) tenemos: Watch [12], la
Programación Extrema (XP) [4], y RationalUnified Process [8]. De la misma manera, en relación a modelos de desarrollo de referencia, de donde se han tomado también ideas para la metodología de la FSL, entre otros, se tienen: el Modelo de Procesos para Desarrollo y Mantenimiento de Software (MoProSoft) [7, 13, 14], y CompetiSoft: Mejora de Procesos para Fomentar la Competitividad de la Pequeña y Mediana Industria del Software de Iberoamérica [5].

La metodología se apoya en el desarrollo colaborativo, y apuntala los siguientes aspectos:

 

  • Procesos de desarrollo bien definidos (según un marco metodológico)

  • Elevada calidad del producto y capacidad de los procesos.

  • Mecanismos, herramientas y formatos estandarizadas para facilitar el desarrollo colaborativo. Esto se traduce en facilidades para la liberación del código fuente, junto a la documentación asociada al mismo; la re-utilización de componentes provenientes de la comunidad de SL; así como el uso de herramientas y formatos de documentación que faciliten las diferentes fases del desarrollo.

  • Tomar en consideración las ventajas de los estilos de desarrollo catedral y bazar.


 

 

Modelo de Procesos de la FSL de CENDITEL

El modelo de procesos que sirve de base a la FSL de CENDITEL se basa en un esquema de desarrollo iterativo e incremental, orientado a la construcción de aplicaciones de software utilizando herramientas libres. La metodología de desarrollo se basa en una estructura organizacional orientada a procesos específicos. Estos procesos son: Gestión de Proyectos de Software, Administración de Proyectos de Software y Desarrollo de Aplicaciones de Software. La relación entre estos procesos se muestra en la Figura 1.

Relación entre los procesos de Gestión, Administración y Desarrollo de Aplicaciones de Software

Fig 1. Relación entre los procesos de Gestión, Administración y Desarrollo de Aplicaciones de Software


Tal como se muestra en la figura, los tres procesos se retro alimentan entre sí a través de los principales productos que se generan en cada proceso. Por ejemplo, el plan del proyecto generado en Gestión es suministrado a Administración, la cual, a su vez, genera la planificación de la iteración suministrada al Proceso de Desarrollo. Este último proceso envía, por ejemplo, reportes de pruebas y versiones a los demás procesos. En particular, la actualización del plan del proyecto o de otros planes, en los dos primeros procesos, pueden aparecer como resultado de cambios en los requerimientos, los cuales se pueden generar durante el Proceso de Desarrollo.

Los procesos mostrados en la Figura 1 se describen brevemente a continuación.

Proceso de Gestión de Proyectos de Software

En este proceso se realizan una serie de actividades en las cuales se genera un conjunto de documentos relacionados con: a) conceptualización del proyecto, b) estudio de factibilidad de un desarrollo por parte del personal de la organización o por contratación, c)priorización de funcionalidades y riesgos, d) descripción del proyecto, e) plan del proyecto, f) oferta de servicio y g)establecimiento de los acuerdos de liberación y uso del código fuente. De este último documento depende que el código fuente y la documentación asociada al mismo puedan ser publicadas.

Es importante mencionar que en el caso del plan del proyecto son considerados tres aspectos fundamentales para la planificación del desarrollo. Estos aspectos tienen que ver con la priorización de funcionalidades, la priorización de riesgos de desarrollo y las dependencias entre funcionalidades. Estos aspectos son utilizados para determinar el orden de desarrollo de las funcionalidades en cadaiteración.

Proceso de Administración de Proyectos de Software

Cada proyecto de software que se lleva acabo en la organización tiene un administrador o líder del proyecto. Este administrador se encarga de planificar y coordinar, a través de la plataforma de desarrollo colaborativo, las actividades respectivas a cada iteración (i.e., secuencia precisa de actividades basadas en un plan y unos criterios de evaluación establecidos que resultan en una liberación ejecutable de la aplicación).
Adicionalmente, el mismo es responsable de publicar las versiones de la aplicación (siempre y cuando los acuerdos de liberación y uso del código fuente lo permitan) y de administrar las listas de correo, los foros y las demás actividades asociadas al proyecto que puedan ser manejadas desde la plataforma. La plataforma de desarrollo colaborativo cuenta a su vez con un administrador. Este administrador realiza actividades como: implementar nuevas funcionalidades al servidor (plataforma), y administrar el sistema de control de versiones, la lista de correo, los foros y las tareas de los proyectos adscritos a la plataforma.

Proceso de Desarrollo de Aplicaciones de Software

Una vez elaborado el plan del proyecto y la planificación de la iteración correspondiente, se comienza a realizar un conjunto de actividades distribuidas por fases, las cuales conforman el Proceso de Desarrollo de Aplicaciones. En base a estas actividades se planifica cada una de las iteraciones contempladas en el plan del proyecto. Las fases del Proceso de Desarrollo de Software (Libre) [1] y la relación entre las mismas se presentan en la Figura 2. A diferencia de otras metodologías y métodos orientados al desarrollo de SL donde se han descuidado un poco los sub-procesos Especificación de Requerimientos e Implantación, en esta metodología se da a éstos la misma importancia que al resto de los sub-procesos.

Ello ocurre dado que la FSL tiene clientes específicos y debe cumplir con compromisos en ciertos lapsos de tiempo, además de que se requiere tener una relación estrecha con el interesado. Además, la metodología da importancia tanto al desarrollo Bazar como al Catedral.

Fases del Proceso de Desarrollo de Aplicaciones de Software (Libre).

Fig 2. Fases del Proceso de Desarrollo de Aplicaciones de Software (Libre).

Conclusiones

En este capítulo se ha presentado la FSL de CENDITEL, desde su contexto, pasando por una revisión de su sentido para la sociedad y la forma particular de servir a ésta, dado este sentido, hasta elementos particulares de su implementación. Se ha hecho énfasis en el fin social de una fábrica de SL, y en su compromiso estratégico, en este caso particular, con una visión de país donde se promueven el desarrollo endógeno y la soberanía tecnológica. Bajo esta situación, la idealización o diseño de la FSL debe nutrirse de múltiples fuentes, desde aquellas que tienen que ver con el desarrollo tradicional de software (Ingeniería del Software, métodos y modelos de desarrollo de software), con formas de producción industrial, o con los diversos estilos de desarrollo de SL; hasta herramientas conceptuales de análisis y gestión de la problemática social o organizacional, las cuales van más allá de lo tradicionalmente utilizado en los desarrollos de software (e.g., planificación estratégica y prospectiva tecnológica). Al final, el capítulo muestra aspectos concretos de la implementación de la FSL.

Con el propósito de cumplir de manera apropiada su rol social, la FSL requiere de otras instituciones que la complementen y faciliten la generación de impacto, dadas las debilidades sector social receptor. Entre estas instituciones está la Academia de Software Libre, cuyo rol es disminuir la falta de conocimiento del SL, tanto en relación a su uso como a la filosofía que le da sentido.

Finalmente, la FSL y la ASL aparecen en un momento histórico con un fin enmarcado dentro de un proceso de cambio social que persigue objetivos muy particulares (e.g., promoción del desarrollo endógeno), los cuales exigen una constante revisión de las estrategias y operaciones específicas ejecutadas, a medida que el proceso avanza. A ello no escapa la forma como se implementan la FSL y la ASL, su concepción, sus estrategias y sus acciones específicas.

Referencias

 

  • Alvarez Johanna et al., “Metodología para el Desarrollo de Software Libre: Buscando el Compromiso entre Funcionalidad y Riesgos”, Reporte Técnico 001-2006, Fábrica de Software Libre, Fundacite, Merida, 2006.

  • Aguilar J., I. Vivas, “El Desarrollo Endógeno y las Tecnologías de Información y Comunicación en Venezuela” en Ochoa, Alejandro (Ed.) (2006) Aprendiendo En torno al Desarrollo Endógeno. CDCHT- CSI- FUNDACITE.

 

 

 

 

 

 

 

    1. Aguilar, Jose, Oswaldo Terán y William Morantes, Prospectiva Tecnológica, Fundacite-Mérida (Ed.), Mérida, 2006.
    2. Beck, Ken, “Extreme Programming Explained: Embrace Change”, Second Edition, Addison Wesley Profession, 2004.
    3. CompetiSoft.

http://alarcos.inf-cr.uclm.es/Competisoft/CompetiSoft.

    1. Corredor Yimy, Evaluación de MoProSoft como alternativa metodológica de organización de empresas de desarrollo y mantenimiento de software, Tesis de Pregrado, Escuela de Ingeniería de Sistemas-Universidad de Los Andes, Mérida, Venezuela, 2006.
    2. EvalProSoft. http://www.software.net.mx/NR/rdonlyres/ED7B3399-0CA4-412E-9FAC-0EEB94F85C5F/1224/EvalProSoftv11.pdfEvalprosoft

 

    1. Kruchten Philippe, The Rational Unified Process – An Introduction, Second Edition, Addison-Wesley, 2000.
    2. Matus Carlos y Adalberto Zambrano, Gobierno y Planificación, Guía de Análisis Teórico, IESA Centro Zulia, 1997.
    3. GFORGE. http://gforge.org/
    4. Ministerio de Planificación y Desarrollo, Núcleos de Desarrollo Endógeno, Caracas, 2004.
    5. Montilva Jonás, “Desarrollo de Aplicaciones Empresariales: El Método WATCH”, Mérida, Venezuela, 2004.
    6. MoProSoft.http://www.software.net.mx/desarrolladores/prosoft/Estudios/precios_moprosoft_nmx.htm
    7. Oktaba Hanna et al., Modelo de Procesos para la Industria de Software (MoProSoft, Versión 1.3), 2005 (http://www.software.net.mx).
    8. Programa de las Naciones Unidas para el Desarrollo, Informe sobre Desarrollo Humano en Venezuela 2002, Caracas, 2002.
    9. Raymond Eric, The Cathedral and The Bazaar, O’Reily, October, 1999.
    10. Zambrano Barrios Adalberto. Gerencia Estratégica y Gobierno. Ediciones IESA. 2001.

 

Descarga

Puerde descarga el archivo en formato PDF presionando aquí

etiquetas technorati:, , , , , , , , ,

Blogueado con Flock

14 thoughts on “Fábrica de software libre: sirviendo al bienestar colectivo

  1. Bueno lastima que mezcles el agua con el aceite, pero bueno respeto tu opinión y posición, pero esta claro que allí se esta trabajando como nunca en la historia del país, si para ti soy chavista por apoyar esta idea bueno lo seré, pero eso no es lo mismo que hacen “la falsa oposición” al decir que por que uso software libre soy chavista y este movimiento esta antes que Hugo Chávez, antes que Bill Gates, y es un movimiento que viene desde Estados Unidos de América….

    No es la intensión de este blog o debatir sobre política, sino dar a conocer sobre tecnologías basadas en el conocimiento libre, como software, hardware, telecomunicaciones, cultura libres y más. Por esa razón censure tu propaganda política esta fuera de tópico en este blog.

    Muy agradecido por tu comentario del mismo se aprende.

  2. Esta frase “El software no se fabrica, se desarrolla” la he oído pero te cuento lo que se quiere es automatizar al máximo el proceso de “desarrollo” de software con metodologías ágiles que permitan que desde diseños se generen casi automáticamente código fuente de los prototipos o sistemas a desarrollar es decir, se quiere lograr poder colocar una “linea de producción de software”, que apegados a recursos de trabajo colaborativos como este [0] y metodologías descritas en este articulo, se logre esa esperada linea de producción.

    [0] http://sistemas.fsl.fundacite-merida.gob.ve/

    Gracias por tu comentario😉

  3. Nuestro pais necesita desarrollarse mucho mas en el area tecnologica. Yo espero de todo corazon que estos proyectos sigan adelante y reciban todos los recursos que necesitan. Lamentablemente en nuestro pais es costumbre que las buenas ideas se queden sin fondos!!!! Espero que estos proyectos fructifiquen. Chaoooo!!!

  4. Hola Eduardo, disculpa la tardanza pero es ahora es que tengo tiempo libre, entiendo tu punto pero gracias a Dios hay mucho apoyo del estado venezolano u de industrias del estado que están dando fondos para que esta idea se lleve a cabo, y ya esta en funcionamiento en el Nodo de CENDITEL de Merida.

    También me alegra que te sirviera el formato en PDF, estamos a la orden😉

  5. Mi admin universidad me pidió que hiciera el software de gestión de la universidad o puedo comprar uno y le dan al administrador de la universidad. Ahora, cuando he tratado de hacer de este software de la universidad, me han golpeado en el centro de conectividad de base de datos con los marcos y bucles interrelacionados entre sí que he creado por la creación de tablas de patrón diferente.

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