Archive for the 'Free Software' Category

Jul 24 2008

debian - fostering innovation

Published by Rudy Godoy under Debian, Free Software

Latest months have been of great improvement and empowerment on my life; say by my return to the academic life, more of the crazy corporate and business world and other changes on my own (read self hacks) have been keeping me busy and on constant training. Sadly, and not by intent, this have impacted on my direct contribution to the free software ecosystem and interact and work together with the brave gnu world out there. However I’ve been doing some little work and also finding ways to keep cooperating but now from another position. Today I’d like to present the first of this new form of contribution to the free software ecosystem, and specially to the Debian Project.

In the last couple of months I’ve been working on a paper which intends to offer a (not so) new -as you might notice after reading it- approach to what the Debian Project have been managing to produce and what can be done to keep doing it better in the new escenery that we are and will be living in the upcoming years.

My work describes the way Debian have been sucessfully producing lead-users, as described by Eric Von Hippel’s Democratizing innovation book, since it’s conception and what elements were key to have done so. Previously it takes a look on how the process of innovation is really done. Then it describes the current and future world’s escenery according research and current trends, later it makes links between them and gives some ideas for us to keep fostering innovation and play a key role in the free software ecosystem.

With this work my intention is for us to understand what we are, what are we good doing, and how we can keep rocking! I want Debian to look further and be the free software development cutting edge project and atract bright people to work on what they are passionate about.

Hopefully I’ll be in Mar del Plata to discuss about this and also have some fun with you guys I haven’t seen in years!

I’d appreciate any comment or feedback to this. My intention is to turn this work into a collaborative fashion that allow us to make our project much more wonderful!

The full paper is here to download (pdf): http://stone-head.org/talks/debconf8-fostering-innovation.pdf

No responses yet

Jul 08 2008

Aprendiendo del ecosistema de software libre

El pasado 24 de junio a invitación del Chapter Lima del PMI ofrecí una charla respecto a los aspectos o practicas de gestión de proyectos que las organizaciones o empresas pueden rescatar del ecosistema de software libre e incorporarlos en sus proyectos, en específico los que tienen que ver con desarrollo de software.

La objetivo principal, más allá de dar a conocer el software libre como tal, era establecer y reconocer prácticas de gestión y procesos que se puedan rescatar e incorporarlos en el desarrollo de proyectos de software de las organizaciones.

La charla inicio ofreciendo un panorama general de los actores que participan en el desarrollo de proyectos de software libre, como podemos ver en el gráfico adjunto, a saber:

Ecosistema de software libre

  • Proyectos en sí,
  • Usuarios finales: que incluye a personas, empresas, sector público, organizaciones sin ánimo de lucro,
  • Asociados de los proyectos, que son las organizaciones que apoyan a dichos proyectos, caso gobiernos o empresas,
  • Partners de los proyectos, que pueden ser empresas u otros proyectos que ofrecen infraestructura base a los mismos,
  • Comercializadores de los proyectos, que son las empresas que se dedican a dar un soporte y canal comercial a los productos desarrollados bajo este modelo de licenciamiento.

Luego de esto explique el esquema de trabajo y gestión de los proyectos de software libre, la forma de organización, su estructura jerarquica, infraestructura de trabajo, interacción entre el grupo humano, etc.

A partir de esta información rescatamos algunos valores o prácticas que las organizaciones que realizan desarrollo de software pueden incorporar para mejorar su gestión y procesos de desarrollo.

Entre estos podemos mencionar a los siguientes:

Confía en tu equipo

Esto se refiere básicamente a que la información acerca del desarrollo, incidencias y progreso del proyecto se maneje de manera abierta, sin ocultar información a nigún integrante del equipo. Todos deben estar claros de lo que ocurre. Un esquema bastante similar al definido por Debian y lo que conocemos como el rol de «dictador benevolente».

Revisa todo, prueba todo

Que trata de resumir la necesidad de incorporar y establecer prácticas de testing en el proceso de desarrollo y aprovechar las herramientas de software, o construir las necesarias, para establecer un ciclo constante de auditoria general y automatización del proceso de pruebas de software. De esta manera a medida que se va desarrollando el proyecto también se tiene a la par un proceso que puede garantizar la validación de su funcionalidad.

Todos los desarrolladores son iguales

Algo que no se refiere a las características personales o de formación, sino a la equidad y valoración de las ideas o aportes de los desarrolladores, sean los más experimentados en el equipo o novatos que se acaban de incorporar. Cualquiera de ellos debe ser escuchandos y sus aportes o ideas respecto al desarrollo o diseño de los proyectos se debe tener en cuenta de la misma manera.

Y finalmente, la premisa que no debemos olvidar:

La mejor manera de finalizar un proyecto de forma exitosa es hacerlo de la forma correcta

Que básicamente nos recuerda que aunque tengamos los procesos definidos, las herramientas necesarias y la infraestructura de soporte para el desarrollo de nuestros proyectos; si los primeros se ignoran y no se siguen desde el inicio del proyecto, por razones de tiempo, urgencia, etc; es mucho más probable que a medida que se desarrolle el proyecto ocurran problemas que si se empieza de la forma correcta.

Esto es lo que cuenta al final del día y puede ser el factor crítico que conduce a pérdidas de tiempo, dinero y time-to-market para una organización. Para que un proyecto sea exitoso se requiere la participación de todos los actores involucrados, que va desde la gerencia hasta el desarrollador. No se trata simplemente de dar indicaciones al programador y encerrarlo un número de días esperando que entregue un resultado maravilloso.

Fue interesante el aprovechar que me antecedio una charla sobre  SCRUM, para vincular muchas de estas practicas que tambien son promovidas por frameworks de desarrollo ágil como éste, que fue expuesto por Tobias Mayer de AgileThinking.net.

Es posible que existan otras prácticas que los proyectos de desarrollo de software en las empresas puedan incorporar, si has identificado o aplicado alguno ¡dejanos saber!.

Existe más información sobre el tema que he tomado como referencia para esta charla. A continuación pongo algunos enlaces de referencia:

No responses yet

May 17 2008

Software libre: ¿Tenemos claro de que se trata?

Published by Rudy Godoy under Free Software

Cuando Richard Stallman, graduado en física por la universidad de Harvard que trabajaba como programador del laboratorio de inteligencia artificial del MIT, decidió renunciar a éste para iniciar su trabajo con el proyecto GNU en donde define las bases de lo que hoy conocemos como software libre a través del manifiesto GNU, posteriormente formalizado en una licencia, que básicamente expone un esquema de trabajo y un modelo de licenciamiento.

Este esquema de trabajo intenta mantener la cultura hacker de aquellos años donde se daba un valor muy alto al compartir y a la colaboración, aspectos que él observo se estaban perdiendo y deseaba mantener. Es por esto que inicia el proyecto GNU bajo el precepto de desarrollar un sistema operativo desde cero bajo este modelo de manera que se cuente con un base sobre el cual desarrollar un sistema computacional que se mantenga bajos los preceptos enunciados y resguardados por la licencia GNU GPL.

Este hecho pues, no represento más que una determinación por seguir con un modelo que a su criterio tendría más beneficios frente a los otros que empezaban a aparecer en la industria. En ningún momento el proyecto tuvo como objetivo el innovar, desarrollar nuevas tecnologías, o servir de arma contra las grandes corporaciones o el sistema.

Durante los años siguientes este espíritu se ha mantenido tal cual, en diversas ocasiones Richard ha vuelto a reafirmar que el propósito no es hacer el mejor software o usar las técnicas más avanzadas de la computación. El objetivo es mucho más simple: tener software que se pueda copiar, modificar, compartir y distribuir libremente (léase sin restricción).

Por esto, el software libre representa sencillamente un modelo de licenciamiento que tiene detrás un esquema de trabajo particular. Ciertamente alguno de los aspectos de este esquema de trabajo han tenido y tienen un gran impacto en la propia industria de software, pero en otros no son más que réplicas de entornos o prácticas desarrolladas en los entornos académicos, en donde nació.

Por ende, si nos restringimos a los aspectos técnicos de la gran mayoría del software desarrollado bajo este modelo, está fuera de lugar calificar al software libre como “nueva tecnología”, “tecnología emergente”, u otros calificativos que hagan referencia de que esto es algo nuevo técnicamente, debido a que son aspectos totalmente distintos. Hablar de nueva tecnología queda fuera de lugar si vamos a mostrar a Linux, Apache, Firefox, etc. que son proyectos que replican algo ya existente: un sistema operativo, un servidor web, un navegador web. Ninguno de estos ha sido innovador ni mucho menos emergente, como si lo fue por ejemplo el primer navegador web Mosaic, desarrollado (como dice su autor Marc Andreesen) como un proyecto “renegado” de investigación académica.

Por el otro aspecto, que tiene más que ver con valores y sociedad, y en donde algunas personas parecen haber encontrado el eslabón perdido al etiquetarlo como “filosófico” para usarlo como trampolín para propalar sus propias ideas políticas, tampoco se tiene como objetivo el realizar dichas actividades o propalar mensajes de cierta índole. Desde la existencia de la humanidad el acto de compartir ha sido una práctica valorada y que ha sido esencial para la subsistencia de la misma. Asimismo, las prácticas que están relacionadas con el proceso de desarrollo de software son en gran medida aplicación de trabajos desarrollados en el entorno académico.

Sin embargo, lo que ha hecho el software libre y el movimiento FLOSS es ponerlas en práctica, hacer evidente que se puede hacer cosas interesantes bajo este modelo, ha hecho voltear los ojos a la industria de software, a las empresas, a la sociedad. Hoy no existe alguna actividad que haya acogido alguna de las prácticas generalizadas como “opensource” dentro de su propio trabajo, desde Wikipedia, las comunidades de eR&D, el modelo de las aplicaciones 2.0, las empresas, los políticos, etc. Hoy se habla de Enterprise 2.0, Politica 2.0, eGov 2.0, y tal. Hoy podemos decir que este 2.0 tiene un 1.5 de ingredientes gracias al software libre.

Un modelo de licenciamiento, junto a un esquema de trabajo han hecho esto posible. Es por eso que personalmente es un orgullo formar parte de su desarrollo y aportar algo a la sociedad del futuro. Y es la misma motivación que me llevo a involucrarme en esto luego de leer el manifesto GNU hace algo más de 10 años, sólo eso, nada más.

Cada uno de los otros temas se desarrollan en su propio entorno por quienes tiene interés en hacerlo, no hay que mezclar las cosas. Siempre es bueno volver revisar los fundamentos sobre lo que se construye algo.

One response so far

Apr 15 2008

Software libre en la empresa

El pasado 14 de marzo ofreci una charla en el Linux Week 2008 organizado por Linux-IDES de la PUCP. por invitación de Genghis. La temática estaba abierta asi que tuve un momento de incertidumbre acerca de qué hablar. Mis opciones estaban entre algo super técnico, tipo sistemas operativos, o algo relacionado con la empresa, por la naturaleza del evento académico.

Finalmente, y gracias a una sugerencia, decidi hablar sobre algunos temas relacionados a las cosas en las que estoy involucrado en estos últimos meses. Así que me propuse hablar del estado del arte del software libre en la empresa. Sin embargo, durante el proceso de trabajar mi charla, que también tuvo su propia historia, me animé por abrir un poco el panorama y hablar de innovación y las tendencias actuales en el sector de empresas de tecnología.

Ya había tocado el tema en la conferencia Día Debian en la UNI, así que esta vez tenía que escalar un poco más y ofrecer algo más interesante que sirva a los asistentes. Me propuse, entonces, ensayar el famoso método Lessig para las presentaciones de apoyo y con el fin de controlar mis tiempos.

En mis últimas charlas he ido dejando de utilizar presentaciones en forma progresiva, incluso la de la UNI la hice bajo el precepto de que: si voy a mostrar cosas de la red, las muestro directamente y no hago ninguna presentación. Mi presentación es la propia actividad que hay en la red. Aquella vez, solo fui con una lista de los enlaces que mostré.

Para esta charla quize apoyar mi «speech» con material visual que ayude a reforzar la idea que estoy transmitiendo. Estoy convencido de que el utilizar las presentaciones de una manera distinta, como por ejemplo para leer el «speech» u otros, es una falta de respeto al público (que también sabe leer).

Ya que iba a utilizar el método Lessig tendría que esforzarme más, primero para tener un mejor orden en la transmisión de las ideas y segundo para controlar los tiempos y tratar de estar sincronizado con la presentación de fondo. Asi que estuve ensayando dos días para tener eso bajo control, creo que el resultado ha sido bastante bueno para esto que llamo «experimento». Me gusta experimentar el hacer las cosas de mejor manera cuando se puede, y he quedado contento (no conforme) con el resultado.

Volviendo al tema de la charla, me ha gustado lo que preparé. Empece con una reseña del inicio del software libre (rms, Linus, Ian), el modelo de negocio que existía en ese momento, las primeras empresas que se formaron. Luego, explique el tema de innovación disruptiva, para posteriormente hacer la relación con el modelo de desarrollo y negocios que se ha formado en torno al software libre.

Posteriormente revisamos el uso de este tipo de esquemas de desarrollo en entornos empresariales, donde cada vez son más importantes los conceptos de e-R&D, innovación, desarrollo de comunidades, el cambio del rol del consumidor a pro-sumidor. Tome como ejemplo a los startups 2.0 y explique cómo estos emplean estos modelos y conceptos que han hecho que sean mucho más exitosos que sitios similares pero con el enfoque tradicional (digg vs. slashdot, myspace vs. mtv.com, etc).

Revisamos la relación empresa-academia, algo que particularmente me interesa, y fue uno de los motivos por los que esta charla en la PUCP fué de particular importancia para mi. También trate el tema del Microsoft de hoy, que parece muy animado a promover el software libre, junto a otras empresas tradicionales. Finalmente hubo una interesante rueda de preguntas donde conversamos sobre innovación, oportunidades para estudiantes, modelos de negocio, realidad virtual, teletrabajo y los beneficios del publicar código.

He quedado muy contento con esta charla, ya puedes notarlo, y espero que se vuelva a repetir en algún momento y sirva para acercarnos más entre academia y empresa. Nuevamente agradezco la oportunidad a Genghis y el grupo Linux IDES.

Hoy me enteré que ya se ha publicado el vídeo de mi presentación, asi que aquí lo pongo. Las diapositivas no son «usables», ya que han tenido otro enfoque y son cerca de 200 (una cada 5 segundos, y de acuerdo al cáculo termine en media hora).

Si te interesa el material o los datos de referencia de temas que trate dejame un mensaje y actualizaré este post o te escribiré directamente.

Charla en la PUCP, Linux Week 2008

No responses yet