• No results found

Fabrica de Software Libre pdf

N/A
N/A
Protected

Academic year: 2020

Share "Fabrica de Software Libre pdf"

Copied!
9
0
0

Loading.... (view fulltext now)

Full text

(1)

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 Sistemas 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}@funmrd.gov.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. 

1 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 organizadas en unidades  productivas   para   conformar   Núcleos   de   Desarrollo   Endógeno   (NUDE)   [11],  adecuadamente ubicados en el territorio.

(2)

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 devenir 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 Nacional  de 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.

2 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]): 1. 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. 

(3)

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).

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

(4)

particular o iniciar uno nuevo, pues la plataforma colaborativa [10] permite que se  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 Rational Unified 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:

1. Procesos de desarrollo bien definidos (según un marco metodológico) 2. Elevada calidad del producto y capacidad de los procesos.

3. 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. 

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

3 Modelo de Procesos de la FSL de CENDITEL

(5)
[image:5.595.121.473.143.386.2]

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 retroalimentan 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.

3.1 Proceso de Gestión de Proyectos de Software

(6)

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 cada iteración.

3.2 Proceso de Administración de Proyectos de Software 

Cada   proyecto   de   software   que   se   lleva   a   cabo   en   la   organización   tiene   un  administrador o lider 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. 

3.3 Proceso de Desarrollo de Aplicaciones de Software

(7)
[image:7.595.126.475.194.421.2]

interesado. Además, la metodología da importancia tanto al desarrollo Bazar como al  Catedral.    

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

5 Conclusiones

(8)

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

1. 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.

2. 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.

3. Aguilar, Jose, Oswaldo Terán y William Morantes, Prospectiva Tecnológica, Fundacite­ Mérida (Ed.), Mérida, 2006.

4. Beck,   Ken,   “Extreme   Programming   Explained:   Embrace   Change”,   Second   Edition,  Addison Wesley Profession, 2004. 

5. CompetiSoft. http://alarcos.inf­cr.uclm.es/Competisoft/CompetiSoft. 

6. 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. 7. EvalProSoft.  http://www.software.net.mx/NR/rdonlyres/ED7B3399­0CA4­412E­9FAC­

0EEB94F85C5F/1224/EvalProSoftv11.pdfEvalprosoft 

8. Kruchten Philippe, The Rational Unified Process – An Introduction, Second Edition,  Addison­Wesley, 2000.

9. Matus   Carlos   y   Adalberto   Zambrano,   Gobierno   y   Planificación,   Guía   de   Análisis  Teórico, IESA Centro Zulia, 1997. 

10. GFORGE. http://gforge.org/

(9)

12. Montilva   Jonás,   “Desarrollo   de   Aplicaciones   Empresariales:   El   Método   WATCH”,  Mérida, Venezuela, 2004. 

13. MoProSoft.http://www.software.net.mx/desarrolladores/prosoft/Estudios/precios_mopros oft_nmx.htm 

14. Oktaba Hanna et al., Modelo de Procesos para la Industria de Software (MoProSoft,  Versión 1.3), 2005 (http://www.software.net.mx).

15. Programa de las Naciones Unidas para el Desarrollo, Informe sobre Desarrollo Humano  en Venezuela 2002, Caracas, 2002.  

16. Raymond Eric, The Cathedral and The Bazaar, O’Reily, October, 1999.

Figure

Fig 1. Relación entre los procesos de Gestión, Administración y Desarrollo de Aplicaciones de Software
Fig 2. Fases del Proceso de Desarrollo de Aplicaciones de Software (Libre).

References

Related documents