¡Hola! Me llamo Dmitry Pavlov y trabajo en , además de ser committer y miembro del PMC en Apache Ignite y contribuyente en Apache Training. Recientemente, di una charla sobre el trabajo de un committer en un meetup de Sberbank sobre código abierto. Con el desarrollo de la comunidad de código abierto, muchos han comenzado a hacerse preguntas sobre cómo convertirse en committer, qué tareas asumir y cuántas líneas de código deben escribir para obtener este rol. Cuando pensamos en los committers, nos imaginamos de inmediato a personas omnipotentes y omniscientes con una corona en la cabeza y un volumen de «Código limpio» en lugar de un cetro. ¿Es así realmente? En mi publicación intentaré responder todas las preguntas importantes sobre los committers para que puedan entender si realmente lo necesitan.

Todos los recién llegados a la comunidad de código abierto suelen pensar que nunca se convertirán en committers. Para muchos, este es un rol prestigioso que solo se puede obtener por méritos especiales, escribiendo una gran cantidad de código. Pero no es tan simple. Echemos un vistazo al committer desde la perspectiva de la comunidad.
¿Quién es un committer y para qué sirve?
Al crear un nuevo producto de código abierto, siempre permitimos que los usuarios lo utilicen e investiguen, así como que modifiquen y distribuyan copias modificadas. Pero cuando ocurre una distribución descontrolada de copias de software con cambios, no recibimos contribuciones a la base de código principal y el proyecto no se desarrolla. Es aquí donde se necesita ese committer, que tiene el derecho de recopilar las aportaciones de los usuarios al proyecto.
¿Por qué convertirse en committer?
Comencemos por el hecho de que ser committer es un plus en el currículum, y para los principiantes en el campo de la programación es un gran plus, ya que a menudo al buscar trabajo se piden ejemplos de código.
Otra clara ventaja de ser committer es la posibilidad de interactuar con expertos de alto nivel y obtener ideas innovadoras de código abierto para tu proyecto. Además, si conoces bien un producto de código abierto, puedes conseguir trabajo en una empresa que lo mantenga o lo utilice. Existe incluso la opinión de que si no participas en código abierto, no puedes acceder a altos puestos de carrera.
Además de las ventajas en cuanto a carrera y empleo, el compromiso en sí mismo es gratificante. La comunidad profesional te reconoce y ves claramente el resultado de tu trabajo. No es como en algún desarrollo corporativo, donde a veces ni siquiera entiendes por qué mueves campos de un lado a otro en XML.
En las comunidades de código abierto, puedes conocer a los mejores especialistas, como Linus Torvalds. Pero si no eres uno de ellos, no pienses que no tienes nada que hacer allí; hay tareas de diferentes niveles.
Y también hay bonificaciones adicionales: los committer de Apache, por ejemplo, reciben una licencia gratuita de IntelliJ Idea Ultimate (aunque con algunas limitaciones).
¿Qué hay que hacer para convertirse en committer?
Es muy simple: hay que comprometerse.

Si crees que en los proyectos no hay tareas para ti, te equivocas. Simplemente únete a la comunidad que te interese y haz lo que sea necesario para ella. En la Apache Software Foundation hay una con los requisitos para los committers.
¿Qué tareas tendrás que resolver?
Las más variadas, desde desarrollo hasta escritura de pruebas y documentación. Sí, la contribución de los testers y documentadores en la comunidad es valorada tanto como la de los desarrolladores. A veces hay tareas inusuales, como llevar un canal de YouTube y contar a otros usuarios cómo utilizas un producto de código abierto. Por ejemplo, en la Apache Software Foundation hay una , donde se indica qué tipo de ayuda se necesita.
¿Es necesario escribir una gran función para convertirse en committer?
No. No es en absoluto obligatorio. Un committer no tiene que escribir toneladas de código. Pero si has escrito una gran función, el comité de gestión del proyecto tendrá más fácil evaluarte. Contribuir a la comunidad no es solo escribir funciones, programar y probar. Si escribes un correo y hablas sobre algún problema, ofreciendo una solución argumentada, eso también es una contribución.
Es importante comprender que ser committer es una cuestión de confianza. La decisión de hacerte committer o no la toman otras personas como tú, basándose en sus opiniones sobre ti como alguien que aporta valor al producto. Por lo tanto, debes ganarte esa confianza con tus acciones y comportamientos en la comunidad.
¿Cómo comportarse?
Sé constructivo, positivo, educado y paciente. Recuerda que en el código abierto, todos son voluntarios y nadie tiene la obligación de hacer nada por nadie. Si no te responden, espera y recuerda tu pregunta en 3-4 días. Si no te responden de manera continua, bueno, el código abierto es una cuestión voluntaria.

No pidas que hagan algo por ti o en tu nombre. Los participantes experimentados de la comunidad tienen un instinto para detectar a esos 'pedigüeños' y desarrollan una aversión hacia quienes quieren delegar su trabajo.
Si te ayudan, genial, pero no abuses. No deberías escribir: 'Chicos, arreglen esto, estoy perdiendo mi bonificación anual'. Es mejor preguntar hacia dónde debes avanzar y contar lo que ya has encontrado sobre el error. Y si prometes actualizar la wiki después de que se resuelva el problema, la probabilidad de que te respondan aumentará enormemente.
Finalmente, lee y aprende .
¿Cómo contribuir si no eres colaborador?
En los proyectos a menudo se utiliza un esquema RTC, donde primero todos pasan por revisión y luego los cambios se fusionan en el maestro. Con este esquema, absolutamente todos pasan por revisión, incluso los colaboradores. Por lo tanto, se puede contribuir exitosamente al proyecto sin ser colaborador. Y para ser más fácilmente elegido como nuevo colaborador, puedes involucrarte en la tutoría de nuevos participantes, compartir conocimientos y crear nuevos materiales.
¿Diversidad — beneficio o daño?
Para la Apache Software Foundation, la diversidad también incluye la afiliación de los participantes en el proyecto de código abierto a varias empresas. Si todos están afiliados a una sola organización, al perder su interés en el proyecto, todos los participantes se marchan rápidamente. La diversidad asegura la durabilidad, estabilidad del proyecto, experiencias diversos y un amplio espectro de opiniones de los participantes.
¿Por amor o por cálculo?
En los proyectos de código abierto hay dos tipos de personas: quienes trabajan en una organización que contribuye a este producto y quienes están aquí por amor, es decir, voluntarios. ¿Quiénes son más productivos? Por lo general, los participantes que apoyan el producto desde la organización colaboradora. Tienen más tiempo y una clara motivación para llegar a la verdad, están enfocados en la tarea y más cerca de los usuarios.
Aquellos que lo hacen "por amor" también están motivados, pero de otra manera: ansían explorar el proyecto y mejorar el mundo. Precisamente estos participantes son más estables y están orientados a largo plazo, porque quien llega a la comunidad por propia iniciativa difícilmente la abandonará de un día para otro.
¿Cómo encontrar un equilibrio entre productividad y estabilidad? Hay dos opciones. La primera: cuando un participante trabaja en una empresa que oficialmente se ocupa de este proyecto de código abierto y hace algo adicional por interés personal, por ejemplo, apoyando a los recién llegados. La segunda opción es una empresa que ha pasado por una transformación de código abierto. Por ejemplo, cuando los empleados dedican cuatro días a la semana a trabajar en el proyecto principal del negocio y el resto del tiempo se ocupan del código abierto.
¿Ser committe o no ser committe?

El committeo es un tema interesante y útil, pero no deberías aspirar únicamente a convertirte en committe. Este rol se puede obtener sin necesidad de escribir código, y no demuestra tus conocimientos. Lo que importa es la experiencia, es decir, los conocimientos y la experiencia que adquirirás al estudiar el proyecto, investigando en él y ayudando a otros a resolver problemas.
Fuente: habr.com
