La guía definitiva para contribuir al código abierto

Te diré todo lo que sé sobre Open Source. Comencemos con algo simple. ¿Sabes qué es un producto? Un producto es algo que se puede consumir fácilmente, como un burrito en un restaurante. Pero para crear este producto, debe seguir algunos pasos. En el restaurante, tienes un chef que tiene una receta para este burrito. Siempre siguen la misma receta y la elaboran con los mismos ingredientes para garantizar la calidad adecuada en todo momento.

Contribuir al código abierto puede ayudarlo a ingresar al campo de la tecnología, cambiar su carrera o mejorar la actual. ¡Todo mientras ayuda a la comunidad!

En la mayoría de los restaurantes, si vas al chef y le preguntas: “Lo siento, me encanta tu burrito; ¿Podría conseguir la receta? " se negarían, esto no es de código abierto. Open Source es cuando, además del producto, también tienes acceso a todos los ingredientes y la receta, lo que significa que puedes replicar todo el burrito en casa.

Ahora imagina que comienzas a hacer este burrito, pero llegas a la conclusión de que quieres reducir la carne. Entonces lo reemplazas con aguacate. En ese caso, coges la receta, cambias la carne por el aguacate, sigues al pie de la letra el resto de pasos y compruebas lo que sale.

Puede resultar que su plato sepa mejor que la comida del restaurante. Si el restaurante funcionara como un proyecto de código abierto, entonces podrías ir al chef y decirle: “¡Oye, tu burrito es genial, pero le agregué aguacate y ahora es aún mejor! Puedes agregarlo a tu menú ".

El papel del chef es el de mantenedor del producto. Pueden aceptar las modificaciones o pueden decidir

que el aguacate es una mala idea y no encaja con el concepto del restaurante. De cualquier manera, al compartir sus modificaciones al proyecto, acaba de convertirse en colaborador.

¡Felicidades!

¿Qué hace un proyecto?

El navegador Firefox es un ejemplo de un proyecto de código abierto. Se compone de miles de líneas de código fuente y de instrucciones sobre cómo convertir este código fuente en un producto utilizable, como un navegador web. Este código está disponible públicamente, por lo que todos pueden buscarlo, leerlo, auditarlo o compilarlo. Cada persona que quiera modificar el comportamiento de Firefox puede realizar cambios en el código fuente y crear una versión personalizada. Además, todos pueden enviar esos cambios a los encargados del mantenimiento del proyecto.

Pero hay más en los proyectos de código abierto que solo el código. También contamos con interfaz de usuario y diseño gráfico. Y sí, incluso los programas de terminal como el editor Vim tienen interfaces gráficas.

¡No necesita codificar para contribuir al código abierto!

Además de la interfaz, también hay interacciones de usuario, usabilidad y algo llamado Experiencia de usuario (UX), todos los cuales han ganado popularidad en las últimas décadas. Si tiene experiencia en diseño, bellas artes o psicología, puede encontrar su nicho con UI / UX. Lo siguiente que comprende un producto son los medios, incluidos los sonidos, gráficos o videos. No todos los proyectos los tienen, pero tampoco son tan raros.

Sin embargo, la documentación es una de las partes que a menudo se pasa por alto. Una forma sencilla de contribuir es mejorar la documentación. Los redactores deben sentirse como en casa con esos temas. Los recursos de texto y las traducciones también presentan una entrada fácil.

Luego, está el marketing, que a menudo también falta en los proyectos de código abierto. Si puede solucionar este problema, toda la comunidad se beneficiará. Ayude a un proyecto con marketing, y esto también atraerá a más contribuyentes potenciales.

Y finalmente, está la parte legal, un componente bastante raro que se refiere principalmente a grandes proyectos. Hay abogados que se ocupan principalmente de cuestiones de código abierto y la mayoría de ellos ofrecen su tiempo como voluntarios.

Si puedes escribir prosa, dibujar, hacer música, eres un buen vendedor o un abogado: ¡la comunidad de código abierto te necesita!

Si se siente incapaz de diseñar, hacer cambios, escribir licencias, no se asuste. Puedes hacer otro tipo de contribución. Puede informar de un error o proponer cambios de comportamiento o apariencia.

¿Sabes que es lo mejor? Si cada miembro de la comunidad aporta un poco de tiempo, un poco de esfuerzo y un poco de experiencia personal, toda la comunidad obtiene un producto excelente, a menudo de forma gratuita.

¿No te sientes como un creador? Envíe un informe de error o emita una solicitud de función.

¿Por qué vale mi tiempo?

¿Por qué vale la pena contribuir al código abierto? ¿Por qué debería dedicar su tiempo a escribir propuestas o códigos o hacer traducciones en lugar de salir a caminar? Hay varias razones. Todos ellos parten de la premisa de que contribuir al código abierto es visible públicamente. Todos pueden ver lo que hacen los demás. ¡Y eso es genial!

Aumenta sus competencias

Si está escribiendo un fragmento de código, diseñando una interfaz o creando gráficos, está aprendiendo. Este es un gran ejercicio para quienes buscan un cambio de carrera. En Open Source, a nadie le importa si trabajas como desarrollador senior o como jardinero. Lo que importa es la calidad de la contribución que puedes aportar. Y una vez que demuestre su valía en un proyecto de código abierto, habrá adquirido una valiosa experiencia. Ya no debería sentirse como un impostor que acaba de terminar un campo de entrenamiento. Serás un miembro establecido de una comunidad con un historial que cualquiera puede verificar.

Esto funciona incluso si estás atrapado con una tecnología, pero imagina tu futuro con algo completamente diferente. Digamos que es un desarrollador COBOL que sueña con conseguir un trabajo de UX. Simplemente comience a mejorar UX en Firefox y envíe sus contribuciones. Una vez que sean aceptados, puede agregar una nueva posición a su currículum: diseñador de UX para el proyecto de Firefox. Acaba de aprender algo útil y ha mejorado sus credenciales.

Mejoras tu visibilidad

Cuando te unes a una comunidad, como un proyecto de código abierto, inmediatamente ganas nuevos conocidos, conociendo a otros que también están involucrados en el proyecto. Puede aprender de ellos e intercambiar ideas con ellos.

El segundo beneficio de unirse a una comunidad de este tipo es que todos sus otros canales automáticamente se vuelven más visibles. Por ejemplo, los visitantes del proyecto de código abierto al que contribuyes pueden conocer tu canal de YouTube o encontrarte en LinkedIn para ofrecerte un trabajo.

Esto nos lleva al siguiente punto.

Hoy en día, es una práctica común que los reclutadores de TI consulten GitHub en busca de nuevos talentos. Al hacer público su código, en realidad crea un currículum vitae real que cualquiera puede verificar. No es necesario ponerse en contacto con sus antiguos empleadores o clientes. Y si su perfil de GitHub se enlaza con su perfil de LinkedIn o su página de inicio, usted es fácilmente accesible, por lo que aumentan las posibilidades de conseguir el trabajo de sus sueños.

Tenga en cuenta que ni siquiera necesita tener experiencia comercial en ese campo en particular. Para esos reclutadores, ¡sus contribuciones de código abierto son igualmente válidas!

Encuentra empleo o nuevos clientes

Si eres realmente bueno, puedes obtener una oferta paga para trabajar en un proyecto de código abierto. Esto está reservado principalmente para aquellos proyectos que tienen algún respaldo financiero estable, ya sea de una corporación o una organización sin fines de lucro.

Encuentra nuevos empleados

Esto también funciona al revés: puede encontrar empleados potenciales. Si haces algo que sea interesante y útil para los demás, publícalo como un proyecto de código abierto. Existe la posibilidad de que alguien quiera mejorar su proyecto o trabajar para usted.

Haces algo por los demás

Otra ventaja de ser parte de estos proyectos es la oportunidad de hacer algo por los demás y ganar su gratitud. Todas las notas de agradecimiento que reciba harán que su tiempo parezca más que valioso, y es posible que incluso haya contribuido a un proyecto increíble.

Obtienes acceso a buenas estadísticas

¿Eres fanático de la gamificación? Entonces este es para ti. A algunas personas les gustan mucho las estadísticas y, para ellas, GitHub ofrece algo especial. Cada acción que realizamos en GitHub, la comunidad de código abierto más grande, está marcada con un cuadrado verde en un calendario enorme. Cuantas más cosas hagamos en un día, más brillante será el cuadrado. Cuando contribuimos durante varios días consecutivos, GitHub lo contará como una racha y mantendrá su puntaje para referencia futura. Esto actúa como motivación para superar las mejores puntuaciones hasta el momento.

¿Cómo encuentra su primer proyecto?

Hay varias formas. En primer lugar, los grandes jugadores como Firefox o Android tienen una gran base de usuarios y requieren muchos cambios y mejoras. Una vez que introduce un cambio en dicho proyecto, millones de personas lo pueden ver. Puede visitar GitHub y ver cuáles son los repositorios más populares. Por ejemplo, en el momento de escribir este artículo, el repositorio número uno con más estrellas es freeCodeCamp.

No recomendaría necesariamente este primer enfoque si es un recién llegado. La principal ventaja de los grandes proyectos es también su principal maldición. Todos quieren contribuir, pero hay un número limitado de mantenedores que pueden responder a sus solicitudes. Si realmente desea tener un impacto, puede probar proyectos más pequeños que están en aumento. GitHub Trending es un lugar para encontrar estos casos.

Otro enfoque es seleccionar un proyecto impresionante como colaborador por primera vez. Llamemos a esto el enfoque de eficiencia energética. Los proyectos impresionantes son listas de enlaces compiladas y seleccionadas. Por ejemplo, awesome-shell enumera los resultados geniales de la CLI, mientras que awesome-JavaScript se ocupa de todos los nuevos marcos brillantes que aparecen todos los días. También hay una lista increíble de Libros que expanden la mente y, por supuesto, listas increíbles .

¿Por qué es un buen enfoque? El esfuerzo requerido para hacer una contribución real es bastante bajo, por lo que existe una alta probabilidad de obtener un aumento de dopamina como resultado de un trabajo bien hecho. Este aumento de dopamina debería desencadenar la siguiente contribución y así sucesivamente. Una vez que la pelota comienza a rodar, es difícil detenerla.

El enfoque final que recomiendo es aprovechar un gran evento de código abierto. Uno de esos eventos que se celebra cada año en octubre es Hacktoberfest. Se espera que los participantes realicen cinco solicitudes de extracción en GitHub (es decir, cinco contribuciones). Todos los que cumplen con esta tarea obtienen bonitos beneficios de los patrocinadores (como camisetas y calcomanías). Para que sea más fácil para los participantes, en el sitio web se enumeran algunos proyectos de ejemplo.

Otro evento similar es Google Summer of Code. Puede consultar una lista de proyectos del pasado. ¡Quizás alguno te inspire lo suficiente como para hacer una contribución! ¡Ah, y luego hay una lista impresionante de primeras oportunidades de relaciones públicas!

Si desea contribuir de forma sostenible al código abierto, busque algo que utilice con regularidad. De esta forma tus aportaciones también te beneficiarán. Esta es, con mucho, la mejor manera de garantizar un trabajo de calidad.

¿Qué hace que una contribución sea valiosa?

Ahora sabemos por qué contribuir y sabemos dónde contribuir. Ahora centrémonos en lo que hace que nuestra contribución sea valiosa. No se aceptará una contribución sin valor, ¡así que es mejor prepararse!

Debemos respetar las condiciones laborales

Sobre todo, debemos respetar las condiciones laborales de los demás. En muchos proyectos, puede encontrar documentos como los CONTRIBUTORS.mdque presentan la forma preferida de hacer contribuciones. Si el proyecto al que desea unirse no tiene un documento similar, consulte otros lugares posibles, como la README.mdpágina wiki del proyecto o. Familiarícese con las reglas y asegúrese de entenderlas y obedecerlas.

Si su trabajo no cumple con las condiciones descritas en las pautas de los contribuyentes, probablemente será rechazado incluso antes de la revisión. Esas pautas y condiciones sirven para proteger el tiempo de los mantenedores. Si no puede seguirlos, los mantenedores pueden asumir que es igualmente descuidado con el otro trabajo que hace.

Considere cuán valiosa es su contribución para los demás

Una vez que sepamos cómo comportarnos, consideremos cuán valiosa es nuestra contribución para los demás. Imagínese por un momento, una empresa que produce trajes a medida. Compraste un traje en su tienda y luego fuiste a tomar una cerveza. La inspiración golpea, así que colocas un abrebotellas en el traje en casa. De esta forma, cada vez que vayas a tomar una cerveza, no tendrás problemas para abrirla.

De una manera de código abierto, usted va al sastre y presenta su gran idea de colocar el abridor en el traje. Ahora, independientemente del ingenio de su idea, es posible que el sastre, que actúa como mantenedor del proyecto, no vea su adición como adecuada a su concepto. No significa que su trabajo sea débil o inútil; simplemente significa que algunas funciones atraen solo a una pequeña audiencia. Y dado que cada característica debe mantenerse y protegerse, lo que aumenta el costo del proyecto, el responsable del mantenimiento del proyecto debe asegurarse de que cada característica proporcione una cantidad de beneficios que valga la pena.

Sea detallado en la comunicación

Si no es un cambio que está contribuyendo, sino un informe, sea detallado. Escriba todo lo que sabe para explicar el contexto en detalle. Esto es particularmente importante al informar errores. Cuanto más contexto describa, más fácil será para alguien arreglarlo de la manera que desee. Tenga en cuenta los posibles casos de uso y el comportamiento esperado, pero omita cualquier detalle que no esté necesariamente relacionado con el informe. Decir que desea que un elemento sea ecológico porque coincide con otros productos de la competencia está bien. Proporcionar un trasfondo histórico completo de la competencia es demasiado.

Ejecutar, probar, verificar y luego verificar antes de enviar

Verifique todo y pruebe todo antes de enviar su cambio. Asegúrese de que sus cambios se refieran a la versión desarrollada actualmente, no a una histórica. Tenga en cuenta que solo necesita ejecutar las pruebas una vez. Los encargados de mantenimiento ejecutan muchos de ellos a diario, así que ahórreles tiempo asegurándose de que todo sea de primera categoría. Y de todos modos, esto solo demuestra que te importa y no envías un trabajo descuidado.

Cómo evitar desanimarse en línea

Recuerde esto: cada vez que publica algo en línea, se abre a las críticas. Independientemente, si se trata de un comentario, una foto, un artículo o un código, ahora eres vulnerable. Debes recibir algunas de las críticas, ya que te ayudarán a crecer.

Pero también hay otro tipo de críticas: tóxicas e injustificadas. Es mejor aprender a lidiar con diferentes tipos de críticas antes de comenzar a compartir su trabajo con el público. De esta manera estarás preparado para lo que te espera y no te tomarás todo como algo personal.

Nuestras mejores ideas no son las mejores para todos

En primer lugar, sus mejores ideas pueden no ser las mejores ideas según todos. Tengamos esto en cuenta. No se ofenda si alguien le dice que el abrebotellas que ideó no es compatible con su traje. Si esa es la voluntad del responsable del proyecto, respétela. Puede servirle de lección si desea participar nuevamente en este proyecto. O puede buscar otro proyecto donde puedan necesitar tal cambio.

Nuestro mejor trabajo puede no estar a la altura de los estándares

Por difícil que sea escucharlo, es posible que su mejor trabajo no esté a la altura del estándar de un proyecto. Yo mismo lo experimenté. En un proyecto en el que estaba contribuyendo, recibí una lista razonable de pautas sobre cómo escribir un buen código. Decidí hacerlo perfectamente (eso pensé) la primera vez. Después de todo, sabía qué buscar. Envié mis cambios y después de un tiempo recibí una respuesta. Casi todas las líneas de código estaban resaltadas. Curiosamente, todos los comentarios fueron razonables y precisos. Lo que yo consideraba perfecto faltaba en casi todas las líneas.

Corrigí todos los comentarios y volví a enviar los cambios. Esta vez recibí solo cinco comentarios. Incluso si está haciendo algo bien, otras personas pueden empujarlo a trabajar aún mejor. Para eso están los revisores. No deben ser criticados ni culpados; quieren ayudarlo, ¡tenga esto en cuenta!

Podemos ser rechazados incluso si hicimos todo bien

A veces, simplemente obtiene un “no” por respuesta, y no hay mucho que pueda hacer para cambiar esto. ¿Sigues pensando que los trajes con abrebotellas son una gran idea? ¡Entonces empieza a producir el tuyo propio! En código abierto, el acto de crear un nuevo proyecto basado en uno existente se denomina "bifurcación".

En consecuencia, el nuevo proyecto se considera una "bifurcación" del original. Por ejemplo, Ubuntu es una bifurcación de Debian. Si los encargados del mantenimiento del proyecto se niegan a incorporar su trabajo en su producto, puede considerar bifurcar el proyecto y convertirse usted mismo en encargado del mantenimiento. Esto solo debe practicarse en casos extremos. No solo es una carga para ambos grupos de mantenedores, sino que también es confuso para la comunidad. Si escucha un “no”, vale la pena conocer las razones detrás de esta respuesta.

Puede ser una valiosa lección para el futuro.

Los trolls están en todas partes

Ahora, los trolls.

A medida que Internet ofrece una ilusión de anonimato, ha surgido una subcultura que se complace en destruir a otras personas. Esta subcultura se llama trolls de Internet. Todavía no he tenido la oportunidad de pelear con alguien así. Pero le recomendaría que lea la “Guía completa para comprender y tratar con los trolls en línea” de Ragen Chastain. Te ayudará a prepararte para un encuentro tan desagradable.

Ganar dinero con el código abierto

Si ha leído hasta aquí, probablemente se esté preguntando si es posible ganar algo de dinero trabajando en proyectos de código abierto.

¡Por supuesto que es!

Aunque el software en sí mismo suele ser gratuito, existen otras formas de ganarse la vida con el código abierto. En este sentido, se parece mucho al arte. Y al igual que con el arte, algunos métodos pueden funcionar para usted mientras que otros no. Es una ciencia inexacta.

Métodos permanentes

Mi método favorito es el botón Donar. Puedes verlo en funcionamiento en uno de mis proyectos: Songcorder. Dependiendo del tamaño de las propinas que espere, las opciones que vale la pena considerar incluyen Paypal (si planea recibir propinas superiores a $ 15) y Cómpreme un café (para propinas inferiores a $ 15).

Un botón Cómpreme un café se ve así (puede hacer clic en él si cree que lo merezco):

Además de los botones de propósito general, existen métodos dedicados a proyectos de código abierto, como Gittip / Liberapay (a este le gusta cambiar de nombre con bastante frecuencia). Curiosamente, uno de los repositorios populares soportados por Liberapay es… asombroso.

La premisa es similar a la de Flattr. Usted elige la cantidad mensual de dinero que desea gastar en creaciones y, cuando aprueba algún trabajo, el autor del trabajo recibe una parte de su presupuesto. Digamos que decidió que puede pagar $ 5 cada mes para proyectos de código abierto. Si aprueba cuatro proyectos en un mes en particular (destacándolos o haciendo clic en el botón Flattr), cada uno de los autores de los proyectos recibe $ 1.25. Bastante simple.

En lugar de apoyar proyectos completos, también puede hacer donaciones (casi) directamente a los contribuyentes. Tip4Commit funciona de esta manera. Los partidarios depositan una cierta cantidad de Bitcoin en un proyecto, y cada contribuyente que se compromete con el proyecto recibe una parte del depósito.

Otro posible enfoque es Patreon. Aquí, en lugar de un presupuesto igualmente dividido, los partidarios dan una cantidad fija de efectivo a cualquier creador que elijan. Si quieres saber si este es el enfoque correcto para ti, Erika Sauter explica perfectamente "Por qué Patreon es Dope AF para creadores". Sindre Sorhus, de gran fama, es uno de los principales mantenedores de código abierto allí. Pero proyectos más grandes como Homebrew o Linuxbrew también utilizan Patreon para su financiación.

Todos los métodos mencionados anteriormente funcionan bien si trata el código abierto como un pasatiempo o una actividad secundaria. Si tiene suerte, incluso podrían convertir su pasión en un trabajo diario. Pero en realidad, si desea hacer del código abierto su trabajo diario, el enfoque habitual es proporcionar servicios de consultoría. Esto puede significar vender funciones profesionales a clientes empresariales o ayudar a los clientes empresariales a implementar y personalizar sus productos. Muchas empresas carecen de las habilidades necesarias para adaptar un proyecto de código abierto a sus necesidades internas. ¿Y quién está mejor equipado para esta tarea que el encargado del proyecto original?

Si puedes ayudar a otros y te pagan por hacerlo, ¡adelante!

Métodos de una sola vez

Uno de los métodos populares para recaudar fondos en un proyecto de código abierto es el crowdfunding. Existen numerosas plataformas dedicadas a esta causa. Kickstarter, por ejemplo, ayudó a lanzar Mycroft Mark II, el asistente de voz de código abierto. Otro gran jugador, Indiegogo, organizó una campaña para un cliente de correo electrónico, Geary. Lamentablemente, el proyecto no cumplió con sus objetivos. MediaGoblin incluso llegó a lanzar su propia campaña sin ningún tercero.

Si teme que no encontrará los muchos seguidores necesarios para una financiación colectiva exitosa, puede probar las subvenciones. Tengo conocimiento de al menos dos fundaciones que ofrecen este tipo de subvenciones. Uno de ellos es la Fundación Travis, respaldada por la empresa que está detrás del popular Travis CI. El otro es Mozilla Foundation, creadores del navegador web Firefox.

La mayoría de las herramientas presentadas hasta ahora se centran en los mantenedores de código abierto. Pero los contribuyentes pueden ganar dinero convirtiéndose también en cazarrecompensas. Las recompensas son funciones solicitadas por un tercero respaldadas por una recompensa financiera. Para cazarlos, debe cumplir con la solicitud de función y reclamar la recompensa. La plataforma más popular para Bounty Hunting en este momento parece ser Bountysource.

Pero si prefiere tomar Criptomonedas como pago, Gitcoin opera con principios similares. Consulte "Todo lo que necesita saber sobre Gitcoin" de Vivek Singh para obtener más detalles.

La pasantía remunerada es otro enfoque válido. Dos opciones populares disponibles son:

  • Google Summer of Code: dirigido a estudiantes
  • Alcance: dirigido a minorías en el campo de la tecnología

O, si es un apasionado, ¿por qué no se une a una empresa dedicada al desarrollo de software de código abierto? Hay muchos para elegir. Al igual que con la consultoría, se le pagará y hará algo por la comunidad al mismo tiempo.

¡Es una situación en la que todos ganan!

Más investigación

Si está buscando más inspiración, consulte el proyecto del puesto de limonada en GitHub. O agregue su propia idea allí. ¡Con Open Source, todo es posible!

Encontrar a su pariente

No lo he mencionado hasta ahora, pero los productos, proyectos y tecnología son solo una pequeña fracción de todo el movimiento de código abierto. ¡El primer y principal componente es la fabulosa comunidad! Una vez que comienzas a contribuir, inmediatamente ganas muchos nuevos conocidos, personas de las que aprender, personas a las que puedes guiar y personas con las que puedes intercambiar ideas.

Cada proyecto tiene su propia comunidad, pero también hay lugares donde los entusiastas del código abierto pasan el rato sin importar su origen.

Puede unirse a grupos en las redes sociales, como el grupo Linux y código abierto en LinkedIn. También hay muchos canales interesantes de Gitter para consultar. Gitter es un sistema de mensajería instantánea para comunidades de código abierto. También existen grupos de correo, foros o plataformas como GitHub que permiten la colaboración y la comunicación. Pero si desea conocer personas de ideas afines en persona, considere visitar o unirse a un Hackerspace.

Los hackerspaces son lugares que transfieren el amor por la experimentación más allá del mundo del software. El software, el hardware, el bricolaje y la artesanía son igualmente bienvenidos. Hay una página Wiki que enumera todos los Hackerspaces, así que busque el más cercano y simplemente visítelos. ¡Te sorprenderá lo que es posible cuando la ideación se encuentra con la ejecución!

¿Te gustó? Te he ayudado Si es así, no dude en unirse a mi boletín:

Si le gusta la publicación, considere suscribirse a mi Newsletter. Se le informará sobre todo lo que escribo y recomiendo (libros, artículos, herramientas y probablemente música).