Hola Mi nombre es Dmitry Pavlov, trabajo en
GridGain , y también soy un miembro comprometido y miembro de PMC en Apache Ignite y colaborador de Apache Training. Recientemente, hice un informe sobre el trabajo del encargado en la reunión de Sberbank sobre código abierto. Con el desarrollo de la comunidad de código abierto, muchos comenzaron a plantear preguntas: cómo convertirse en un committer, qué tareas tomar y cuántas líneas de código necesita escribir para obtener este rol. Cuando pensamos en cometers, inmediatamente nos presentan personas omnipotentes y omniscientes con una corona en la cabeza y un volumen de "Código Limpio" en lugar de un cetro. Es asi? En mi publicación, intentaré responder todas las preguntas importantes sobre committers para que puedas entender si realmente lo necesitas.

Todos los recién llegados a la comunidad de código abierto tienen una oleada de pensamientos de que nunca se convertirán en comprometidos. De hecho, para muchos, este es un papel prestigioso que solo se puede obtener por méritos especiales escribiendo una tonelada de código. Pero no es tan simple. Echa un vistazo a la comisión de la comunidad.
¿Quién es un committer y por qué es necesario?
Al crear un nuevo producto de código abierto, siempre permitimos que los usuarios lo usen e investiguen, así como también modificar y distribuir copias modificadas. Pero cuando hay una distribución incontrolada de copias del software con los cambios realizados, entonces no recibimos contraataques en la base del código principal y el proyecto no se desarrolla. Aquí ya se necesita el mismo committer, que tiene el derecho de recaudar las contribuciones de los usuarios al proyecto.
¿Por qué convertirse en un committer?
Para empezar, comprometerse es una ventaja para el currículum, y para los principiantes en el campo de la programación es una ventaja aún mayor, porque a menudo cuando solicitan un trabajo piden ejemplos de código.
La segunda ventaja indudable de comprometerse es la capacidad de comunicarse con los mejores expertos y extraer algunas ideas interesantes del código abierto en su proyecto. Además, si conoce bien un determinado producto de código abierto, puede obtener una empresa que lo respalde o lo use. Incluso existe la opinión de que si no participa en el código abierto, no puede acceder a puestos de alta carrera.
Además de los beneficios en términos de carrera y empleo, comprometerse en sí mismo es bueno. La comunidad profesional lo reconoce, ve claramente el resultado de su trabajo. No es como en algún tipo de desarrollo corporativo, donde a veces ni siquiera entiendes por qué estás transfiriendo campos de un lado a otro en XML.
En las comunidades de código abierto, puedes conocer a los mejores expertos a nivel de Linus Torvalds. Pero si no eres así, no debes pensar que no tienes nada que hacer allí: hay tareas de diferentes niveles.
Bueno, hay bonificaciones adicionales: los encargados de Apache, por ejemplo, obtienen una licencia gratuita de IntelliJ Idea Ultimate (aunque con algunas limitaciones).
¿Qué hacer para convertirse en un committer?
Todo es simple: debes comprometerte.

Si cree que no hay tareas para usted en los proyectos, está equivocado. Únase a la comunidad que le interesa y haga lo que tenga que hacer. Apache Software Foundation tiene una
guía separada para los requisitos del committer.
¿Qué tareas tendrás que resolver?
Los más diversos: desde el desarrollo hasta la redacción de pruebas y documentación. Sí, la contribución de los probadores y documentadores en la comunidad se valora junto con la contribución de los desarrolladores. Hay tareas no estándar, por ejemplo, liderar un canal de YouTube y decirles a otros usuarios cómo usar el producto de código abierto. Por ejemplo, Apache Software Foundation tiene una
página separada que indica qué ayuda se requiere.
¿Necesito escribir una gran característica para convertirme en un committer?
No Esto no es en absoluto necesario. El committer no debe escribir toneladas de código. Pero si escribió una característica importante, será más fácil para el comité de gestión del proyecto evaluarlo. Contribuir a la comunidad no se trata solo de características, programación y pruebas. Si escribe una carta y habla de algún problema, ofrezca una solución razonada, esto también es una contribución.
Es importante comprender que comprometerse es confiar. Las personas que deciden hacer que se comprometa o no son decididas por personas como usted en función de sus puntos de vista sobre usted como una persona que beneficia el producto. Por lo tanto, usted, a través de sus acciones y acciones en la comunidad, necesita ganarse esta confianza.
¿Cómo comportarse?
Sea constructivo, positivo, educado y paciente. Recuerde que en código abierto todos los voluntarios y nadie le debe nada a nadie. No le responden, espere y recuerde su pregunta en 3-4 días. No te responden constantemente; bueno, el código abierto es voluntario.

No pidas hacer algo por ti o por ti. Los miembros experimentados de la comunidad tienen un don para tales "mendigos" e inmediatamente hay una alergia a aquellos que quieren empujar su trabajo hacia ellos.
Si te ayudan, es genial, pero no abuses de él. No escriba: "Chicos, arreglen esto, de lo contrario estoy perdiendo el premio anual". Es mejor preguntar dónde va a seguir adelante y decirnos qué ya descubrió en este error. Y si promete actualizar la wiki en función de los resultados de la resolución del problema, la probabilidad de que le respondan aumentará significativamente.
Finalmente, lea el
Código de conducta y aprenda
a hacer preguntas .
¿Cómo contribuir si no eres un committer?
Los proyectos a menudo usan el esquema RTC, cuando todos pasan por la revisión primero, y luego los cambios se fusionan en el maestro. Con este esquema, absolutamente todo pasa por una revisión, incluso los confirmadores. Por lo tanto, puede contribuir con éxito al proyecto sin comprometerse. Y para que sea más fácil ser seleccionado como un nuevo responsable, puede orientar a nuevos miembros, compartir conocimientos y crear nuevos materiales.
Diversidad: ¿beneficio o daño?
Diversidad: en la comprensión de Apache Software Foundation, es, entre otras cosas, la afiliación de los participantes en un proyecto de código abierto con varias empresas. Si todos están afiliados a una sola organización, con la pérdida de su interés en el proyecto, todos los participantes huyen de allí. La diversidad proporciona estabilidad a largo plazo, proyectos, experiencia versátil y una amplia gama de opiniones de los participantes.
¿Por amor o por conveniencia?
En los proyectos de código abierto, hay dos tipos de personas: los que trabajan en una organización que contribuyen a este producto y los que trabajan aquí por amor, es decir, voluntarios. ¿Cuál de ellos es más productivo? Como regla general, los participantes que apoyan el producto desde la organización contribuyente. Simplemente tienen más tiempo y hay una clara motivación para llegar a la verdad, están enfocados en la tarea y más cerca del usuario.
Los que hacen esto "por amor" también están motivados, pero de una manera diferente: están ansiosos por estudiar el proyecto, por hacer del mundo un lugar mejor. Y son precisamente esos participantes los que son más estables y centrados en el largo plazo, porque es poco probable que los que vinieron a la comunidad por iniciativa propia lo abandonen algún día.
¿Cómo encontrar un equilibrio entre productividad y estabilidad? Hay dos opciones La primera opción: cuando un participante trabaja para una empresa que se dedica oficialmente a este proyecto de código abierto, y hace algo extra en él, por su propio interés, por ejemplo, apoya a los recién llegados. La segunda opción es una empresa que ha experimentado una transformación de código abierto. Por ejemplo, cuando los empleados vieron el proyecto comercial principal cuatro días a la semana, y el resto del tiempo lo hicieron de código abierto.
El cometidor: ¿ser o no ser?

Comprometerse es un tema bueno y útil, pero no debe esforzarse por convertirse en un comprometidor. Este rol se puede obtener no para el código, y no prueba su conocimiento. Solo la experiencia es importante, es decir, el conocimiento y la experiencia que obtendrá al estudiar el proyecto, profundizar en él y ayudar a otros a resolver problemas.