Montaje de un proyecto de Software Libre ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre Licencia Copyright (c) 25/06/2004 Juan Cépedes. Modificaciones y adaptaciones. Copyright (c) 2006 2009 Leonardo Caballero. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no FrontCover Texts, and no BackCover Texts. A copy of the license is included in the section entitled quot;GNU Free Documentation Licensequot;. ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre GNU Free Documentation License Puede obtener una copia de la licencia quot;GNU Free Documentation Licensequot; en los ficheros llamados quot;copyright.txtquot; en ingles, quot;copyright.es.txtquot; en español o en los siguientes sitios en Internet: • http://www.gnu.org/copyleft/fdl.html • http://www.fsf.org/licensing/licenses/fdl.html ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre Ficha Técnica • Leonardo Caballero. • T.S.U. en Informática. • Investigación, diseño, desarrollo y documentación de sistemas. • Activista del conocimiento libre promoviendo Software y Hardware Libre. • Linux User #369081. • Usuario GNU/Linux desde Mayo 2002. • Miembro activo VELUG desde Mayo 2003. • Miembro activo GULMER, GLOVE, GUGVE y SOLVE desde 2005. ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre Contenido • ¿Como montar un proyecto de software libre? • Lenguaje de programación. • Plataforma. • Especificaciones. • Metodología de desarrollo. • Desarrollo. • Herramientas de trabajo colaborativo. • Publicación. • Aspectos legales: copyright, licencia. • Buenas prácticas al liberar. • Publicidad. ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre Contenido :: Continuación • Publicación :: Continuación. • Empaquetamiento y distribución (Fuentes y binarios). • Distribución de binarios. • Cuidado con la imagen. • Soporte a usuarios: sitio de referencia, BTS, comunidades. • Tiempo de dedicación al proyecto. • Conclusiones. • Referencias. • Sitios en Internet. ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre Lenguaje de programación Este aspecto es mucho más importante de lo que parece. Si queremos que le proyecto tenga éxito en la comunidad y haya gente que se dedique a mejorarlo, tiene que estar escrito en un lenguaje de programación: • Fácil de utilizar. • Con disponibilidad de herramientas de desarrollo y de depuración cómoda. • En general, que le guste a la gente. Ejemplo significativo: El cliente de redes P2P Mldonkey. Fue el primer cliente libre que pudo conectarse a la red eDonkey y FastTrack, es multiplataforma, multiprotocolo, funciona relativamente bien... pero no tiene desarrolladores aparte de un núcleo muy cerrado ¿Por qué? Esta escrito en CAML. ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre Plataforma Si el proyecto que estamos desarrollando o que vamos a desarrollar necesita características especiales o una plataforma determinada para funcionar correctamente, nuestra base de usuarios objetivos puede verse seriamente reducida, o sufrir en el futuro. Pero también puede suceder esto si el proyecto usa peculiaridades de un sistema que pueden dejar de ser comunes. Por ejemplo: • Uso de tipos de ficheros concretos. • Dependencia de hardware especifico. Este aspecto lo sufren todo tipo de proyectos de software, ya sea libre o no. Ejemplo significativo: e2undel, recover, gtkrecover: recuperan ficheros borrados para particiones ext2. ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre Especificaciones En general para tener éxito es importante saber que demandan los usuarios, saber que es lo que podemos ofrecerles y cual sera nuestra ventaja competitiva frente al resto de los productos existentes. Hay que saber cómo está el mercado, al igual que al montar cualquier empresa clásica. Por ejemplo, utilizando un análisis como el siguiente: • Grado de rivalidad entre competidores actuales. • Amenaza de nuevos competidores. • Productos sustitutivos. • Poder negociador de los proveedores. • Poder negociador de los clientes. ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre Metodología de desarrollo Ensayo “La catedral y el bazar”. Analiza el surgimiento de GNU/Linux y un proyecto de software libre, creado para comprobar deliberadamente las diferencias teóricas entre dos modelos de desarrollo, la Eric S. Raymond. catedral de la mayoría del software no libre y el bazar bullicioso del código abierto. Un ejemplo claro de bazar sería la Wikipedia mientras que la Enciclopedia Británica y Nupedia lo son de catedral. ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre Metodología de desarrollo :: Continuación • Programación extrema o Extreme Programming (XP). ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre Metodología de desarrollo :: Continuación • Metodología de desarrollo de software de la FSL. ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre Herramientas de trabajo colaborativo Existen recursos gratuitos y libre en la Web, para que usted y sus colaboradores pueden empezar a organizarse colectivamente, crear comunidades o redes sociales digitales, y así para aprovechar pertinentemente dichos recursos existentes: • Servidor del proyecto publico y gratuito usando empresas de hosting gratuito o colocando un IP pública usando el sistema dinámicos de DNS como “NoIP”. • Aprovechar los recursos gratuitos de la Web 2.0: • Sistemas de bitácoras o blog en “WordPress”, “Blogger”, etc. • Capturas de pantallas, fotos de eventos, etc en “Flickr”, “Google Picasa”, etc. • Publicar vídeos, demostraciones, screencats en “Google Video”, “YouTube”, etc. • Compartir sus presentaciones, laminas usando “SlideShare”. • Redacta artículos y manuales en “Wikipedia”, “Wikilibros”, etc. ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre Herramientas de trabajo colaborativo :: Continuación Todo proyecto de software libre ha de tener espacio para desarrolladores, a todos los niveles: desde poder informar de fallos y hacer seguimiento de los mismos, hasta contribuir de forma significativa en el proyecto. En todos los proyectos hay un coordinador (“Líder”) o un grupo de coordinadores que señalan las direcciones a seguir, deciden si aceptar o no contribuciones en la versión de “oficial” y establecen cuándo se han de publicar nuevas versiones. Herramientas imprescindible para la coordinación y el manejo de proyectos grandes: • Listas de correo de desarrollo. • Sistemas de control de versiones (CVS, SVN, etc). • Sistemas de seguimientos de fallos (Bugzilla, Debian BTS, etc). ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre FOSPhostsites Existen varios sitios que ofrecen hospedaje de Free and Open Source Project y a continuación se en listan algunos: • SourceForge.net (http://sourceforge.net/) • freshmeat.net (http://freshmeat.net/) • Savannah (http://savannah.gnu.org/) • ourproject.org (http://ourproject.org/) • Code Google (http://code.google.com/) • FSL Sistemas Mérida (http://www.fsl.fundacitemerida.gob.ve/) • Plataforma para el Desarrollo de Software (http://www.fsl.cenditel.gob.ve/) ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre Publicación :: Aspectos legales • Copyright: autor(es), organización (empresa, fundación, comunidad...) • Añadir información de Copyright y licencia a todos los ficheros. • Estudio de licencias: todos los autores deben estar de acuerdo en qué licencia usar, y todo el software usado ha de ser compatible con la licencia elegida. Este punto es sumamente importante; ha habido multitud de casos de problemas de compatibilidad entre unas licencias y otras: • KDE. • syslinux / Turbo Assembler / masm. • Kernel de Linux / módulos propietarios / firmware. ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre Publicación :: Buenas prácticas al liberar • Anunciar el software, (grupos de noticias, blog, lista de correo, chat irc, foros de discusión). • Documentar la distribución del sistema. • Poner el software donde pueda bajarse (incluido el fuente). • Realizar publicaciones frecuentes. • Simplificar el proceso de compilación e instalación (incluyendo empaquetamiento). • Limpiar y organizar el código fuente. • Preparar el software para que sea fácilmente adaptado a otros idiomas. • Montar una infraestructura para favorecer la colaboración. • Encargarse de gestionar contribuciones, parches, modificaciones y sugerencias. ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre Publicación :: Publicidad Para que el público sepa que el producto existe, este ha de anunciarse: • Listas de correo. • Grupos de news. • Congresos, conferencias, seminarios. • Publicidad tradicional: anuncios de revistas, banners, publicidad impresa, audiovisual (TV, radio), etc. • Sourceforge, Freshmeat, Savannah, Berlios, Slashdot, BarraPunto, FSL, PDSL. En la medida de lo posible, hay que intentar que las diferentes distribuciones incorporen el proyecto de serie. ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre Publicación :: Empaquetamiento y distribución • Es muy recomendable ofrecer tanto fuentes como binarios. • Proporcionando diferentes medios para las descargas (FTP, HTTP, rsync, etc). • Y desde diferentes servidores (mirrors propios, Sourceforge, FSL, PDSL, etc). • Es aconsejable ofrecer varias versiones del producto. En caso de que haya distintas ramas de desarrollo, indicarlo claramente. • Tanto fuentes como binarios, la documentación técnica (instalación y desarrollo) como de usuario (interfaces, procedimientos, etc) han de incluir información acerca del copyright, es decir, la licencia. ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre Publicación :: Empaquetamiento y distribución :: Continuación • Es importante seguir normas concretas para la publicación de paquetes de software como: la Debian Policy, Linux Standard Base, Filesystem Hierarchy Standard, etc. ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre Publicación :: Distribución de binarios En el caso de los binarios, es recomendable ofrecerlos: • Empaquetado para distintas distribuciones (Debian, Redhat, etc). • Utilizando diferentes versiones de distribuciones, bibliotecas, etc. • Versiones para diferentes arquitecturas (i386, powerpc, 64bit, SPARC, etc). Además, es aconsejable ofrecer versiones lo más independiente posible de distribución, en formato .tar.gz y, a ser posible, con algún instalador y desintalador automático, para poder ajustarse a distribuciones no previstas. Sin embargo, la mayor parte de los proyectos no distribuyen binarios y dejan esta labor para los creadores de distribuciones. ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre Publicación :: Cuidado con la imagen Sólo después de visualizar las siguientes impresiones del producto se pasará a evaluar realmente el mismo. Importante que cada una de estas impresiones sean buena. • Primera impresión: la Website, es decir, el Sitio de referencia o página web. • Segunda impresión: la instalación y configuración. • Tercera impresión: los demostraciones (demos), capturas de pantallas (screenshot). ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre Publicación :: Sitio de referencia (página web) Según lo que se quiera, la infraestructura necesaria será distinta. Para crear fidelidad en los usuarios y que se sientan contentos, es necesario tener un sitio de referencia (página web) donde se encuentre: • Información general acerca del proyecto. • Noticias, Eventos, Páginas de descargas de software (fuentes o binarios). • Documentación, tutoriales, ejemplos, capturas de pantallas, etc. • Comunidades, lista de correo, foros, etc. • Proyectos relacionados. • Canales de soporte: informes de erratas, cómo contactar a los autores o desarrolladores, etc. Existen proyectos importantes sin sitio de referencia (kernel de Linux). ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre Tiempo de dedicación al proyecto Además del desarrollo hay que tener en cuenta: • Gestión de infraestructura (100 / 20) • Coordinador de desarrollo, incluyendo control de calidad (40200 / 20) • Atención al sistema de control de errores (¿? / 1015) • Mantenimiento de documentación e información en línea (60 / 10) • Relaciones publicas (¿? / 20) Proyecto de complejidad media (horas inicio / horas por semana) Segun “Open Source as a Business Strategy”, Brian Behlendorf ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre Conclusiones • No hay recetas universales. Hay proyectos que siguen todas las normas y fracasan; hay proyectos que no siguen ninguna o casi ninguna y tienen mucho éxito. • Hay que ponérselo fácil a los usuarios, atraerlos y crear fidelidad con el proyecto. • La publicidad es sumamente importante; solo de esta manera el proyecto puede ser conocido. • Es importante tener una continuidad; que la página web este continuamente actualizada, que haya noticias modernas, que salgan versiones nuevas periódicamente, etc. • La mejor manera de tener éxito es que guste entre la comunidad y difunda de unas personas a otras. ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre Referencias • “Montaje de un proyecto libre”, por Jesús M. González Barahona. Mayo 2002. • “Montaje de un proyecto libre”, por Juan Cépedes. 25/06/2004. (http://cursosobre.berlios.de/curso/transpas/jgb/montajeproyectos.pdf) • “Open Source as a Bussiness Strategy”, por Brian Behlendorf (en Open Sources, Voices from the Open Source Revolution) (http://www.oreilly.com/catalog/opensources) “Whether and How To Publish Software Under an Open Source License”, por Sébastien Blondeel (http://publish.idealx.org/) • Extreme Programming: A Gentle Introduction, por Don Wells (http://www.extremeprogramming.org/) ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre Referencias :: Continuación • Plantillas de la metodología de la FSL, por Fundacite Mérida, CENDITEL. Mayo 2007. (http://sistemas.fsl.fundacitemerida.gob.ve/projects/plantillas/) • Web 2.0 Wikipedia, la enciclopedia libre (http://es.wikipedia.org/wiki/Web_2.0) ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre Sitios en Internet Organizaciones Nacionales en Software Libre • VELUG Linux de Venezuela (http://www.velug.org.ve/) • GLOVE – GNU/Linux Organizado de Venezuela. (http://www.glove.org.ve/) • GUGVE Grupo de Usuarios GNU de Venezuela. (http://www.gnu.org/gugve/) • SOLVE Software Libre de Venezuela. (http://www.solve.net.ve/) • Debian Venezuela. (http://www.debianvenezuela.org/) • GULMER Grupo de Usuario Linux Venezuela. (http://www.gulmer.org.ve/) • GUSLA Grupo de Usuarios Linux de la ULA. (http://www.ula.ve/gusla) • ULANIX. (http://nux.ula.ve/) ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre Sitios en Internet :: Continuación Organizaciones Gubernamentales Nacionales • Ministerio de Ciencia y Tecnología (http://www.mct.gob.ve/) • Centro Nacional de Tecnologías de Información CNTI (http://www.cnti.gob.ve/) • Software Libre – CNTI (http://www.softwarelibre.gob.ve/) • Red Nacional de Desarrollo e Integración de Software Libre (https://www.rinde.gob.ve/) • CENDITEL (http://www.cenditel.gob.ve/) • Fundacite Mérida (http://www.fundacitemerida.gob.ve/) • ASL Fundacite Mérida (http://asl.fundacitemerida.gob.ve/) ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre Sitios en Internet :: Continuación Recursos de la Web 2.0 • NoIP (http://www.noip.com/) • WordPress (http://www.wordpress.com/) • Blogger (http://www.blogger.com/) • Flickr (http://www.flickr.com/) • Google Picasa (http://picasaweb.google.com/) • Google Video (http://videos.google.com/) • YouTube (http://www.youtube.com/) • Slide Share (http://www.slideshare.net/) • Wikipedia (http://www.wikipedia.org/) • Wikilibros (http://www.wikibooks.org/) ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre Sitios en Internet :: Continuación FOSP hostsites • SourceForge.net (http://sourceforge.net/) • freshmeat.net (http://freshmeat.net/) • Savannah (http://savannah.gnu.org/) • ourproject.org (http://ourproject.org/) • Code Google (http://code.google.com/) • FSL Sistemas Mérida (http://www.fsl.fundacitemerida.gob.ve/) • Plataforma para el Desarrollo de Software (http://www.fsl.cenditel.gob.ve/) ¡Desarrollo colaborativo para todos!
Montaje de un proyecto de Software Libre ¡Gracias por su atención! ¡Visita mi Blog! http://lcaballero.8k.com/ ¡Visita y descarga mis trabajos! http://www.slideshare.net/lcaballero/ ¡Escribeme! lcaballero@linuxmail.org leonardocaballero@gmail.com ¡Desarrollo colaborativo para todos!
Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...
In this presentation we will describe our experience developing with a highly dyna...
Presentation to the LITA Forum 7th November 2014 Albuquerque, NM
Un recorrido por los cambios que nos generará el wearabletech en el futuro
Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...
Microsoft finally joins the smartwatch and fitness tracker game by introducing the...
Montaje de un proyecto de Software Libre ... Aportando a un Gran proyecto de Software Libre ... ¿Qué es Un Software Libre? 0 1 2 3 Libre Manejo ...
Read more
... de software libre ... Montaje de un proyecto de Software Libre - v0.12 ... http://www.slideshare.net/lcaballero/montaje-de-un-proyecto-de-software ...
Read more
Con v0.12 ya se podía hablar de Linux como un sistema ... totalmente libre, se inició el proyecto ... software ya es un asunto muy ...
Read more
Durante esas semanas el proyecto sufrió un ... Con v0.12 ya se podía hablar de Linux como un sistema ... Linux es un sistema operativo libre de ...
Read more
... NC 3 1 2 5 C0 4 V0 12/24 Vcc Serie 14 ... realización de un proyecto) ... dirección libre. Guía Práctica de Software para PLC ...
Read more
ETAPAS DE DESARROLLO DE UN PROYECTO ... INFORMACION 1.1.2 ESPACIO PARA LA LIBRE OPINION Y EQUILIBRIO EN LOS ... tipo de montaje utilizados como ...
Read more
Tor lanza un proyecto para hacer de Android un sistema mucho ... quejándose de un fallo en su montaje que ... Angry Birds Holiday v0.12.0 ...
Read more
Add a comment