Desarrollo Colaborativo <ul><li>Esta conferencia explora las bases del software libre y las características del desarrollo...
Desarrollo Colaborativo Mapa Mental
Desarrollo Colaborativo <ul><li>Definición </li></ul><ul><li>Características </li></ul><ul><li>Modelo de Desarrollo </li><...
Desarrollo Colaborativo <ul><li>El concepto de desarrollo colaborativo tiene que ver con la creación de grupos mixtos de p...
Desarrollo Colaborativo <ul><li>Desarrollo descentralizado y distribuído </li></ul><ul><li>Uso de diversas herramientas de...
Desarrollo Colaborativo <ul><li>El mundo del Software Libre es como un bazar con muchos comerciantes diferentes que ofrece...
Desarrollo Colaborativo <ul><li>A diferencia del modelo de La Catedral, en el modelo del Bazar existe la norma de 'Libere ...
Desarrollo Colaborativo <ul><li>Cabe comentar que no es siempre conveniente escoger y aplicar una metodología de forma est...
Desarrollo Colaborativo Roles Núcleo 1-3 Comunidad Medular 5-10 Comunidad Contribuyente General 100-200 Usuarios Pro-Activ...
Desarrollo Colaborativo <ul><li>En un principio los desarrolladores se comunicaban mediante listas de correo en las redes ...
Desarrollo Colaborativo <ul><li>Software para Desarrollo Colaborativo (Incluyen diversas herramientas para proporcionar so...
Desarrollo Colaborativo <ul><li>Mecanismos básicos de comunicación </li></ul><ul><ul><li>Listas de Correo (Mailman) </li><...
Desarrollo Colaborativo <ul><li>Mecanismos básicos de comunicación </li></ul><ul><ul><li>Aprendizaje colaborativo (Dokeos,...
Desarrollo Colaborativo <ul><li>Gestión de Flujos de Trabajo (Workflow) </li></ul><ul><ul><li>Issuezilla (Proyecto Mozilla...
Desarrollo Colaborativo <ul><li>Bases de Datos </li></ul><ul><ul><li>MySQL </li></ul></ul><ul><ul><li>PostgreSQL </li></ul...
Desarrollo Colaborativo <ul><li>Sistemas Operativos </li></ul><ul><ul><li>Linux </li></ul></ul><ul><ul><li>FreeBSD </li></...
Desarrollo Colaborativo <ul><li>Navegador </li></ul><ul><ul><li>Mozilla Firefox </li></ul></ul><ul><li>Suite Ofimática </l...
Desarrollo Colaborativo <ul><li>Debian es un sistema operativo libre que en la actualidad utiliza el núcleo de Linux para ...
Desarrollo Colaborativo <ul><li>Aparte de su naturaleza voluntaria, el proyecto Debian tiene una característica que lo hac...
Desarrollo Colaborativo <ul><li>Página web http://www.debian.org </li></ul><ul><li>Inicio del proyecto 16.8.1993 </li></ul...
Desarrollo Colaborativo <ul><li>“ H ay muchos programadores de software que gastan sus días, a cambio de un salario, en pr...
Upcoming SlideShare
Loading in …5
×

Desarrollo Colaborativo por Jose Rojas

6,831 views

Published on

Examina las herramientas de desarrollo colaborativo distribuido y presenta el ejemplo de coordinación y control de calidad en el proyecto Debian

Published in: Technology

Desarrollo Colaborativo por Jose Rojas

  1. 2. Desarrollo Colaborativo <ul><li>Esta conferencia explora las bases del software libre y las características del desarrollo de proyectos en ese contexto. </li></ul><ul><li>Examina las herramientas de desarrollo colaborativo distribuido y presenta el ejemplo de coordinación y control de calidad en el proyecto Debian. </li></ul><ul><li>Trata de explicar cómo un grupo de gente geográficamente dispersa, que no se conoce, habla distintos idiomas, no tiene jefes y no recibe pago alguno (en la mayoría de los casos), puede llevar a cabo proyectos exitosos. </li></ul>Sobre la ponencia
  2. 3. Desarrollo Colaborativo Mapa Mental
  3. 4. Desarrollo Colaborativo <ul><li>Definición </li></ul><ul><li>Características </li></ul><ul><li>Modelo de Desarrollo </li></ul><ul><li>Roles </li></ul><ul><li>Herramientas disponibles </li></ul><ul><li>Experiencias exitosas </li></ul><ul><li>El Caso 'Debian' </li></ul>Contenido
  4. 5. Desarrollo Colaborativo <ul><li>El concepto de desarrollo colaborativo tiene que ver con la creación de grupos mixtos de personas con conocimientos y experiencias diversas en diferentes áreas del conocimiento, así como estudiantes y otras personas interesadas que se comprometen a colaborar de proyecto de forma voluntaria. </li></ul><ul><li>En la práctica, el desenvolvimiento de los grupos de desarrollo de productos libres, muestran que las actividades de este tipo particular de ingeniería de software, son tareas que se realizan de forma distribuída y que envuelven a personas con competencias diversas y responsabilidades bien definidas. </li></ul>Definición
  5. 6. Desarrollo Colaborativo <ul><li>Desarrollo descentralizado y distribuído </li></ul><ul><li>Uso de diversas herramientas de comunicación asíncronas. </li></ul><ul><li>Asignación de roles definidos </li></ul><ul><li>Múltiples colaboradores con competencias diversas </li></ul><ul><li>Generalmente el desarrollo voluntario, no remunerado. </li></ul><ul><li>Liberación rápida y frecuente. </li></ul><ul><li>Aplicación del Modelo del Bazar. </li></ul><ul><li>El software estará listo cuando esté listo, mientras tanto habrá que esperar. </li></ul>Características
  6. 7. Desarrollo Colaborativo <ul><li>El mundo del Software Libre es como un bazar con muchos comerciantes diferentes que ofrecen sus mercancías. El desarrollo empresarial, por el contrario, está estructurado como los sindicatos religiosos que construyeron las catedrales medievales. </li></ul><ul><li>Los bazares ofrecen mucha competencia, pero sin orden alguno. Las catedrales estaban sometidas a la dirección de jerarquías sacerdotales, que aprovechaban la riqueza de la ciudad para construir el proyecto de un solo arquitecto. </li></ul><ul><li>El ensayo “La Catedral y el Bazar” de Eric Raymond,influyó en la decisión de la empresa AOL-Time Warner de liberar el código fuente del navegador Netscape, dando origen al proyecto Mozilla. </li></ul>Modelo de Desarrollo
  7. 8. Desarrollo Colaborativo <ul><li>A diferencia del modelo de La Catedral, en el modelo del Bazar existe la norma de 'Libere rápido y a menudo', que recomienda liberaciones rápidas y frecuentes del producto en ciclos cortos, permite detección y corrección temprana de errores antes que se conviertan en errores grandes (La Ley de Linus reza “ Con muchas miradas, todos los errores saltarán a la vista ”. ). </li></ul><ul><li>eXtreme Programming o programación eXtrema, es una de las metodologías llamadas “ágiles”, para el desarrollo de proyectos de software. Se basa en los principios de la simplicidad, la comunicación, la retroalimentación y el coraje para implicar a todo el equipo (y a los usuarios o clientes) en la gestión del proyecto. Esta metodología de la Ingeniería de Software, aplica perfectamente al desarrollo de Software Libre. </li></ul>Modelo de Desarrollo
  8. 9. Desarrollo Colaborativo <ul><li>Cabe comentar que no es siempre conveniente escoger y aplicar una metodología de forma estricta. Es importante entenderla y conocer qué nos puede aportar a nuestro proyecto, para aplicarla en esas fases o procesos en los que nuestro equipo o nuestros usuarios estén más cómodos con ella, y no al revés. . </li></ul>Modelo de Desarrollo
  9. 10. Desarrollo Colaborativo Roles Núcleo 1-3 Comunidad Medular 5-10 Comunidad Contribuyente General 100-200 Usuarios Pro-Activos / Integradores 1.000-10.000 Usuarios Generales 10.000-100.000-1.000.000 Desarrollan y mejoran contínuamente, mantienen el código 'oficial' Mantienen la web, wiki, cvs, contribuyen dinero, prueban Usan, contribuyen extensiones, patches, participan en las listas Usan, reportan bugs, patches, participan en las listas Solo usan, no contribuyen código, rara vez reportan un bug, pueden participar en listas de usuarios Compromiso
  10. 11. Desarrollo Colaborativo <ul><li>En un principio los desarrolladores se comunicaban mediante listas de correo en las redes precursoras de Internet y en la medida en que se desarrollaba éstas, también lo hacia su manera de comunicarse. </li></ul><ul><li>Con el actual crecimiento de la red y los nuevos lenguajes de desarrollo web, hemos llegado a un punto en el que la cantidad de servicios ofrecidos en portales para los desarrolladores e ingenieros de software es enorme, y no sólo abarca herramientas que ayudan a éstos en su desarrollo diario, sino que ponen en contacto a patrocinadores de proyectos con desarrolladores, de modo que el software libre pueda crecer y expandirse. </li></ul>Herramientas Disponibles
  11. 12. Desarrollo Colaborativo <ul><li>Software para Desarrollo Colaborativo (Incluyen diversas herramientas para proporcionar soporte al desarrollo colaborativo y distribuído). </li></ul><ul><ul><li>Gforge.org </li></ul></ul><ul><ul><li>Collab.net </li></ul></ul><ul><ul><li>Sourceforge.net </li></ul></ul><ul><ul><li>ActiveCollab.com </li></ul></ul>Herramientas Disponibles
  12. 13. Desarrollo Colaborativo <ul><li>Mecanismos básicos de comunicación </li></ul><ul><ul><li>Listas de Correo (Mailman) </li></ul></ul><ul><ul><li>Wikis (Mediawiki, Docuwiki) </li></ul></ul><ul><ul><li>Portales / Comunidades Virtuales (Mambo, Joomla, Drupal) </li></ul></ul><ul><ul><li>Foros (PHPBB) </li></ul></ul><ul><ul><li>Chat (IRC) </li></ul></ul><ul><ul><li>Mensajería Instantánea (Jabber) </li></ul></ul><ul><ul><li>Grupos de Noticias (Newsgroups) </li></ul></ul><ul><ul><li>Weblogs (Wordpress, Drupal) </li></ul></ul><ul><ul><li>Podcasts y Videoblogs </li></ul></ul>Herramientas Disponibles
  13. 14. Desarrollo Colaborativo <ul><li>Mecanismos básicos de comunicación </li></ul><ul><ul><li>Aprendizaje colaborativo (Dokeos, Moodle, Claroline) </li></ul></ul><ul><ul><li>VideoConferencia (Gnomemeeting) </li></ul></ul><ul><li>Control de Versiones </li></ul><ul><ul><li>CVS ( Concurrent Version Sytem ) </li></ul></ul><ul><ul><li>Subversion </li></ul></ul><ul><li>Gestión de Errores </li></ul><ul><ul><li>Bugzilla (Proyecto Mozilla) </li></ul></ul><ul><ul><li>Reportbug (Debian) </li></ul></ul>Herramientas Disponibles
  14. 15. Desarrollo Colaborativo <ul><li>Gestión de Flujos de Trabajo (Workflow) </li></ul><ul><ul><li>Issuezilla (Proyecto Mozilla) </li></ul></ul><ul><li>Editores de Texto (Documentación) </li></ul><ul><ul><li>LaTeX </li></ul></ul><ul><ul><li>DocBook </li></ul></ul><ul><li>Lenguajes </li></ul><ul><ul><li>C/C++ </li></ul></ul><ul><ul><li>Perl / Python / PHP </li></ul></ul><ul><ul><li>Ruby </li></ul></ul>Herramientas Disponibles
  15. 16. Desarrollo Colaborativo <ul><li>Bases de Datos </li></ul><ul><ul><li>MySQL </li></ul></ul><ul><ul><li>PostgreSQL </li></ul></ul><ul><ul><li>BerkeleyDB </li></ul></ul><ul><li>Repositorios </li></ul><ul><ul><li>Sourceforge.net </li></ul></ul><ul><ul><li>Freshmeat.net </li></ul></ul><ul><ul><li>Tigris.org </li></ul></ul><ul><ul><li>Software-libre.org </li></ul></ul><ul><ul><li>Rinde.gob.ve </li></ul></ul>Herramientas Disponibles
  16. 17. Desarrollo Colaborativo <ul><li>Sistemas Operativos </li></ul><ul><ul><li>Linux </li></ul></ul><ul><ul><li>FreeBSD </li></ul></ul><ul><li>Entornos Gráficos </li></ul><ul><ul><li>KDE </li></ul></ul><ul><ul><li>Gnome </li></ul></ul><ul><li>Servidores Web </li></ul><ul><ul><li>Apache </li></ul></ul><ul><ul><li>Lighttpd </li></ul></ul>Experiencias Exitosas
  17. 18. Desarrollo Colaborativo <ul><li>Navegador </li></ul><ul><ul><li>Mozilla Firefox </li></ul></ul><ul><li>Suite Ofimática </li></ul><ul><ul><li>OpenOffice.org </li></ul></ul><ul><li>Bases de Datos </li></ul><ul><ul><li>MySQL </li></ul></ul><ul><ul><li>PostgreSQL </li></ul></ul>Experiencias Exitosas
  18. 19. Desarrollo Colaborativo <ul><li>Debian es un sistema operativo libre que en la actualidad utiliza el núcleo de Linux para llevar a cabo su distribución. </li></ul><ul><li>Actualmente está disponible para varias arquitecturas diferentes, incluyendo Intel x86, ARM, Motorola, 680x0, PowerPC, Alpha y SPARC. </li></ul><ul><li>Las distribuciones de Debian son creadas por cerca de un millar de voluntarios (generalmente profesionales de la informática). La labor de estos voluntarios radica en tomar los programas fuente –en la mayoría de los casos de sus autores originales–, configurarlos, compilarlos y empaquetarlos, de manera que un usuario típico de una distribución Debian sólo tenga que seleccionar el paquete para que el sistema lo añada sin mayores problemas. </li></ul>El Caso Debian
  19. 20. Desarrollo Colaborativo <ul><li>Aparte de su naturaleza voluntaria, el proyecto Debian tiene una característica que lo hace especialmente singular: el contrato social de Debian. Este documento contiene no sólo los objetivos principales del proyecto Debian, sino también los medios que se utilizarán para llevarlos a cabo. </li></ul><ul><li>Debian también es conocida por tener una política de paquetes y de versionado muy estricta con el fin de conseguir una mayor calidad del producto. Así, en todo momento existen tres sabores diferentes de Debian: una versión estable, una inestable y otra en pruebas. </li></ul>El Caso Debian
  20. 21. Desarrollo Colaborativo <ul><li>Página web http://www.debian.org </li></ul><ul><li>Inicio del proyecto 16.8.1993 </li></ul><ul><li>Licencia Las que cumplan las DFSG </li></ul><ul><li>Versión actual de Debian Debian 3.1 (alias Sarge) </li></ul><ul><li>Líneas de código fuente 109.000.000 </li></ul><ul><li>Número de paquetes 15,490 </li></ul><ul><li>Estimación de coste 4.200.000.000 $ </li></ul><ul><li>Estimación de tiempo de ejecución 7 años </li></ul><ul><li>Estimación de número medio de desarrolladores 3.950 </li></ul><ul><li>Número aproximado de mantenedores: Cerca de mil </li></ul><ul><li>Herramientas de ayuda al desarrollo: Listas de correo, IRC, sistema de notificación de errores </li></ul>El Caso Debian
  21. 22. Desarrollo Colaborativo <ul><li>“ H ay muchos programadores de software que gastan sus días, a cambio de un salario, en programas que ni necesitan ni quieren. No ocurre lo mismo en el mundo Linux; lo que sirve para explicar por qué se da una calidad promedio de software tan alta en esa comunidad (y una tasa tan alta de errores en la otra) ”. “ Los buenos programadores saben qué escribir. Los mejores, qué reescribir (y reutilizar) ”. Eric Raymond </li></ul>Reflexiones finales

×