Contribuir a un proyecto de código abierto: cómo comenzar

Los proyectos de código abierto han dado lugar a una gama de software útil a lo largo de los años. ¡Muchas de las grandes tecnologías que usamos hoy nacieron del desarrollo de código abierto! Android, Firefox, reproductor multimedia VLC, MongoDB, Linux, Docker y Python, por nombrar algunos.

Incluso muchos de los gigantes tecnológicos se dan cuenta del beneficio y permiten a sus empleados tomarse un día libre y dedicar su tiempo a proyectos de código abierto. De hecho, muchos tienen proyectos de código abierto.

Sin embargo, la gran mayoría de los contribuyentes a proyectos de código abierto no trabajan para gigantes tecnológicos; cualquiera puede dejar su huella en una pieza importante de software abierto o crear su propia "próxima gran cosa". Ser parte de un proyecto de código abierto también puede ayudarlo a mejorar sus habilidades, aprender algo nuevo, obtener mentoría o formar amistades de por vida. Contribuir a proyectos de código abierto debería ser mutuamente beneficioso tanto a corto como a largo plazo. Muchas empresas contratan activamente desarrolladores de tiempo completo de aquellos que más contribuyen a un proyecto, por lo que hacerlo puede ser una excelente manera de mostrar sus habilidades, mientras aprende nuevas.

Este artículo combina algunos consejos que compartimos con aquellos que buscan involucrarse con MindsDB, y aunque cada proyecto es diferente, con suerte, estas ideas lo ayudarán a involucrarse en cualquier proyecto de código abierto.

Página de GitHub de MindsDB

Antes de hacer tu primera contribución

1. Evalúate a ti mismo:

El primer paso es evaluar cualquier habilidad técnica o no técnica que tenga o desee mejorar. Pregúntese dónde puedo agregar el mayor valor. Esto podría ayudar directamente a escribir código, probar errores o incluso ayudar a mejorar la documentación para que otros puedan usar el software de manera más eficiente.

2. Conozca GitHub

Casi todos los proyectos de código abierto utilizaron un sistema de control de versiones, una herramienta que ayuda a fusionar código nuevo en el proyecto (el "repositorio" principal). Por lo general, la colaboración se centra en un sitio web que aloja el repositorio central. Estos sitios web incluyen Github, Bitbucket y Gitlab, aunque Github es, con mucho, el más popular y el que usamos aquí en MindsDB.

En términos generales, los sistemas de control de versiones permiten realizar un seguimiento de todos los cambios en un proyecto sin guardar varios archivos. Cree una cuenta en Github, inicie sesión y explore todas las pestañas diferentes en la parte superior del sitio web. Aquí encontrará información sobre Github, guías de desarrollo, proyectos de código abierto, eventos, conferencias, etc. Puede aprender todo sobre los conceptos básicos de un GitHub siguiendo esta guía aquí.

3. Busque proyectos relevantes y únase a la comunidad.

Busque proyectos relevantes en Github en función de sus habilidades. Puede usar Github Explore para este propósito o registrarse en Code Triage para recibir un correo electrónico sobre un problema diferente todos los días. Al elegir un proyecto para comenzar, busque un proyecto que se mantenga activamente (muchas confirmaciones) y que tenga muchos problemas. Una vez que haya encontrado sus proyectos relevantes, Star & Fork el proyecto, suscríbase a su lista de correo y su canal flojo. Esta es la mejor manera de obtener ayuda si está atascado en la configuración del proyecto o haciendo su primera contribución.

Haciendo tu primera contribución

1. Juega con el software: Encuentra errores

Primero, pruebe el software, instálelo y juegue, intente romperlo, vea si hace lo que dice en la caja. Este es un gran lugar donde puede comenzar a agregar valor muy fácilmente, informando cualquier problema que encuentre. Es probable que cada proyecto tenga una plantilla ligeramente diferente para informar problemas, pero esencialmente todos contienen información similar. (Puede encontrar la plantilla de problemas de MindsDB aquí)

2. Explore los problemas existentes

Una vez que haya descubierto el proyecto al que desea contribuir, explore su repositorio de Github, lea los documentos y vaya a la pestaña de problemas. Aquí encontrará todos los temas abiertos en los que puede trabajar. Estos problemas pueden ser de nivel principiante a nivel avanzado. Si el repositorio se mantiene adecuadamente, los problemas se etiquetarían con "principiante", "primerizos", "buscados por ayuda", etc. para que pueda trabajar en las tareas más fáciles para ganar confianza y experiencia con el proyecto.

3. Ayuda a mejorar la documentación

Sin embargo, no tiene que codificar de inmediato. Puede contribuir a la documentación, crear la guía del desarrollador, ayudar a otras personas a resolver sus problemas, etc. Lea la documentación y, si cree que falta algo, puede ser un excelente primer lugar para contribuir. Puede plantear un problema o, si se siente lo suficientemente seguro, puede agregar las partes que faltan usted mismo. Puedes echar un vistazo a los documentos de MindsDB aquí.

4. Sugerir nuevas funciones

Si le gusta el proyecto y lo encuentra útil, también puede comenzar a solicitar nuevas funciones para ayudarlo a mejorarlo. (Puede encontrar nuestra plantilla aquí) O incluso mejor, puede intentar agregarlos usted mismo.

La catedral y el bazar

Un libro clásico sobre OSS es La catedral y el bazar. Explora el desarrollo de estilo "bazar", un enfoque de abajo hacia arriba que da poder a los desarrolladores y los usuarios. Comparándolo con el estilo de "catedral", un enfoque de arriba hacia abajo donde el poder recae en los gerentes y propietarios de productos.

Son estas ideas las que dieron lugar a enfoques de trabajo como el descrito en el Manifiesto Ágil. Pero no importa cuánto hayan intentado las corporaciones emular un enfoque de "bazar" para el desarrollo, no pueden hacerlo tan bien como los proyectos de código abierto.

En el mundo de los proyectos corporativos, los arquitectos, gerentes y propietarios de productos lideran el camino. En el mundo del código abierto, son los usuarios y los desarrolladores los que dan forma a las especificaciones.

El software de código abierto es excelente porque aprovecha la "inteligencia colectiva" de sus desarrolladores y usuarios. La mayoría de los desarrolladores en un proyecto de código abierto provienen de su base principal de usuarios, la mayoría de los "líderes" en un proyecto de código abierto son simplemente los desarrolladores que aportan la mayor cantidad de ideas y código.

Este enfoque de "bazar" no es necesariamente mejor que el enfoque de "catedral", pero vale la pena probarlo. Puede dar a un nuevo desarrollador mucho poder sobre una pieza de software, independientemente de criterios externos como la edad o la antigüedad dentro de la organización. La única señal de intercambio es el código, cuanto más valiosa sea la contribución, más influirá en el diseño.

Por lo menos, debe trabajar en algunos proyectos de código abierto para experimentar este estilo ascendente de diseño de software.

Próximos objetivos como desarrollador de código abierto

1. Asistir a conferencias

Como desarrollador de código abierto, puede asistir a conferencias y eventos relacionados con la codificación y la tecnología. Puede consultar diferentes eventos en Github Explore e intentar asistir a los eventos cercanos a usted. MindsDB organizará reuniones a lo largo de 2019; si desea mantenerse al día con todo MIndsDB, puede suscribirse a nuestra lista de correo aquí

2. Obtenga pago por el desarrollo de código abierto

En términos generales, no se le paga por hacer desarrollo de código abierto ya que la mayor parte del trabajo realizado es voluntario. Sin embargo, si no puede permitirse el lujo de pasar tiempo no remunerado en el desarrollo de código abierto, puede hablar con su empleador y presentar la idea de un proyecto que también puede interesarle o encontrar un proyecto que le pague a su desarrollador de código abierto. Puede obtener más información de la guía de Github sobre cómo se le paga por el desarrollo de código abierto. Muchas compañías (incluida MindsDB) también contratan o pagan a los principales contribuyentes por su trabajo.

3. Brille su CV, sea un mentor y postule a competencias de código abierto

Debe mencionar todos los proyectos a los que ha contribuido en su CV o agregar un enlace a su cuenta de GitHub en su CV o en una carta de presentación. La mayoría de los empleadores están impresionados con tales elogios y prefieren tales candidatos para la contratación.

También puede convertirse en un mentor para las personas que son nuevas en el desarrollo de código abierto. Es hora de retribuir a la comunidad y orientar a los que recién comienzan. Existen varios programas en los que puede optar por convertirse en mentor, p. Google Summer of Code, Rails Girls Summer of Code, Outreachy, etc., o simplemente ayudando a las personas respondiendo a sus consultas en las listas de correo o StackOverflow.

Adam Carrigan es cofundador de MindsDB, una herramienta fácil de usar para agregar aprendizaje automático a sus proyectos y resolver desafíos de datos. Sigueme en Twitter

También puedes seguir nuestro proyecto en GitHub y Twitter