Gdynia,Al. Zwycięstwa 96/98, Poland
+48 690 020 966

Write Code & Save lives. Praca społeczna w OpenMRS

Write Code & Save lives. Praca społeczna w OpenMRS

#OMRS2020 Internships

Zapraszamy do przeczytania trzeciej i ostatniej części naszego wywiadu z zwycięzcą #OMRS2020 Internships. Jeśli nie znacie poprzednich części możecie to nadrobić tutaj: Jak wygrać nagrodę w konkursie programistycznym? oraz Jak ważna jest rola mentora w międzynarodowej organizacji?

Tyle się mówi na forum community o tym jak przyciągnąć nowe osoby, zatrzymać i zwiększyć liczbę kontrybutorów. A mimo wszystko, nie robi się nic co zmieniłoby tę sytuację i faktycznie pozwoliło zapoznać się nowym osobom z kodem. 

Może problem jest w tym, że zastanawiają się nad tym programiści z doświadczeniem? Może zabrakło tutaj spojrzenia kogoś bez tego doświadczenia. Kogoś, kto wie czego mu było brak?

Mam jeszcze pytanie co do zadań – ticketów w Jirze. Dodałeś sporo nowych i łatwych zadań, nie wolałeś ich zostawić dla siebie i w łatwy sposób spełnić warunki niezbędne do awansu na dev2?

Ależ ja już spełniłem te warunki, kiedy trafiłem na SonarQube. Korzystając z SonarLint nie miałem już tego parcia, mogłem spojrzeć szerzej. Dalsze klepanie tych biletów nic by mi nie dało. Mogły służyć innym.

Robiłeś coś większego dla społeczności, bezinteresownie o czym tyle tutaj się mówi. Czy poza wsparciem i dostępnością łatwych zadań czegoś brakuje lub brakowało Ci w community OpenMRS? Także w tej technicznej części

Jak już wcześniej wspomniałem, mój pierwszy zamiar wiązał się z niezobowiązującym klepaniem kodu. Dopiero czas pokazał, że to nie jest takie proste. Trafić na to i się z tym nie związać. 

Dokumentacja OpenMRS jest przeogromna, zawiera wszystko, ale łatwo się w niej zgubić. Myślę, że to jeszcze można poprawić, ma na myśli dostępność dokumentacji, zwłaszcza dla osób, które dopiero wchodzą do tematu, aby nie zostały przysypane nadmiarem wiedzy. Zbyt duża ilość informacji na początku też potrafi być szkodliwa i demotywująca, bo człowiek zdaje sobie za wcześnie sprawę jaki wielki to jest projekt.

Mówisz, że zdążyłeś się już trochę związać z organizacją?

Z organizacją? Nie bardzo. Ze społecznością chyba bardziej. Choć nigdy się nie zastanawiałem nad takim podziałem.

Planujesz zostać na dłużej? Czy nie widzisz siebie tutaj (w community OpenMRS) na dłuższą metę?

Obecnie zaczynam pisać pracę magisterską, więc mogę mieć problem z czasem dla OpenMRS, niemniej nie zamierzam porzucić tego tematu zupełnie. W końcu są tickety, którymi się opiekuję. Do tego jest jeszcze dużo modułów, które mogą służyć do tworzenia biletów dla osób chcących zacząć pracę z OpenMRS. Nawet jeżeli na dłużej zostanie jedna osoba na dziesięć z tych, które z moich biletów skorzysta to już będzie sukces. Po za tym cały czas dostaję powiadomienia. Jeżeli ktoś poprosi mnie o pomoc to zawsze ją otrzyma.

Zgadza się. Niewątpliwie takie osoby będą Ci wdzięczne, a Twoje doświadczenie, rada i fakt, że sam przez to przechodziłeś będzie dużą pomocą dla innych. Co do narzędzi o których wspomniałeś, jak myślisz dlaczego mało kto z nich korzysta oraz dlaczego mimo wszystko powinni to robić? Są to przecież narzędzia które poprawiają jakość całego kodu, czynią go czystym, ładnym i czytelnym. W firmach komercyjnych poświęca się dużą uwagę temu tematowi, a tutaj wydaje się być on zaniedbany i traktowany po macoszemu.

Nie chcę podejmować się osądów, dlaczego narzędzia te są niedoceniane. Mogę tylko gdybać, że początkujący ich nie znają, a doświadczeni ukierunkowani są na dostarczanie nowych funkcjonalności, ale może właśnie tym powinni się zajmować? Tak czy inaczej otwiera to drogę do wykazania się właśnie tym młodym i niedoświadczonym. Może tylko brak jasno wytyczonej drogi? SonarQube jest opisany w dokumentacji, jak wszystko, jednakże jak już wcześniej wspomniałem, czasem nadmiar informacji może zaszkodzić.

Czy w takim razie myślisz, że powinien powstać zespół, grupa osób której zadaniem byłoby udoskonalanie kodu? 

Oczywiście, jakość kodu jest dość ważna w takim projekcie jak OpenMRS, bo od tego może zależeć ludzkie zdrowie, jednakże co by wtedy pozostało nam, początkującym? 😉

Pod każdym repozytorium (na GitHubie) są też inne narzędzia jak Travis CI, CoverAlls czy Codacy. Czy miałeś okazję z nich korzystać?

Nie było mi dane korzystać z innych narzędzi, tutaj kluczowym elementem jest niestety czas. Praca, szkoła. Dużo wolnego czasu nie pozostaje.

Jeśli miałbyś taką okazję chciałbyś zająć się innymi narzędziami i tworzeniem także na podstawie nich zadań dla „młodych”? 

Sądzę, że jest tutaj pole do popisu. Pokrycie kodu balansuje na poziomie 60% dla openmrs-core, dla innych modułów może być niższe, zatem jest co poprawiać. A testy nie muszą być skomplikowane, w końcu to testy jednostkowe, da się tu wymyślić coś prostego. A pozwoli to również na poznanie struktury OpenMRS.

Czyli jest to z pewnością bezpieczne i dobre wyjście dla osób nowych, które dopiero co zaczynają, aby ich nie przestraszyć a jednak skorzystać z ich wkładu.

Dobrze ukierunkowane tickety nie wystraszą nowych osób. Dobry opis co, gdzie i jak zapobiegną temu. Przynajmniej tak sądzę. Chodzi o to, aby nowa osoba mogła od razu coś napisać, bez studiowania ton dokumentacji i kodu całego projektu. Ponieważ na to jeszcze przyjdzie czas.

Wszystkie Twoje tickety należą do openmrs-core. Był to wybór przypadkowy czy prześledziłeś wcześniej każdy z projektów?

Początkowo myślałem że openmrs-core to właśnie OpenMRS. Dopiero z czasem zrozumiałem, że to tylko jeden z elementów. Najważniejszy, ale jednak jeden z wielu.

A co myślisz, aby dodać do każdego z ticketów punkt obowiązkowy w postaci skorzystania z narzędzi i uzyskania określonego wyniku np pokrycia kodu powyżej ileś tam procent. Uważasz, że sprawdziłoby się to i z czasem weszło w krew tak, że każdy by tego używał?

Pomysł nie jest zły, ale będzie wymagał dużego zaangażowania od osoby, która się tego podejmie. Ciężko będzie stworzyć taką ścieżkę w postaci uniwersalnej, ponieważ każda osoba będzie miała inne problemy dołączając do projektu i każdemu będzie należało się wsparcie na każdym z poziomów. Do tego utrzymywanie takiego projektu na każdym etapie, tickety będą się kończyć, zatem będzie trzeba je uzupełniać. To też będzie wymagało sporo czasu.

W takim razie czy jest jakieś rozwiązanie na niską jakość kodu, pojawiające się błędy a często także dług technologiczny wynikający z niekorzystania z tego typu narzędzi?

Chyba przeceniasz moją wiedzę i umiejętności. Oczywistą odpowiedzią na tak zadane pytanie jest „zacząć z nich korzystać”, jednakże nie chcę uchodzić tutaj za osobą która wszystko wie najlepiej. Myślę, że są mądrzejsi ode mnie, którzy lepiej potrafią taki problem rozwiązać. Ich należy zapytać. 

A patrząc wstecz, kiedy nastąpił moment kiedy to nagroda przestała grać najważniejszą rolę, a stała się tematem pobocznym? Mówiłeś na początku, że to właśnie ona skłoniła Cię do zgłoszenia się do naszego programu.

Kiedy dowiedziałem się jaką wartość ma OpenMRS dla społeczności, która go wykorzystuje. To nie tylko tych kilkunastu programistów, to całe tysiące lekarzy, pielęgniarek i pacjentów. Całe szpitale w niektórych krajach funkcjonują dzięki takim inicjatywom. Czasem nawet szkoda człowiekowi, że nie może sobie pozwolić, aby dać większy wkład w to przedsięwzięcie.

Miałeś poczucie, że robisz coś więcej niż tylko zwykłe kodowanie i dokładasz swoją cegiełkę do wielkiego projektu, który zmienia życie wielu ludzi na całym świecie?

Zapewne odpowiedź „tak” nie będzie satysfakcjonująca, ale najlepiej oddaje postać rzeczy.

A tak bardziej prywatnie, jak ważne jest dla Ciebie pomaganie innym? Czy to też był jeden z powodów dołączenia do programu czy temat zupełnie nieważny wtedy?

Wtedy? Trzy miesiące temu? To był projekt programistyczny jak każdy inny. Jakiś program, jakaś baza danych, Java, Spring i szansa na nagrodę, jeżeli uda się dopisać kilka linijek kodu. Dopiero z czasem zrozumiałem czym naprawdę jest OpenMRS, że to nie tylko program, taki większy notatnik czy kalkulator. Że to coś więcej, coś co nawet ciężko opisać słowami.

To chyba ostatnie moje pytanie. Czy miałbyś coś do dodania, jakąś radę lub sugestię dla całego community lub osób początkujących? Jesteś jego częścią i także masz wkład w to jak będzie wyglądać w przyszłości.

W pierwszej kolejności chciałbym podziękować za wyrozumiałość i pomoc, którą uzyskałem na początku mojej przygody, nie tylko Danielowi, bo wiele osób podaje pomocną dłoń, gdy jest ona potrzebna. A co do rady czy sugestii, chciałbym, aby się nie poddawali, aby dalej jako społeczność trwali przy projekcie, naprawiali go i ulepszali, zaś osobom początkującym radzę nie przerażać się ogromem dokumentacji, z pewnością ktoś skieruje was w odpowiednie miejsce, jeżeli tylko o to zapytacie.

Naprawdę bardzo się cieszę, że wziąłeś udział w naszym projekcie i włożyłeś w community tyle swojej pracy. Dziękuje raz jeszcze i trzymam kciuki za pracę magisterską 🙂

Koniec części trzeciej i ostatniej.

Nasz wywiad dobiegł końca. Bardzo było nam miło przeprowadzić rozmowę z Łukaszem (nick sacull) i poznać jego historię oraz sławny przepis na sukces, który w tak krótkim czasie pozwolił mu zdobyć awans na dev2 i wygrać nagrodę.

Mam nadzieję, że wywiad podobał się i w przyszłości zachęci nowe osoby do wzięcia udziału w naszym programie i spróbowania swoich sił w community OpenMRS.

Leave a Reply

Your email address will not be published. Required fields are marked *