Mejorar competencias profesionales gracias al Open Source
El auge de los proyectos de código abierto no sólo nos ha brindado grandes obras de software, sino que nos ha dejado ver sus entresijos. Las plataformas de proyectos libres son fuentes de conocimiento descomunales, basta con citar github, bitbucket y launchpad para poner deberes que ni el más aplicado podrá terminar. En ellas encontraremos proyectos de la envergadura de git, bitcoin, ubuntu o el ERP odoo, por citar algunos de índoles totalmente distintas.
Este es el primer artículo de una breve serie en la que repasaremos maneras de mejorar nuestras competencias profesionales gracias al open source, con el objetivo de ser desarrolladores más competentes o interesantes para potenciales empleadores.
LEER
Tan básico que parece una perogrullada, pero NADA nos servirá más para arrancar como desarrolladores profesionales que ver el código de otros.
¿Cómo leer un proyecto de software libre?
Elige un proyecto que te motive por la temática que trata o el lenguaje que utiliza. Navega por la estructura de directorios, lee la documentación y busca sentido a cómo se organiza.
Si no sabes qué proyecto leer, piensa en una herramienta que te interese, haz una búsqueda en https://github.com/explore con los términos que la definan y adelante.
No importa si a priori nada tiene sentido, puedes suscribirte a las actualizaciones pinchando en Watch y así recibirás notificaciones de los cambios y conversaciones en torno al proyecto.
¿Qué vamos a aprender leyendo proyectos Open Source?
Aprenderemos sobre la forma de organizar un proyecto de software, aspecto clave al trabajar en equipo.
Aprenderemos también a navegar con soltura por el código que otros han escrito, sufriendo así las consecuencias que puede tener un código sin comentar o una estructura sin definir. Puede parecer masoquista (y posiblemente lo sea), pero es importante saber a qué expondremos a nuestros compañeros si no seguimos ciertas prácticas recomendadas.
Obtendremos, ante todo, la agilidad que nos permitirá llegar antes a la raíz de los problemas.
¿Cómo se traduce esto en competencias profesionales valiosas?
Llegar al diagnóstico de un error de programación puede consumir muchas energías y, aunque es el paso más importante, no es el más resolutivo. Por eso conviene que seamos capaces de hacerlo antes de estar agotados.
En un proyecto bien organizado, estas labores de arqueología deberían quedar obsoletas por un buen conjunto de tests, pero si echas un vistazo a las plataformas de código abierto citadas, verás que son menos comunes de lo que a todos nos gustaría, lo que convierte esta habilidad tan ingrata para muchos en una virtud tan escasa como necesaria.
DOCUMENTAR
Por romántica que sea la figura del hacker solitario, en la actualidad un proyecto de software es un trabajo en equipo y en el ámbito del Open Source la documentación es la principal forma de sumar adeptos a nuestra causa. Una mala documentación es una invitación a la huida.
¿Cómo documentar un proyecto de software libre?
Será útil ponernos en contacto con los responsables del proyecto para que nos indiquen el formato a utilizar o dónde debe ubicarse en la estructura del proyecto.
A continuación, nuestra labor será identificar las áreas a documentar, dando mucha importancia a la descripción de qué hace el proyecto, a quién va destinado y cómo empezar a usarlo. Iremos unos pasos por delante de nuestro público objetivo, leyendo sobre el proyecto, para plasmar después lo aprendido. No importa si necesita corrección, la documentación estará tan viva como el propio proyecto.
¿Qué vamos a aprender documentando?
Pocas cosas nos harán más expertos en un proyecto que documentarlo. Esta tarea consiste en entender el código, traducirlo a una jerga común y hacerlo lo más interesante posible para quienes se van incorporando en fases posteriores.
La atención prestada a problemas que un desarrollador se encontrará en el camino demostrará que no sólo sabemos la teoría, sino que hemos experimentado antes de ponernos a escribir.
¿Cómo se traduce documentar en competencias profesionales?
Documentar con éxito un proyecto implica entenderlo al detalle y también a un nivel más general.
Podrás decir que has escrito el libro sobre la materia. Además hay proyectos que no terminan de arrancar en países de habla hispana por el sencillo hecho de no disponer de documentación en nuestro idioma. Traducir lo que otros han documentado puede ser extremadamente útil para la comunidad, además de resultar tarea más sencilla si es nuestra primera experiencia.
¿Por dónde empezar a documentar?
Una vez leído un proyecto, tendrás muchas dudas, cada una de ellas puede ser un tema de la documentación.
Además, por si hubiera pocos proyectos por los que empezar a escribir manuales, StackOverflow ha lanzado recientemente su apuesta por la documentación, prometiendo hacer por ésta lo que ya hizo por las preguntas y respuestas, ¡casi nada!
En el próximo artículo hablaremos de desarrolladores, gestión de la calidad y gestión de proyectos. Veremos cómo, según el enfoque a nuestra contribución en software libre, podemos ser detectados como especialistas en cada una de estas áreas o demostrar competencias transversales muy interesantes si podemos aportar en todas ellas.