Здравейте! Казвам се Дмитрий Павлов, работя в , също така съм комитър и участник в PMC на Apache Ignite и сътрудник в Apache Training. Наскоро изнесох лекция за работата на комитър на среща на Сбербанк за open source. С развитието на opensource общността много хора все по-често започват да се питат: как да станат комитъри, какви задачи да поемат и колко реда код трябва да напишат, за да получат тази роля. Когато мислим за комитърите, веднага си представяме всемогъщи и всезнаещи хора с корона на главата и книга „Чист код“ вместо скиптър. Наистина ли е така? В публикацията си ще се опитам да отговоря на всички важни въпроси за комитърите, за да можете да разберете дали наистина ви е необходимо.

Всички начинаещи в opensource общността имат мисли, че никога не ще станат комитъри. За много хора това е престижна роля, която може да бъде получена само за особени заслуги, написвайки много код. Но не е толкова просто. Нека разгледаме комитъра от гледна точка на общността.
Кой е комитър и каква е неговата роля?
При създаването на нов opensource продукт винаги разрешаваме на потребителите да го използват и проучват, както и да модифицират и разпространяват модифицирани копия. Но когато се случва неконтролирано разпространение на копия на софтуер с направени промени, не получаваме приноси в основната кодова база и проектът не се развива. Тук вече е необходимият комитър, който има право да събира приноси на потребителите в проекта.
Защо да ставам комитър?
Първо, комитърството е плюс за резюмето, а за начинаещите в сферата на програмирането – още по-голямо предимство, тъй като често при кандидатстване за работа се искат примери за код.
Второто неоспоримо предимство на комитърството е възможността да се комуникира с водещи специалисти и да се внасят интересни идеи от open source в собствения проект. Освен това, ако добре познавате даден продукт с отворен код, можете да се устроите в компания, която го поддържа или използва. Съществува дори мнение, че ако не участваш в open source, няма как да достигнеш високи кариерни позиции.
Освен плюсовете в кариерата и заетостта, коммитването само по себе е приятно. Професионалната общност те признава и можеш ясно да видиш резултатите от работата си. Не е като в някаква корпоративна разработка, където понякога изобщо не разбираш защо преместваш полета насам-натам в XML.
В open-source общностите можеш да се запознаеш с топ специалисти от типа на Линус Торвалдс. Но ако не си такъв, не мисли, че там няма какво да правиш — задачите са с различно ниво.
Има и допълнителни бонуси: комиттерите на Apache, например, получават безплатно лицензия за IntelliJ Idea Ultimate (макар и с известни ограничения).
Какво да направиш, за да станеш комиттер?
Всичко е просто — трябва да комитваш.

Ако смяташ, че в проектите няма задачи за теб — грешиш. Просто се присъедини към интересуващата те общност и прави това, което е нужно точно на нея. В Apache Software Foundation има отделен с изискванията към комиттерите.
Какви задачи ще трябва да решаваш?
Най-разнообразни — от разработка до писане на тестове и документация. Да, да, приносът на тестировчиците и документаторите в общността се цени наравно с приноса на разработчиците. Има и нестандартни задачи — например, да управляваш канал в YouTube и да разказваш на други потребители как използваш open-source продукта. Например в Apache Software Foundation има отделна , където е указано каква помощ е необходима.
Трябва ли да напишеш голяма функция, за да станеш комиттер?
Не. Това изобщо не е задължително. Комиттерът не трябва да пише тонове код. Но ако си написал голяма функция, на комитета по управление на проекта ще му е по-лесно да те оцени. Приносът в общността — това не са само функции, програмиране и тестване. Ако пишеш писмо и разказваш за някакъв проблем, предлагаш аргументирано решение — това също е принос.
Важно е да разбереш, че комиттерството — това е доверие. Решението да те направят комиттер или не, вземат също такива хора като теб, на база на техните впечатления от теб като човек, който носи полза на продукта. Затова с действията и постъпките си в общността трябва да спечелиш това доверие.
Как да се държа?
Бъдете конструктивни, позитивни, учтиви и търпеливи. Запомнете, че в open source всички са доброволци и никой не е длъжен на никого. Ако не ви отговарят — изчакайте и напомнете за въпроса си след 3-4 дни. Ако постоянно не ви отговарят — какво да се прави, open source е доброволна работа.

Не искайте някой да направи нещо за вас или вместо вас. У опитните участници в общността има усет към такива "молители" и веднага възниква алергия към тези, които искат да прехвърлят работата си на други.
Ако ви помагат, това е чудесно, но не злоупотребявайте. Не пишете: "Хора, оправете това, иначе губя годишната си премия". По-добре попитайте накъде да се движите напред и разкажете какво вече сте открили по въпросния бъг. А ако обещаете да обновите уики-то след решаване на проблема, шансовете да ви отговорят значително ще нараснат.
Накрая, четете и се учете .
Как да внесете принос, ако не сте комитър?
В проектите често се използва схема RTC, при която всичко първо преминава през рецензия и след това промените се сливат в основния клон. При такава схема абсолютно всички преминават рецензия, дори комитърите. Затова можете успешно да допринасяте в проект, без да сте комитър. А за да бъдете избрани за нови комитъри, можете да се заемете с наставничеството на нови участници, да споделяте знания, да създавате нови материали.
Разнообразие — полза или вреда?
Разнообразие — в разбирането на Apache Software Foundation, това е, включително, привързаността на участниците в opensource проекта към няколко компании. Ако всички са привързани само към една организация, при загубата й интерес към проекта, всички участници бързо избягват от него. Разнообразието осигурява дългосрочност, стабилност на проекта, разнообразен опит и широк спектър от мнения на участниците.
Поради любов или заради интерес?
В opensource проектите има два типа хора: онези, които работят в организация, която допринася за този продукт, и онези, които работят тук от любов, т.е. доброволци. Кои от тях са по-продуктивни? Както обикновено, участниците, които поддържат продукта от страна на организатор-добавчик. Те просто имат повече време и ясна мотивация да стигнат до истината, те са фокусирани върху задачата и по-близо до потребителя.
Тези, които го правят от "любов", също са мотивирани, но по различен начин — те искат да изследват проекта, да направят света по-добър. И именно такъв вид участници са по-стабилни и насочени към дългосрочна перспектива, защото този, който е влязъл в общността по собствена инициатива, малко вероятно ще я напусне изведнъж.
Как да намерим баланс между продуктивността и стабилността? Има две опции. Първата опция: когато участникът работи в компания, която официално се занимава с този open source проект и прави нещо допълнително, от личен интерес — например, поддържа новаците. Втората опция е компания, която е преминала през open source трансформация. Например, когато служителите четири дни в седмицата работят по основния бизнес проект, а останалото време се занимават с open source.
Комитър — да бъдеш или не?

Комитърството е добра и полезна тема, но не трябва да се стремя точно към това да стана комитър. Тази роля може да бъде получена не за код и не доказва вашите знания. Важна е само експертизата, тоест знанията и опитът, които ще придобиете, изучавайки проекта, занимавайки се с него и помагайки на другите да решават проблеми.
Източник: habr.com
