Cómo gestionar con éxito un proyecto de software...

78
 Cómo gestionar con éxito un proyecto de software libre Manuel Palomo Duarte Oficina Software Libre y Conocimiento Abierto Universidad de Cádiz

Transcript of Cómo gestionar con éxito un proyecto de software...

Page 1: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Cómo gestionar con éxitoun proyecto de software libre

Manuel Palomo DuarteOficina Software Libre y

Conocimiento AbiertoUniversidad de Cádiz

Page 2: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Índice

● Modelos de desarrollo de software libre● Tecnologías que dan soporte● Buenas prácticas● Emprender con software libre● Referencias

Page 3: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

© Hans Lohninger y Allie_Caulfield respectivamente

Page 4: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Modelo de desarrollo “Catedral”

● Un grupo reducido de personas controlan el desarrollo

● Liberaciones de código en momentos concretos (cuando ellos deciden)

● Toma de decisiones muy centralizada● Difícil formar parte del núcleo

Page 5: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

© Ra Boe 

Page 6: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Modelo de desarrollo “Bazar”

● Modelo descentralizado● Todo el código está accesible en tiempo real● Decisiones más consensuadas● Más ojos mirando, más manos programando● Más asequible colaborar con el proyecto (pero 

no fácil)

Page 7: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

¿Quien crea las definiciones de catedral y bazar?

Page 8: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

© RussNelson

● Definiciones creadas por Eric S. Raymond– “Open Source” 

¿diferencia con SL?– Un testigo accidental– Cuidado que 

dispara ...

Libro: La Catedral y el bazar (gratis digital)

Page 9: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Lecciones de Raymond en CATB

Claves del funcionamiento del bazar

Page 10: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Lecciones de Raymond en CATB

1. Todo buen trabajo de software comienza a partir de las necesidades personales del programador.

2. Los buenos programadores saben qué escribir. Los mejores, que reescribir (y reutilizar).

3. "Contemple desecharlo; de todos modos tendrá que hacerlo." (Fred Brooks, The Mythical Man­Month)

4. Si tienes la actitud adecuada, encontrarás problemas interesantes.

5. Cuando se pierde el interés en un programa, el último deber es heredarlo a un sucesor competente.

Page 11: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Lecciones de Raymond en CATB

6. Tratar a los usuarios como colaboradores es la forma más apropiada de mejorar el código, y la más efectiva de depurarlo.

7. Libere rápido y a menudo, y escuche a sus clientes. 

8. Dada una base suficiente de desarrolladores asistentes y beta­testers, casi cualquier problema puede ser caracterizado rápidamente, y su solución ser obvia al menos para alguien.

9. Las estructuras de datos inteligentes y el código burdo funcionan mucho mejor que en el caso inverso.

Page 12: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Lecciones de Raymond en CATB

10. Si usted trata a sus analistas (beta­testers) como si fueran su recurso más valioso, ellos le responderán convirtiéndose en su recurso más valioso.

11. Lo más grande, después de tener buenas ideas, es reconocer las buenas ideas de sus usuarios. Esto último es a veces lo mejor.

12. Frecuentemente, las soluciones más innovadoras y espectaculares provienen de comprender que la concepción del problema era errónea.

Page 13: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Lecciones de Raymond en CATB

13. "La perfección (en diseño) se alcanza no cuando ya no hay nada que agregar, sino cuando ya no hay algo que quitar."

14. Toda herramienta es útil empleándose de la forma prevista, pero una gran herramienta es la que se presta a ser utilizada de la manera menos esperada.

15. Cuándo se escribe software para una puerta de enlace de cualquier tipo, hay que tomar la precaución de alterar el flujo de datos lo menos posible, y ¡nunca eliminar información a menos que los receptores obliguen a hacerlo!

Page 14: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Lecciones de Raymond en CATB

16. Cuando su lenguaje está lejos de un Turing completo, entonces el azúcar sintáctico puede ser su amigo.

– Equilibrio entre cercanía a lenguaje natural y tiempo de procesamiento en fich. de config. (quizás desfasado)

17. Un sistema de seguridad es tan seguro como secreto. Evite los secretos a medias.

18. Para resolver un problema interesante, comience por encontrar un problema que le resulte interesante.

19. Si el coordinador de desarrollo tiene un medio al menos tan bueno como lo es Internet, y sabe dirigir sin coerción, muchas cabezas serán, inevitablemente, mejor que una.

Page 15: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

¿Ejemplos de software libre desarrollado en catedral?

... ¿y bazar?

Page 16: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Ejemplos de software libre 

● Desarrollado en catedral:– Muchos de los programas de GNU: GNU Emacs, 

gcc, tar

● Desarrollado en bazar:– El núcleo Linux

● ¿Cuántos hay de cada tipo?– ... ¿en Sourceforge.net?

Page 17: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Desarrolladores por proyecto en SF.net (Herráiz, FLOSSMole)

>=654321

Page 18: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Llega una amenaza ...

● Hay más bien pocos desarrolladores en los proyectos libres

● ¿Qué pasará si pagaran unas vacaciones a todos los desarrolladores de uno de ellos ... y el avión que los llevara sobrevolara el Triángulo de las Bermudas?

A statistical examination of the properties and evolution of libre software. Israel Herráiz (tesis)

Page 19: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Herráiz

Page 20: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Catedral ¿vs? bazar

Page 21: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

¿Modelos contrapuestos?

● Catedral puede ser adecuado para proyectos– De requisitos fijos: software “a medida”– De cierta complejidad: software de investigación– Con responsabilidad: plazos de entrega, 

estándares de calidad, etc– Que necesiten asegurarse una rentabilidad antes 

de liberar

● Se pierde el “genio” del bazar

Page 22: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

¿Modelos contrapuestos?

● Si me pongo yo y mi compadre a vender fruta en la calle (léase programar software libre “en equipo”) ...– ¿Es eso un bazar?– ¿Puede llegar a serlo?– ¿Cómo?

Page 23: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

De la catedral al bazar

● Evidentemente casi ningún proyecto empieza con muchos colaboradores ...

● ... pero la mayoría suele tener como objetivo conseguirlos ¿los consiguen?

● Existen estudios sobre el tema:– De la catedral al bazar: un estudio empírico del 

ciclo de vida de los proyectos basados en comunidades de voluntarios. Andrea Capiluppi y Martin Michlmayr (Novática nº 190)

Page 24: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Estudio de evolución

● Se estudiaron dos sistemas: Wine y el sistema de ficheros Arla– Análisis de los Changelog (no había información 

SVN de toda la historia de los proyectos)

● Se miden, por cada mes– Input: desarrolladores distintos (sin repeticiones)– Output: módulos modificados– Input/Output: módulos en que trabajan los 

desarrolladores que se han incorporado ese mes

Page 25: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Estados

● Paso 1: catedral– Una persona tiene una idea “original” y desarrolla 

con un equipo reducido

● Paso 2: transición– El sistema es estable y modular, pero tiene líneas 

claras de ampliación

● Paso 3: bazar– Se crea comunidad. Se desarrolla en paralelo y el 

número de revisiones aumenta

Page 26: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Estudio de evolución

● Conclusiones:– Los desarrolladores nuevos quieren trabajar en 

módulos nuevos– O lo que es lo mismo: “si quieres que se una gente 

al proyecto señala líneas interesantes para que trabajen”

– No pasar a bazar no es un fracaso, pero sí una oportunidad perdida: la fase de transición es clave

Page 27: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

¿Por dónde empiezo?

● Estoy en una carrera de Ingeniería Informática y quiero empezar en esto ...– Aprende a leer y escribir inglés

– Echa una mano en un proyecto existente: Cómo colaborar en un proyecto libre como KDE. Pedro Jurado Maqueda, Actas JASL4

– Pero sobre todo ¿cómo se aprende a capar? ...

Page 28: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Visibilidad del trabajo

● Vale, programo software libre en mi casa y lo subo a mi web

● Para darle visibilidad y buscar usuarios y colaboradores:– Mando correos a todos mis sufridos conocidos– En el Tuenti y el Facebook hago toda la publicidad 

que puedo (arriesgando mi escaso karma)– Pongo trípticos en la coches aparcados en mi calle

● ¿Lo estoy haciendo bien?

Page 29: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

La Forja

● Es clave para el desarrollo de software bazar● Son sistemas web que proporcionan (gratis) 

muchos recursos para trabajo colaborativo:– Repositorio de software– Foros, listas de correo, wikis– Web– Asignación de tareas y seguimiento de errores– Noticias RSS– ...

Page 30: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Forjas más populares

● En inglés– Sourceforge– Freshmeat– GNU Savannah

● En español:– RedIRIS (Universidad e investigación española)– Guadalinex– Proyecto Morfeo

Page 31: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Page 32: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Programación colaborativa

● Bien, ya somos dos para programar.● ¿Cómo nos coordinamos?

– Nos mandamos unos ficheros .zip cada vez más grandes por las noches

– El que va a modificar la última versión del código le da un toque al móvil al otro, y así no hay modificamos el código fuente los dos a la vez

● Me da que esto no es escalable ...

Page 33: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Programación colaborativa

● Existen sistemas para colaborar en el desarrollo de código:– Centralizados: sencillos, pero limitados (siempre 

todo el código “definitivo” está en un servidor). Suelen valer para la mayoría de casos. Ej: SVN

– Distribuidos: complejos, pero muy potentes (roles, código distribuido). Suelen preferirlo los hardcore programmers. Ej: Git, Mercurial, Bazaar, etc

● Veremos SVN, el más extendido ...

Page 34: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Programación colaborativa con SVN

● Permite a los desarrolladores trabajar en un proyecto común de manera:– Dispersa: en cualquier sitio con conexión a Internet– Asíncrona: a cualquier hora del día– Registrada: se registran todas las aportaciones– Pública: cualquier persona puede ver su trabajo

● Existen herramientas de análisis de SVN– StatSVN: perfiles de programadores y grupos

Page 35: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Colaboración con SVN

Repositoriocentralizado

CopiaModif 1

Usuario1

CopiaModif 2

Usuario2

(1)Aportación(“commit”)

(2)Aportación(“commit”)

(3)Cambiosfundidos

(3)Cambiosfundidos

Page 36: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Page 37: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Page 38: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Page 39: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Page 40: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Page 41: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Page 42: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Page 43: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Atrae a la gente

● Actividades fáciles– Gnome Love

● Forma desarrolladores– Proyecto de tutorización OO.org

● La gente quiere hacer tareas nuevas– A nadie le gusta ordenar las chapuzas de otros ...

Page 44: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Analiza

● Se muy crítico con tu trabajo– StatSVN– Ve por las metodologías mejores, siempre que 

existan tecnologías que las soporten

Page 45: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Hazte ver

● Forja + web● Genera noticias y publícalas en RSS● Acuerdos con asociaciones, otros 

desarrolladores, etc● Asiste a conferencias y eventos

Page 46: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Que trabaje el ordenador

● Intenta automatizar todo lo que puedas– SVN– Doxygen

● Ejemplo del campo de conocimiento abierto: bots de Wikipedia

Page 47: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

SL para todos

● Empaquetado– .DEB, .RPM

● ¿Es difícil? => busca aliados– Gente con experiencia e interés en ello– En Andalucía tenemos a la gente de Guadalinex: 

compromiso de integrar aplicaciones bien hechas en Guadalinex. Y, si merecen la pena, intentar promocionarlas a Ubuntu

Page 48: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Evolución

● Correctiva– Haz mucho caso a los informes de errores que te 

lleguen– Es importante priorizarlos bien

● Evolutiva– Ten siempre actualizada la lista de funciones 

deseables para tu sistema en el futuro

Page 49: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Define tu impacto

● No es complicado internacionalizar una aplicación– Ficheros i18– Se puede conseguir muchísima colaboración. 

Ejemplo: SMB Web Client, Victor M. Varela

● ¡Por favor, inglés de tu pueblo NO!

Page 50: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Buena imagen

● Página atractiva– Si es posible sin publicidad– Capturas de pantalla o screencast– Manuales de instalación

● White papers● Casos de éxito● Referencias

Page 51: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Normas

● Establece normas de codificación– Que sean fáciles de usar– Que tengan soporte de programas

● Intenta seguir normas establecidas:– Debian Policy– Free Desktop

Page 52: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Estándares abiertos

● No discriminación– Futuro

● La ley a nuestro favor– También los “maqueros”, etc

● ¿Creéis que esto da para vivir?– Opentia

Page 53: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Compórtate según las reglas

● Raymond (Noosfera): “propiedad del sistema”– Lee mucho en la lista de correo antes de escribir– Estructura meritocrática: “Cultura de los regalos”

● Cuanto más des, mejor serás

– A todos nos gusta que nos alaguen– No distribuyas parches por tu cuenta, intenta que 

se acepten oficialmente– Crear un fork no gusta

Page 54: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Propiedad de un proyecto

● El software libre no tiene dueño ... pero los proyectos sí.

● El dueño es:– Quien ha creado el proyecto– Aquel que ha recibido “los poderes” del creador 

(anunciándolo públicamente)– Si el proyecto está abandonado, intenta contactar 

con el dueño y, si no puedes, anuncia públicamente tu intención de adueñarte de él

Page 55: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

¿Por qué hacer software libre?

● Mide bien tu motivación:– Aprobar una asignatura– Poner mi granito de arena para devolver parte de lo 

recibido– Pagar la hipoteca

● Cuantifica tu posible esfuerzo en tiempo (e intenta prever tu rendimiento)

● Ponte un calendario

Page 56: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Pagar la hipoteca con SL

● Modelos de negocio (Caldero mágico, Raymond)

● Trabajar por cuenta ajena● Universidad ­ Investigación● Emprender

Page 57: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Modelos de negocio con SL propuestos por Raymond

● Compartir costes (ej: Apache)– Ninguna empresa costea todo su desarrollo

● Extender el riesgo (ej: colas de impresión remotas Cisco)– Si sólo yo uso un software y se deja de mantener 

(porque los desarrolladores me abandonan) es costoso para mi.

– Si lo usan más empresas habrá más interés en que siga manteniéndose

Page 58: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Modelos de negocio con SL propuestos por Raymond

● Liberar parte del software (C/S, instalador, ...)● Si vendes hardware, que programen por ti● Coloca a tu producto como líder y cobra por 

servicios (ejemplo MySQL)● Venta de accesorios (manuales, gadgets, etc)● Ahora vende, en el futuro libera (ej Ghostscript)● Libera software, vende certificaciones● Libero el software, vendo datos que consume

Page 59: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Trabajar por cuenta ajena

● Colabora con algún proyecto libre● Ve a congresos y ferias de software libre con 

un montón de currículums y habla con la gente– Lo mejor de tu currículum es que puedes demostrar 

lo que has hecho

● Si no eres muy malo tienes trabajo seguro

Page 60: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Universidad ­ Investigación

● A día de hoy el camino para entrar en la Universidad es la investigación

● Hay grupo de investigación que usan software libre y están deseando tener gente competente:– Grupo LibreSoft (Univ. Rey Juan Carlos)– Geneura (Univ. de Granada)– Grupo SPI&FM (Univ. de Cádiz)– ...

Page 61: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Emprender con software libre

● Busca apoyo de expertos:– Asociaciones de empresarios / emprendedores– Cámaras de Comercio– Institutos de fomento, crédito, etc– Gobiernos locales, regionales, nacionales

● ¡Cuidado con los plazos y las promesas!

– Viveros de empresa

Page 62: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Emprender con software libre

● Busca apoyo de “los de software libre”– Andalibre

● Asociación de empresas de software libre de Andalucía● Se consigue visibilidad

– ASOLIF● Asociación de empresas de software libre de España● Se hace fuerza

Page 63: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Emprender con software libre

● Analiza quien es tu público objetivo– Número– Ingresos– Rendimiento que sacan a las TIC– Futuro– ...

● Ejemplo: ACL2 ...

Page 64: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Emprender con software libre

● Busca quien es tu cliente y ve a por él● Hay que estar al nivel del cliente. Por ejemplo, 

no es lo mismo vender a:– Carpintería metálica– Abogados– Habla, viste como ellos. Está donde ellos.

Page 65: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Emprender con software libre

● Ofrece al cliente “lo que quiere”:– Software + asesoría– Precio final– Normalmente no quiere “ética” ...– Formación (rendimiento, trabajo de calidad)– Asesoría

Page 66: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Emprender con software libre

● Aprovecha tu entorno al máximo– Entorno personal

● Amigos, familiares, etc. Que todos sepas que tienes una empresa

– Universidad: ● Concurso Universitario de Software Libre● Spin off

Page 67: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Evita problemas

● Usa correctamente las licencias– Entiende sus implicaciones– Selecciona una adecuada– Una licencia libre es una cesión de derechos 

mínimos (si quieren más que contacten contigo)– ¿Qué pasa si no pongo el mensaje completo ...?

● ¿Cómo demuestras que tu código es tuyo?● No dudes en liberar. 

– Ej. “Introducción informal ...”

Page 68: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Certificaciones

● El software libre necesita certificaciones ...   que pueden abrir vías de negocio

● Por ejemplo: – Demostrar que tal software pasa un conjunto de 

pruebas– Comprometerte a ofrecer un servicio determinado 

sobre el código

● Ejemplo: banco ING en Rusia

Page 69: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Para callar bocas ...

● The economic impact of OSS on innovation and the competitiveness of the ICT sector in Europe– MERIT at the University of Maastricht

● Estudio económico encargado por la Unión Europea (EU) ¿cómo ser competitivos en TIC?– Única alternativa: software libre

Page 70: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Para callar más bocas ...

● Empresas que usan Linux:– IBM, Oracle, HP, etc

● Linux está en más del 90% de los equipos del “TOP 500” de ordenadores más potentes del mundo

● Linux ha llegado a Marte 

Page 71: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Bibliografía básica

● La catedral y el bazar. Eric S. Raymond (libro completo, no sólo el ensayo homónimo)

● Novática nº 190 especial “Software libre: investigación y desarrollo”. Varios

● A statistical examination of the properties and evolution of libre software. Israel Herráiz (tesis)

● Cómo colaborar en un proyecto libre como KDE. Pedro Jurado Maqueda, Actas JASL4

Page 72: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Bibliografía adicional

● Software Libre para una sociedad libre, Richard Stallman

● El Código 2.0. Lawrence Lessig● Free for all (La ofensiva del software libre). 

Peter Wayner● Sobre software libre. J.M. G. Barahona y otros● Understanding Open Source and Free Software 

Licensing. Laurent (O'Reilly Open books)

Page 73: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

Gracias por vuestra atención

¿Preguntas?

Con 20 años Bill Gates había hecho más por el software privativo que TÚ por el libre hasta hoy

Page 74: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

© Manuel Palomo Duarte, 2009

Disponible bajo licencia Creative Commons Attribution­Share Alike 3.0

Page 75: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

La Batalla del Guadalete

Versión 0.1 (modo texto)

© Manuel Palomo, 2007

“Si mi madre me hubiera visto con 8 tíos más gritando y saltando delante de una pantalla negra con letritas se moría del disgusto”

Page 76: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

La Batalla del Guadalete

Versión 0.1.1 (modo texto + gráfico)

© Manuel Palomo, Roberto García, 2008

Alumno colaborador

Page 77: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

La Batalla del Guadalete

Versión 1.0 Reconquista

(aplic. gráfica interact.)

© Manuel Palomo, Roberto García, Jesús Soriano, 2009 (PFC)

Page 78: Cómo gestionar con éxito un proyecto de software libreservicio.uca.es/softwarelibre/activi2009/exitoProyLibre.pdf · "La perfección (en diseño) se alcanza no cuando ya no hay

   

La Batalla del Guadalete

Versión 2.0 Resistencia en Cádiz: 1812 © Pablo Recio

Reingeniería a fondo, recodificación en Python