En esta entrada quiero transmitir mi opinión, es una opinión y cada uno puede tener la suya, sobre cuales son los mayores problemas en los proyectos que son Software Libre. El centrarse en este tipo de proyectos, es debido a que suelen tener unas características bastante especiales respecto a los proyectos comerciales (pocas personas, desarrolladores voluntarios y normalmente bajo presupuesto). Antes de que dejes de leer y digas, esto es un ataque más al Software Libre, te quiero decir que yo también soy un firme defensor del Software Libre y este artículo es para evitar esos errores.
1 ¿Documentación? Léete el código
Seamos realistas a nadie nos gusta documentar el código y dedicar parte de nuestro tiempo a ir comentando que hace cada cosa. Sin embargo esto es un pilar básico en todo proyecto medianamente decente que se precie, si queremos que los programadores usen nuestro proyecto, le tendremos que decir cómo funciona y qué hace cada cosa y no, no vale con decir léete el código, ahí está todo.
En los últimos años he usado varios proyectos grandes de Software Libre y sorprendentemente no traían ninguna documentación, pero es que tampoco incluían casi comentarios en el propio código fuente, así que para entenderlos tenía o bien que ejecutarlos paso a paso o bien ir siguiendo todas las funciones con lápiz y papel.
Este error se puede subsanar usando por ejemplo Doxygen como ya os contamos hace un tiempo.
2 ¿Colaboradores? Estoy mejor solo
Otra de las cosas que más me ha llamado la atención es que algunos proyectos están desarrollados por una única persona y aunque el proyecto cada vez es más grande, no tienen ningún interés en que colabores con él. En muchos casos porque como no hay documentación, te tendría que enseñar como funciona cada función del código fuente.
3 ¿Lista de tareas? Desarrolla algo y si me gusta lo incluyo
Este es un caso real que me pasó cuando intenté colaborar con uno de estos proyectos. Les comenté que qué tareas tenían pendientes por hacer y me dijo que todo estaba hecho y así que buscase otra funcionalidad que me pareciera buena para añadirla al proyecto. Yo pensé una y antes de empezar a picar código, hablé con quien llevaba el proyecto y me dijo, bueno tu hazlo y luego ya vemos si la incluimos. Con estas contestaciones es normal que muchos desarrolladores no colabores contigo, porque nadie quiere pasarse un mes haciendo algo, para que luego no se use y directamente digan: no me parece útil/bien hecho, así que lo tiro.
4 ¿Desarrolladores? Sólo si son expertos
Siguiendo con los puntos anteriores, me llamaba la atención mucho, que algunos sólo te aceptaban dentro del equipo de desarrollo si eras un experto en 3 tecnologías, 5 lenguajes y 21 patrones de diseño. Claro luego te dabas cuenta de que en muchos casos como no había lista de tares, no se dieron cuenta de que había tareas muy sencillas que las podría hacer un desarrollador de nivel medio y otras donde necesitaban a un experto. Normalmente este tipo de proyectos tienen un ritmo de desarrollo lento, porque las mismas personas que hacen el núcleo del software se encargan por ejemplo de colocar los botones en la interfaz de usuario.
5 ¿Reuniones para tomar decisiones críticas? Yo soy el líder supremo
El último de los errores que muchos comenten, es dirigir los proyectos como si fueran de tu propiedad. En muchos casos esto pasa con proyectos de tamaño medio-grande donde hay un conjunto de desarrolladores que llevan mucho tiempo en el proyecto pero que no tienen ni voz ni voto. En muchos casos debido a que las discusiones se acaban, cuando llega el creador del proyecto y dice esto lo creé yo y aquí mando yo. Las consecuencias, división en el equipo de desarrollo, varios forks a proyectos y el abandono por parte de algunos colaboradores.
Este tipo de situaciones, en algunos casos las he vivido en primera persona y en otros ha sido información que me ha llegado de fuentes fidedignas. Pero no quería acabar la entrada sin agradecer a aquellos desarrolladores que crean proyectos de Software Libre para que todos podamos ver y aprender de ellos. Además si contestan las dudas, apoyan a sus colaboradores y documentan el código, se merecen todo nuestro reconocimiento.