1. SOFTWARE LIBRE: UNA NUEVA FORMA DE
CREAR SOFTWARE
¿ES ACASO UNA NUEVA METODOLOGIA AGIL?
La existencia de proyectos exitosos en Redistribuir las modificaciones
los diferentes campos durante los
últimos años ha demostrado que el El movimiento fue analizado desde
paradigma de desarrollo del software muchos puntos de vista, incluso desde
libre,es un complemento valioso a los una perspectiva filosófica, estudiando
múltiples métodos de desarrollo de cuales son las motivaciones y los hilos
SW. conductores por los cuales los
desarrolladores se ven animados a
Durante el mismo periodo también los participar en este tipo de movimientos.
movimientos ágiles han ganado
territorio a través de diferentes y Los proyectos de SL más conocidos se
numerosas manifestaciones. En este centran en el desarrollo de
trabajo vamos a discutir cuales son los herramientas y otras plataformas que
puntos en común,cuales las diferencias son utilizadas por profesionales que
entre estas dos tendencias que atañen frecuentementeparticipan en el
a la ingeniería del software (SW) y si es proceso de desarrollo de las mismas,
que podríamos considerar al SL como teniendo el rol de cliente y de
una nueva metodología agil. desarrollador al mismo tiempo.
El paradigma del software libre El SL no debe ser visto como una
recopilación de buenas prácticas de
Todo empieza desde que Richard desarrollo de SW, sino que debe ser
Stallman comenzó su trabajo sobre el concebido en términos de diferentes
proyecto GNU/UNIX por los años ‘80s. formas de licenciar la distribución del
El establecimiento de la Free Software SW y como una manera colaborativa en
Foundation en 1985 fue el punto de la que desarrolladores dispersos por
inicio del movimiento del SL. todo el planeta producen SW de calidad
con incrementos pequeños y
Tan igual como en la metodología ágil frecuentes.
se practican valores, bajo la perspectiva
del SL se practican libertades, estas Las metodologías agiles
son:
Las metodologías ágiles aparecen como
Usar el SW como mejor le parezca, contrapartida a los “pesados” procesos
donde mejor le parezca. de desarrollo de aplicaciones de gran
escala.
Redistribuirlo a quien quieran, por los
medios que quieran. Las principales motivaciones son dos:
El alto número de proyectos que se
retrasan o fracasan: es casi una
Modificarlo(y mejorarlo o adaptarlo a aceptación generalizada en el
tus necesidades). desarrollo de software, que el
producto no se entregará a tiempo o
2. que se entregará, pero no en las próximos meses y muy generales para
condiciones pautadas. plazos mayores.
La baja calidad del software en El software es un proceso “rápido”
general: debido principalmente a La palabra clave en el SL es “rapidez”.
falta de coordinación y Todo lo referente al SL se realiza en
comunicación en equipos y falta de “internet time”.
pruebas.
En la comunidad SL activos:
Las características de las metodologías
ágiles pueden explicarse a través de los Los proyectos se establecen
siguientes cuatro principios instantáneamente.
fundamentales: Los requerimientos se
definenrápidamente.
Los individuos e interacciones son más
Los detalles de diseño se crean
importantes que los procesos y
yrevisan en línea.
herramientas dado que el proceso de
El código es escrito por
desarrollo es creativo, no es posible
pequeñosgrupos de desarrolladores
pensar que las personas funcionen
ágiles
respondiendo a órdenes, a procesos
La prueba de SW es un procesorápido
rígidos.
y colaborativo
Que el software funciones es más La retroalimentación es abundantee
importante que la documentación instantánea
exhaustiva: puesto que si el software
Todo el trabajo es realizado de manera
no funciona la documentación no vale
colaborativa y apoyándose en las
de nada. A nivel interno puede haber
ventajasy funcionalidades provistas por
documentación, pero solo la necesaria
diferentes tecnologías basadas en
y a nivel externo lo que el cliente
Internet, sin las cuales este tipo de
requiera.
desarrollo colaborativo sería
La colaboración con el cliente es más sumamente difícil o imposible.
importante que la negociación de
La comunidad del SL ha superado a las
contratos: supone que la satisfacción
empresas de desarrollo de software de
del cliente con el producto será mayor,
hoy en día, en lo que se refiere a:
mientras exista una conversación y
realimentación continúa entre éste y la Reclutamiento: encontrando a los
empresa. expertos adecuados para los proyectos
adecuados.
La respuesta ante el cambio es más
importante que el seguimiento de un Dispersión geográfica: trabajando con
plan: puesto que si un proyecto de personas de cualquier lugar del
software no es capaz de adaptarse a los planeta.
cambios fracasará, especialmente en
productos de gran envergadura. La Comunicación:Facilitandolascomunicaci
estrategia de planificación se basa en: onestantoad-hoccomoestructuradas en
planes detallados para las próximas cada fase del proyecto.
semanas, planes aproximados para los
3. Asincronismo: brindando la posibilidad Requeri Generalmente Generalmen
de que se produzca una colaboración mientos en vías de te en vías de
desarrollo; desarrollo;
efectiva a través de diferentes zonas cambian cambian
horarias. rápidamente rapidament
e,
Administración del conocimiento: conmunmen
capturando y haciendo disponible toda te propios y
la inteligencia derivada del proyecto de evolucionan
SW. do
constantem
Las tecnologías de Internet permiten ente
Arquitec Diseñada para Abierta,Dise
optimizar cada uno de estos aspectos. tura los ñada para
Desde el correo electrónico hasta los requerimientos los
repositorios de código, las actuales requerimien
herramientas de Internet remueven tos actuales
barreras que no permitirían poder Tamaño Equipos y Equipos
productos grandes y
desarrollar SL de la manera en la que se
pequeños dispersos,co
hace. n productos
pequeños
Entonces ¿Es el SL un método agil? Objetivo Rapidez Problemas
Principal Desafiantes
La siguiente tabla muestra una
comparación entre las metodologías de
desarrollo de SW ágiles y el SL, El análisis muestra que el enfoque SL
teniendo en cuenta seis áreas o está muy cercano a los métodos ágiles,
dimensiones de análisis. Observando con la distinción de que este opera en
esta tabla, vemos que el SL tiene varios un modo geográficamente distribuido.
puntos en común con los métodos
ágiles. En los proyectos de SL el cliente es
frecuentemente un co-desarrollador, lo
Las diferencias más notables están en la que no ocurre con los métodos ágiles y
proximidad y en el tamaño de los esto supone un desafió en el uso de los
equipos de desarrollo; en como están principios de SL en el desarrollo de SW
representados los clientes y en los comercial.
objetivos principales del trabajo de
desarrollo. En orden de seguir comparando, vamos
a analizar las características principales
AREA METODOLO- SOFWARE de cualquier metodología de desarrollo
GIAS AGILES LIBRE ágil y determinar si están o no
Desarroll Agiles, Geografica-
presentes en el modelo seguido para
adores capacitados, mente
colaborativos y distribuidos, desarrollar SL. Una metodología de
situados en un colaborativo desarrollo ágil, principalmente es un
mismo lugar. s, equipos proceso: Incremental (pequeños y
capacitados frecuentes releases, con ciclos rápidos),
y agiles
Cooperativo (Clientes ydesarrolladores
Clientes Especializados, Dedicados,
situados en un capacitados,
trabajan constantementecon una
mismo lugar, colaborati- comunicación muy estrecha)Sencillo (El
representativos, vos y método en si, es fácil de aprender y
y autorizados autorizados modificar, está bien documentado) y
4. Adaptativo (capaz de permitir cambios esto es consecuencia de la dispersión
de último momento) geográfica inherente en los equipos
que desarrollan proyectos de SL.
El SL es conforme, en mayor o menor
medida, con cada una de estas Sencillo: El SL no es un proceso bien
características halladas en las documentado, no existen o son escasas
metodologías ágiles. las convenciones utilizadas entre los
desarrolladores que utilizan el
Veremos a continuación como cada una paradigma del SL. Sin embargo, existen
de ellas están reflejadas en las prácticas muchas formas de conducir un
habituales del SL. proyecto de estas características. Los
Incremental: El proceso de desarrollo desarrolladores utilizan técnicas y
de SL comienza con la distribución prácticas que en la industria que
temprana y frecuente de releases. perciben como buenas.
Además, los sistemas desarrollados Es difícil argumentar porque se trata de
bajo este paradigma se ven un proceso sencillo, ya que no existen
incrementados, típicamente, con guías para el mismo, pero justamente
pequeñas contribuciones y los esta característica es lo que lo hace
programas son testeados fácil de modificar, ya que no existen
frecuentemente por la comunidad de reglas estrictas sino solamente buenas
desarrolladores. Linus Torvalds llamó a prácticas.
esta filosofía, seguida durante el
desarrollo de Linux, “release early, Solamente los mecanismos de licencias
release often”. Por lo que se puede del SL están perfectamente
observar este proceso incremental es documentados testeados y
compartido entre ambos enfoques. funcionando. Visto desde esta
perspectiva el SL no se compara en este
Cooperativo: El efecto de Internet ha sentido con los métodos ágiles. Pero
sido crucial para el éxito del desarrollo algunos métodos ágiles también se
de SL. basan en colecciones de buenas
La constitución de un proyecto SL prácticas en el desarrollo de SL para
comienza con la introducción en la establecer su metodología.
comunidad de un nuevo prototipo, Adaptativo: Una particularidad de los
luego de esto la cuestión principal es si proyectos SL es que los requerimientos
este prototipo llamará suficientemente están elaborándose constantemente, y
la atención. El proyecto comenzará a un producto nunca está finalizado hasta
atraer mas y mas desarrollares en la que todo el trabajo de los
medida de que el desafío, que plantee, desarrolladores en producto, haya
sea suficiente. terminado.
Una vez constituido el proyecto los Dependiendo de la gestión del
miembros “captados” por el mismo, proyecto,esto puede ser visto como un
trabajan en forma colaborativa para problema ouna fortaleza. La
llevarlo a cabo, la interacción no es informalidad asociada alproceso de
directa como en los equipos de desarrollo de OSS es lo que
desarrollo ágiles pero si a través de la leconfiereesta adaptatividad. Una de
red y las tecnologías que esta provee, las fortalezas de las metodologías
5. ágiles, es justamente su capacidad de
permitir cambios de último momento,
de una manera controlada. Pero en
contraposición los métodos ágiles
tienen un comienzo y un final
perfectamente definidos.
CONCLUSIONES
Si bien se ha dicho que el SL difiere de
las metodologías de desarrollo ágiles en
aspectos filosóficos, económicos y de
estructura del equipo de desarrollo, en
este trabajo se ha visto que el método
de desarrollo de SL está estrechamente
relacionado a la definición de
desarrollo de SW ágil.
De la discusión planteada en los
apartados anteriores se desprende que
el paradigma del SL es conforme con
los métodos ágiles. Sin embargo
existen diferencias que deben ser
resultas por el SL para que este sea
viable en el ámbito comercial. La
pregunta central es como estabilizar y
administrar todo el proceso de
desarrollo y como comercializar el
código a un nivel de aplicación que deje
conforme a la comunidad de negocios.
Basándonos en el análisis presentado
se puede admitir que la comunidad de
SL puede beneficiarse de las soluciones
prácticas puestas en marcha por las
metodologías ágiles y viceversa.
Las empresas de desarrollo de software
están mostrando cada vez más interés
en aprovechar las posibilidades del SL
en su trabajo diario.