Cześć! Nazywam się Dmitrij Pawłow, pracuję w , a także jestem committerem i członkiem PMC w Apache Ignite oraz kontrybutorem w Apache Training. Niedawno wygłosiłem prezentację na temat pracy committera na meetupie Sberbanku poświęconym open source. W miarę rozwoju społeczności open source, coraz więcej osób zaczyna zadawać sobie pytania: jak zostać committerem, jakie zadania przejmować i ile linii kodu należy napisać, aby uzyskać tę rolę. Kiedy myślimy o committerach, wyobrażamy sobie wszechwiedzących ludzi z koroną na głowie i książką „Czysty kod” zamiast berła. Czy to prawda? W moim wpisie postaram się odpowiedzieć na wszystkie istotne pytania dotyczące committerów, abyście mogli zrozumieć, czy jest to coś, czego naprawdę potrzebujecie.

Wszystkim nowicjuszom w społeczności open source towarzyszy myśl, że nigdy nie zostaną committerami. Dla wielu jest to prestiżowa rola, którą można zdobyć tylko za szczególne osiągnięcia, pisząc ogromne ilości kodu. Ale to nie jest takie proste. Przyjrzyjmy się committerom z perspektywy społeczności.
Kim jest committer i po co jest potrzebny?
Tworząc nowy produkt open source, zawsze pozwalamy użytkownikom na jego używanie i badanie, a także na modyfikację i rozpowszechnianie zmodyfikowanych kopii. Ale kiedy dochodzi do niekontrolowanego rozpowszechniania kopii oprogramowania ze wprowadzonymi zmianami, nie otrzymujemy wkładów do głównej bazy kodu, co powoduje, że projekt nie rozwija się. Wtedy potrzebny jest ten właśnie committer, który ma prawo zbierać wkłady użytkowników do projektu.
Dlaczego warto zostać committerem?
Zacznijmy od tego, że bycie committerem to dodatkowy plus w CV, a dla nowicjuszy w dziedzinie programowania to jeszcze większa korzyść, ponieważ często podczas poszukiwania pracy wymagane są przykłady kodu.
Drugim niewątpliwym atutem bycia committerem jest możliwość kontaktu z czołowymi specjalistami oraz pozyskiwania fascynujących pomysłów z open source do swojego projektu. Co więcej, jeśli dobrze znasz jakiś produkt z otwartym kodem, masz szansę na zatrudnienie w firmie, która go wspiera lub wykorzystuje. Istnieje nawet opinia, że jeśli nie uczestniczysz w open source, to nie ma możliwości, by zdobyć wysokie stanowiska w karierze.
Oprócz korzyści związanych z karierą i zatrudnieniem, sam proces bycia komiterem jest przyjemny. Profesjonalna społeczność uznaje twoje osiągnięcia, a ty jasno widzisz efekty swojej pracy. To nie to, co w jakimś korporacyjnym projekcie, gdzie czasami w ogóle nie rozumiesz, po co przenosisz dane z miejsca na miejsce w XML.
W społecznościach open source możesz poznać najwyższej klasy specjalistów, takich jak Linus Torvalds. Ale jeśli nie jesteś takim ekspertem, nie myśl, że nie masz tam nic do zrobienia — są zadania o różnym poziomie trudności.
Są też dodatkowe bonusy: komiterzy Apache na przykład otrzymują darmową licencję IntelliJ Idea Ultimate (choć z pewnymi ograniczeniami).
Co zrobić, aby zostać komiterem?
To proste — należy komitować.

Jeśli uważasz, że w projektach nie ma dla ciebie zadań — mylisz się. Po prostu dołącz do interesującej cię społeczności i rób to, co jest potrzebne. W Apache Software Foundation istnieje sekcja z wymaganiami dla komiterów.
Jakie zadania będziesz musiał wykonać?
Najróżniejsze, od programowania po pisanie testów i dokumentacji. Tak, wkład testerów i dokumentalistów w społeczności jest ceniony na równi z wkładem programistów. Czasami istnieją nietypowe zadania — na przykład prowadzenie kanału na YouTube i dzielenie się z innymi użytkownikami, jak korzystasz z produktu open source. Na przykład w Apache Software Foundation jest sekcja , w której podano, jakiej pomocy się potrzebuje.
Czy trzeba napisać dużą funkcjonalność, aby zostać komiterem?
Nie. To wcale nie jest konieczne. Komiter nie musi pisać ton kodu. Ale jeśli stworzyłeś dużą funkcjonalność, komisja zarządzająca projektem łatwiej cię oceni. Wkład w społeczność to nie tylko funkcjonalności, programowanie i testowanie. Jeśli napiszesz wiadomość i opiszesz jakiś problem, proponując uzasadnione rozwiązanie — to też jest wkład.
Ważne jest, aby rozumieć, że bycie komiterem to zaufanie. O tym, czy zostaniesz komiterem, decydują ludzie tacy jak ty, na podstawie swojego postrzegania ciebie jako osoby, która przynosi korzyści produktowi. Dlatego musisz zdobyć to zaufanie swoimi działaniami w społeczności.
Jak się zachowywać?
Bądź konstruktywny, pozytywny, uprzejmy i cierpliwy. Pamiętaj, że w open source wszyscy są wolontariuszami i nikt nikomu nic nie jest winien. Jeśli nie otrzymujesz odpowiedzi — poczekaj i przypomnij o swoim pytaniu po 3-4 dniach. Jeśli ciągle nie otrzymujesz odpowiedzi — cóż, open source to dobrowolna sprawa.

Nie proś, aby ktoś coś dla Ciebie zrobił lub zrobił za Ciebie. Doświadczeni członkowie społeczności mają wyczucie takich „proszących” i od razu dostają alergii na tych, którzy chcą zrzucić swoją pracę na innych.
Jeśli otrzymujesz pomoc, to świetnie, ale nie nadużywaj tego. Nie pisz: „Ludzie, naprawcie to, bo tracę roczną premię”. Lepiej zapytaj, w jakim kierunku powinieneś iść dalej i opowiedz, co już odkryłeś na temat tego błędu. A jeśli obiecasz zaktualizować wiki w wyniku rozwiązania problemu, prawdopodobieństwo, że otrzymasz odpowiedź, znacznie wzrośnie.
W końcu, czytaj i ucz się .
Jak przyczynić się, jeśli nie jesteś komiterem?
W projektach często stosuje się schemat RTC, w którym najpierw wszyscy przechodzą przegląd, a następnie zmiany są łączone z główną gałęzią. W takim schemacie wszyscy przechodzą przegląd, nawet komiterzy. Dlatego można skutecznie przyczynić się do projektu, nie będąc komiterem. Aby łatwiej zostać nowym komiterem, można zająć się mentoringiem nowych uczestników, dzielić się wiedzą, tworzyć nowe materiały.
Różnorodność — korzyść czy szkoda?
Różnorodność — w rozumieniu Apache Software Foundation, to między innymi przynależność członków projektu opensource do różnych firm. Jeśli wszyscy są powiązani tylko z jedną organizacją, to przy utracie jej zainteresowania projektem wszyscy uczestnicy szybko uciekają. Różnorodność zapewnia długoterminowość, stabilność projektu, różnorodne doświadczenia i szeroki wachlarz opinii uczestników.
Z miłości czy z wyrachowania?
W projektach opensource spotykają się dwa typy ludzi: ci, którzy pracują w organizacji, która przyczynia się do danego produktu, oraz ci, którzy pracują tutaj z pasji, czyli wolontariusze. Kto z nich jest bardziej produktywny? Zazwyczaj to uczestnicy wspierający produkt ze strony organizacji-kontrybutora. Po prostu mają więcej czasu i wyraźną motywację, aby dotrzeć do prawdy, są skoncentrowani na zadaniu i bliżej użytkownika.
Ci, którzy to robią „z miłości”, również są zmotywowani, lecz w inny sposób — pragną zgłębiać projekt, uczynić świat lepszym. To właśnie tacy uczestnicy są bardziej stabilni i skoncentrowani na długoterminowej perspektywie, ponieważ ci, którzy sami wkraczają do społeczności, rzadko opuszczają ją z dnia na dzień.
Jak znaleźć równowagę między produktywnością a stabilnością? Istnieją dwa warianty. Pierwszy wariant: kiedy uczestnik pracuje w firmie, która oficjalnie zajmuje się tym projektem open source, i robi coś dodatkowo, z własnego interesu — na przykład, wspiera nowicjuszy. Drugi wariant — to firma, która przeszła transformację open source. Na przykład, gdy pracownicy przez cztery dni w tygodniu rozwijają główny projekt biznesowy, a resztę czasu zajmują się open source.
Być committerem czy nie być?

Committerstwo to dobry i wartościowy temat, ale nie warto dążyć tylko do tego, aby zostać committerem. Tę rolę można otrzymać nie tylko za kod, i nie dowodzi ona twojej wiedzy. Ważna jest jedynie ekspertyza, a więc te umiejętności i doświadczenie, które zdobędziesz, badając projekt, zgłębiając go i pomagając innym w rozwiązywaniu problemów.
Źródło: habr.com
