El control de calidad en proyectos de Software Libre
Gunnar Wolf -
[email protected]
Desarrollador del Proyecto Debian
Instituto de Investigaciones Económicas - UNAM
http://www.gwolf.org/soft/qa_soft_libre
El control de calidad en proyectos de Software Libre
1. ¿Qué es Software Libre?
2. Comprendiendo la crisis en la industria del software
3. Características del desarrollo en proyectos de Software Libre
4. Herramientas de desarrollo colaborativo distribuído
5. Un ejemplo: coordinación y control de calidad en el proyecto
Debian
Primer acercamiento
1. ¿Qué es Software Libre?
¿Qué es el Software Libre?
Un movimiento social que busca corregir una aberración histórica
Miles de voluntarios que rompen toda predicción económica
Un movimiento eminentemente social, con efectos técnicos como primer resultado
Un nuevo modelo de producción de software
Un esquema justo de licenciamiento de la propiedad intelectual
Sí, pero... ¿Qué es el software libre?
1. ¿Software libre?
El mundo del cómputo hasta los 70 seguía otras reglas
El negocio está en vender hardware - El software requerido va incluído
Es de esperarse que los usuarios quieran modificar tanto hardware como software
Los sistemas se venden con esquemas y código fuente completos
La revolución de las PCs nos trajo un licenciamiento injusto e ilógico
Al pagar por un programa, no lo compramos - Sólo adquirimos una licencia de uso bajo ciertas condiciones
Lo compramos tal y como está - Es imposible adecuarlo a nuestras necesidades específicas
La compañía dueña del código no da garantía alguna sobre de él
El software libre básicamente nos devuelve la propiedad y los derechos
Con el software libre recuperamos el control de nuestra propiedad
Podemos adecuar el software a nuestras necesidades
Podemos corregir los problemas que presente
Podemos compartir nuestro desarrollo con quien lo necesite
¡Pero no recibimos siquiera el derecho de corregir problemas!
Aterrizando
1. ¿Software libre?
Un programa es considerado software libre si su licencia nos
garantiza:
Libertad de uso
Podemos usar el programa para el propósito que deseemos
Libertad de aprendizaje
Podemos aprender cómo está hecho el programa
Tenemos acceso a su código fuente
Libertad de modificación
Podemos adecuar el programa a nuestras necesidades modificando su código
Podemos incluir partes de su código en nuestros desarrollos
Libertad de redistribución
Podemos compartir el programa con otras personas
Podemos compartir el código fuente con otras personas
En su estado original o modificado
Aclarando
1. ¿Software libre?
El software libre simplemente es diferente.
Rompe con la lógica de trabajo en la industria
Plantea hasta cierto punto la vuelta a una forma de trabajo académica
Ha creado fuertes presiones sobre una industria basada en principios errados
Va a modificar radicalmente la manera de trabajar de esta industria
Para concentrarse en la venta de servicios (personalización, administración, etc.)
Adecuaciones a las necesidades específicas del usuario
Vuelta a un modelo más sano, como lo que teníamos hace 30 años
Se ha convertido en una religión
El control de calidad en proyectos de Software Libre
1. ¿Qué es Software Libre?
2. Comprendiendo la crisis en la industria del software
3. Características del desarrollo en proyectos de Software Libre
4. Herramientas de desarrollo colaborativo distribuído
5. Un ejemplo: coordinación y control de calidad en el proyecto
Debian
Desarrollo de un proyecto
2. Comprendiendo la crisis en la industria del software
Dentro de la industria tradicional del software tienden a observarse
metodologías, divisiones y tiempos, rígidos y claros, para las
diferentes etapas
No hay una sóla concepción de cómo debe ser el proceso ideal, pero todo proyecto tiene
claro y definido el suyo
La impredictibilidad y el caos son vistos como los mayores enemigos
Proyección de funcionalidad ("roadmaps" del proyecto) a mediano y largo plazo
La presión del tiempo al mercado
2. Comprendiendo la crisis en la industria del software
La crisis de la industria del software deriva precisamente de que se
ha convertido en una industria.
Necesidad de entregar los productos en un tiempo competitivo
Resultado: Sistemas menos maduros, más vulnerables, con cantidades tremendas de fallos conocidos (dicen los que saben, decenas
Competencia en vez de cooperación
En nombre de los secretos industriales, patentes sobre algoritmos y, en general, la propiedad intelectual, la computación como
de miles en Windows XP)
disciplina científica está atascada desde hace más de 20 años
completamente deiferentes, en vez de cooperación para el desarrollo de nuevas tecnologías
Especialmente durante los 80 y 90 vimos una y otra reimplementación de las mismas ideas de diferentes maneras, con interfaces
La propiedad intelectual
Toda empresa de desarrollo de software tiene que pagar grandes despachos de abogados
Toda empresa de desarrollo de software debe tener una sólida cartera de patentes sobre algoritmos
Emergencia de oligopolios/monopolios
Las pequeñas empresas sencillamente no tienen manera de competir con las grandes, terminan siendo absorbidas o quebrando
Y no es culpa de Microsoft - El modelo mismo fomenta la creación de monopolios
Los engranes de la maquinaria (o cómo lograr insultar al cliente y seguir cobrándole)
2. Comprendiendo la crisis en la industria del software
Con el paso de los años, el cliente ha ido pasando cada vez más a
un papel de menor importancia
Comenzando con licencias excesivamente restrictivas
Puede ponerse en duda su legalidad - Yo no firmé en ningún lado...
Me prohiben cada vez más acciones
Limitan por completo mi privacidad
El Impuesto Microsoft
No puedo elegir una computadora de marca sin que incluya Windows. ¿Por qué?
Al pagar la licencia del programa, expresamente acepto que carece de garantía - Estoy dando dinero para recibir un permiso de uso
Imposibilidad de recibir soporte técnico
(no estoy comprando nada), sin garantía de que sirva de algo
Para sistemas grandes, puedo pagar (en cientos de dólares) para abrir un ticket de soporte, sin garantía de que me resuelvan el
problema (o de que intenten hacerlo)
¿Debemos seguir los mandatos de la visión empresarial?
2. Comprendiendo la crisis en la industria del software
El cómputo históricamente siempre ha tenido su mayor impulso en la
academia
Hemos seguido ciegamente las tendencias del mercado
Prácticamente no ha habido verdaderas inovaciones en el cómputo en las últimas dos
décadas
Las prácticas actuales de desarrollo por parte de la industria son ineficientes y caen en
todo tipo de vicios
Les salió más caro el caldo que las albóndigas
¿Por qué insistir en copiar un modelo
inferior?
El control de calidad en proyectos de Software Libre
1. ¿Qué es Software Libre?
2. Comprendiendo la crisis en la industria del software
3. Características del desarrollo en proyectos de Software Libre
4. Herramientas de desarrollo colaborativo distribuído
5. Un ejemplo: coordinación y control de calidad en el proyecto
Debian
3. Características del desarrollo en proyectos de Software Libre
Modelo general de desarrollo
Cada comunidad de desarrolladores ha llevado la filosofía de
desarrollo del sistema en que creció a su modo general de trabajo y
colaboración
Software Libre
Muchos componentes pequeños, con interfaces claras, fáciles
de "interenchufar", que saben hacer muy pocas cosas pero la
hacen bien
Cada componente debe mantenerse independiente de los
demás. Los cambios en un componente no deben afectar a
otros.
La funcionalidad puede ser redundante - puede haber más de
una herramienta para hacer lo mismo
Asume que el usuario es como el programador - Todo está
documentado y al alcance
Al permitir al usuario hacer cosas aparentemente tontas le
permitimos hacer cosas muy ingeniosas. El usuario sabe lo
que hace.
Software privativo
Grandes sistemas, con mucha funcionalidad, a ser utilizados
de la manera que fue previsto. Interoperabilidad limitada a lo
determinado adecuado
El sistema está fuertemente integrado para ofrecer una
sensación de mayor unidad al usuario
El sistema es diseñado como un todo, hay que evitar al
usuario tomar decisiones innecesarias
Asume usuarios finales, da suficiente documentación para
resolver problemas simples
Es necesario proteger al usuario de las acciones que pueda
realizar que puedan hacer daño a su sistema.
3. Características del desarrollo en proyectos de Software Libre
Modelo de crecimiento orgánico
El modelo de desarrollo que seguimos puede ser visto como el
crecimiento orgánico - tiene una gran semejanza con las células de
un ser vivo.
Los diferentes proyectos tienden a ser tan pequeños e independientes como sea posible,
con una interfaz consistente
Es fácil reemplazar a uno por otro
Diferentes proyectos implementando la misma funcionalidad no compiten - avanzan en conjunto
Comparten recursos vitales - a los desarrolladores y a su experiencia
La redundancia no duele
Hay muchos proyectos implementando la misma funcionalidad
Selección natural
3. Características del desarrollo en proyectos de Software Libre
Diferentes tipos de proyecto
Hay dos tipos principales de proyectos de Software libre - y uno no
puede ser exitoso sin el otro
Desarrollo de software
Desarrolla cada uno de los componentes
El proyecto puede ser muy simple/pequeño o muy grande (hasta cientos de desarrolladores en
Comentarios de: El control de calidad en proyectos de Software Libre (0)
No hay comentarios