Metodologia De Desarrollo Sl Rompiendo Paradigmas Final

23
Metodología de Desarrollo en el Software Libre: Rompiendo Paradigmas Ing. Arístides Castillo Colmenárez

Transcript of Metodologia De Desarrollo Sl Rompiendo Paradigmas Final

Page 1: Metodologia De Desarrollo Sl   Rompiendo Paradigmas   Final

Metodología de Desarrollo en el Software Libre:

Rompiendo Paradigmas

Ing. Arístides Castillo Colmenárez

Page 2: Metodologia De Desarrollo Sl   Rompiendo Paradigmas   Final

Agenda

• Introducción

• Desarrollo tradicional vs. Desarrollo en SL

• Desafíos en el SL

• Calidad y Éxito en el SL

• Factores de Éxito en el SL

• Paradigmas tradicionales desafiados• Aprendiendo de los factores de éxito

Page 3: Metodologia De Desarrollo Sl   Rompiendo Paradigmas   Final

Introducción

• Primeros desarrollos libres seguían metodología tradicional

• Hoy, el Software Libre tiene su propia metodología:– Linux es Subversivo!

• Estudio canónico: La Catedral y el Bazar por Eric S. Raymond.

• Impresión inicial: El desarrollo del Software Libre no debería poder ser exitoso.

Page 4: Metodologia De Desarrollo Sl   Rompiendo Paradigmas   Final

Desarrollo tradicional vs. Desarrollo en SL

Desarrollo Tradicional• Construcción de catedrales:

Objetivos y requerimientos bien planteados

• Liderazgo tradicional, descendente

• Asignación de tareas• Equipos estables de tamaño

reducido• Control y seguimiento estricto

de actividades• Normalmente, requiere

agrupar los desarrolladores en la misma locación

• Motivación extrínseca

Desarrollo en Software Libre• Cada desarrollador agrega las

funcionalidades que considera necesarias

• Liderazgo emergente, no impuesto• Cada desarrollador escoge en que

trabajar• Decenas o cientos de

desarrolladores participando, con alta rotación.

• Desarrolladores participan en tiempo parcial y cuando lo desean

• Desarrolladores rara vez comparten espacio físico.

• Motivación intrínseca.

Page 5: Metodologia De Desarrollo Sl   Rompiendo Paradigmas   Final

Desafíos en el SL

• Generalmente, los desarrolladores no participan bajo contrato.

• Desarrollo distribuido por toda la Internet.

• Coordinación de cientos de desarrolladores.

• Cada desarrollador participa como desea.

• No hay autoridad centralizada que define funcionalidades

• Alta rotación de desarrolladores.• “Intentar liderar esta comunidad es

como arrear gatos” 1

1. Bruce Perens, http://slashdot.org/comments.pl?sid=38937&cid=4166266

Page 6: Metodologia De Desarrollo Sl   Rompiendo Paradigmas   Final

Comparativo de Densidad de Errores en fase de Pruebas

0 100 200 300

Proyecto C

Proyecto D

Proyecto E

Apache

/layout

/js

/rdf

/netwerk

/editor

/intl

/xpinstall

Pro

ye

cto

Error/KLOC

Error / KLOC Cambiada

Error/ KLOC Agregada

Módulos de Mozilla

Miles de lineas de códigoKLOC

Leyenda

Tomado de Mockus et al, ACM Transactions on Software Engineering and Methodology, Vol. 11, No. 3, July 2002

Densidad de Defectos encontrados en Mozilla y Apache

Comparativo de Densidad de Errores en fase de Pruebas y Release

0 100 200 300

Apache

Project A

Project C

Project D

Project E

Pro

yect

o

Error/KLOC

Errores en Pruebas / KLOCCambiado

Errores en Pruebas / KLOCAgregado

Errores en Release / KLOCCambiado

Errores en Release / KLOCAgregado

Calidad en el Software Libre

Page 7: Metodologia De Desarrollo Sl   Rompiendo Paradigmas   Final

Calidad en el Software Libre

Tomado de Mockus et al, ACM Transactions on Software Engineering and Methodology, Vol. 11, No. 3, July 2002

140 días90%

42 días75%

1 día50%

Tiempo de resolución

% de problemas

Tiempo de resolución en días de problemas en Apache Web Server

Page 8: Metodologia De Desarrollo Sl   Rompiendo Paradigmas   Final

Éxito en el Software Libre

Hoy por hoy y desde 1996, el Web Server más usado en la Internet

Referencia: www.netcraft.com

Estadísticas de uso de Servidores Web activos en Internet

Page 9: Metodologia De Desarrollo Sl   Rompiendo Paradigmas   Final

0,00%

10,00%20,00%

30,00%

40,00%

50,00%60,00%

70,00%

80,00%

Ene-05

Jul-0

5

Ene-06

Jul-0

6

Ene-07

Jul-0

7

Ene-08

IE7

IE6

IE5

Firefox

Moz

Otros

Estadísticas de uso de Navegadores Web en la Red

Referencia: http://www.w3schools.com/browsers/browsers_stats.asp

Éxito en el Software Libre

El navegador que logró revivir la batalla de los navegadores!!!

Page 10: Metodologia De Desarrollo Sl   Rompiendo Paradigmas   Final

Éxito en el Software Libre

De acuerdo con Netcraft.com, GNU/Linux es el SO usado por 5 de los mejores 10 hosting en el mundo. De los mejores 47 hosting, 21 tienen GNU/Linux como Sistema Operativo.

El desarrollo del Kernel de Linux revolucionó la manera de hacer software libre.

Ocupó el lugar desde hacía mucho tiempo vacante como núcleo del sistema operativo GNU.

Dio a GNU el impulso que necesitaba para esparcir la noción de Software Libre.

Hoy estamos abordando este tema gracias al desarrollo mismo de Linux!!!

Page 11: Metodologia De Desarrollo Sl   Rompiendo Paradigmas   Final

Casos de Éxito en el Software Libre

¿Cómo pueden ser exitosos estos proyectos y aplicaciones con las condiciones con las que se producen?

Page 12: Metodologia De Desarrollo Sl   Rompiendo Paradigmas   Final

1. Protección de la Propiedad Intelectual con licencias como GPL, entre otras.

– Motiva a los desarrolladores a participar voluntariamente.

– Esto asegura que hay beneficio en la participación de otros

2. El interés está en el software como tal, no en los beneficios derivados.

– Creatividad y disfrute del trabajo son los motivadores principales.

– La calidad se convierte en una meta irrenunciable

Factores de Éxito en el Desarrollo de Software Libre

Page 13: Metodologia De Desarrollo Sl   Rompiendo Paradigmas   Final

Factores de Éxito en el Desarrollo de Software Libre

1. Modularidad en el diseño– Facilita la división emergente del trabajo y la

autoorganización del equipo.– Disminuye la necesidad de coordinación colectiva.– Permite la apropiación de actividades de manera

independiente2. Código autoexplicativo

– Elegancia del código es vital– Promueve la fácil integración de nuevos recursos

voluntarios– Disminuye el costo de entender el trabajo de los

demás, y de cambiarlo.

Page 14: Metodologia De Desarrollo Sl   Rompiendo Paradigmas   Final

1. Control de calidad es llevado a cabo por toda la comunidad emergentemente– “Hall of Shame”. El código resultante será visto,

publicado y criticado en Internet.– Un trabajo de baja calidad produce “flamming” y

“spamming”.2. División emergente del trabajo

– Participación abierta al público (Usuarios, Notificadores de Errores, Desarrolladores)

– Cada quien selecciona la tarea que más le agrada, en el módulo que más le interesa

– Si lo disfrutas, sobresaldrás en tu rol. Si sobresales, te convertirás en líder.

Factores de Éxito en el Desarrollo de Software Libre

Page 15: Metodologia De Desarrollo Sl   Rompiendo Paradigmas   Final

1. Los desarrolladores son usuarios– Tienen requerimientos propios y los diseñan e

implementan ellos mismos.– Aportan sus necesidades y sus soluciones,

promoviendo la evolución del software.2. Los conflictos se resuelven haciendo y no hablando

– Si hay más de una opción en competencia, generalmente se hacen las dos.

– Es común tener líneas paralelas de desarrollo.– No hay ambigüedad cuando se habla en líneas de

código.

Factores de Éxito en el Desarrollo de Software Libre

Page 16: Metodologia De Desarrollo Sl   Rompiendo Paradigmas   Final

1. Liberar rápido y frecuentemente– Release early, release often.– Los errores son encontrados y notificados

rápidamente.– La comunidad se mantiene activa.

2. Aprovechamiento de la participación masiva– Ley de Linus: Dados muchos ojos, todos los

errores son visibles.– Miles de notificadores de errores.– Cientos de usuarios-desarrolladores.

Factores de Éxito en el Desarrollo de Software Libre

Page 17: Metodologia De Desarrollo Sl   Rompiendo Paradigmas   Final

Paradigmas tradicionalesdesafiados

• Ley de Brooks vs Ley de Linus– Ley de Brooks: “Añadir más personal a un proyecto

retrasado lo retrasa más” 1

• La necesidad de intercomunicación se ve minimizada por la elegancia del código y la modularidad del diseño, y esto es crítico en el SL.

– Ley de Linus: “Dados muchos ojos, todos los errores serán obvios” 2 • Reduce dramáticamente la necesidad de un

equipo dedicado de pruebas

1 Brooks, F. The Mythical Man Month. 2 Raymond, E. The Cathedral and The Bazaar

Page 18: Metodologia De Desarrollo Sl   Rompiendo Paradigmas   Final

• Ineficiencia de líneas de desarrollo paralelas– Mecanismo de resolución de conflictos– Selección de la mejor opción– Resolver haciendo y no hablando

• Criticidad de la ubicación física vs. Independencia de la ubicación– En la medida en que la necesidad de comunicación

directa entre desarrolladores se minimiza, la ubicación física deja de ser crítica.

– Consecuencia de la modularidad y autoexplicación del código

Paradigmas tradicionalesdesafiados

Page 19: Metodologia De Desarrollo Sl   Rompiendo Paradigmas   Final

• Impacto mínimo por alta rotación de desarrolladores– Diseños sencillos y de calidad, autoexplicación del

código, facilitan la integración de nuevos desarrolladores todos los días.

– La calidad del código puede sustituir la necesidad de documentación adicional.

• Orientación ascendente del producto (bazar) vs. orientación descendente (catedrales): Generación emergente de funcionalidades– Aprovechamiento de la inteligencia colectiva.– Producto del rol compartido desarrollador – usuario.

Paradigmas tradicionalesdesafiados

Page 20: Metodologia De Desarrollo Sl   Rompiendo Paradigmas   Final

Aprendiendo de losfactores de éxito

• El desarrollo tradicional puede nutrirse de las lecciones dictadas por el Software Libre– Esquema dual Comercial – Libre

• IBM, MySQL, Qt

– Esquemas intermedios: Community Source.– No subestimar la importancia de un diseño modular

y la calidad del código.– Beneficios de crear comunidades alrededor de los

proyectos de desarrollo de software.– Liberar temprano y frecuentemente!

Page 21: Metodologia De Desarrollo Sl   Rompiendo Paradigmas   Final

Metodología + Innovación= .

• La metodología de desarrollo de software hace la diferencia.– Certificación CMM Nivel 2– Certificación ISO 9000

• Metodología DBA en constante evolución– Unified Process– Agile Development

– Free Software

Page 22: Metodologia De Desarrollo Sl   Rompiendo Paradigmas   Final

[email protected]

+ 1 (312) 224.8358+58 (212) 761.9206www.dbaccess.com

Si deseas conectarte con nuestra organización, por favor contáctanos hoy a través de:

¡Gente como tú! ¡Gente DBA!

www.dbaccess.net

Page 23: Metodologia De Desarrollo Sl   Rompiendo Paradigmas   Final

Gracias por su atención

¿Preguntas?