Odcinek 17 | Od pasji do pierwszej pracy w IT

W EXATEL trwa właśnie trzymiesięczny program letnich praktyk. Ale przygoda z naszą firmą wcale nie musi zakończyć się wraz z praktykami. Dobrym przykładem jest tutaj nasz kolega, Michał Bobeł. Michał rozpoczął swoją przygodę z nami podczas zeszłorocznych praktyk, a teraz jest Młodszym Programistą Java w Zespole R&D pracującym przy projekcie SDN.
Chcesz wiedzieć jakie korzyści przyniosły mu praktyki w projekcie R&D, jakie umiejętności zdobył oraz jakie są ulubione aspekty pracy Michała w zespole badawczo-rozwojowym? Tego wszystkiego i jeszcze więcej dowiesz się z rozmowy, którą z Michałem przeprowadziła Sylwia Buźniak, HR Business Partner w EXATEL.

EXATELLERS to rozmowy o technologii, biznesie i trendach w obszarze telekomunikacji i cyberbezpieczeństwa. W tym podcaście rozmawiamy o tym, jak w EXATEL łączymy telekomunikację z innowacjami i dlaczego prowadzimy działania R&D tworząc własne rozwiązania. Ja nazywam się Sylwia Buźniak, jestem senior HR Business Partnerem i do tego programu będę zapraszać ekspertów EXATEL, aby poznać kulisy ich pracy i zrozumieć, które technologie są kluczowe dla rozwoju biznesu. Zapraszam.

Sylwia: Dzień dobry, w dzisiejszym odcinku podcastu, moim i Państwa gościem jest Michał Bobeł, praktykant, obecnie młodszy programista Java w naszym projekcie R&D: SDN. Cześć Michał!

Michał: Cześć!

Sylwia: Dzięki, że skorzystałeś z zaproszenia. Jest to dla mnie o tyle nietypowa i ciekawa rozmowa, że Twoja ścieżka w EXATEL jest ciekawa, ponieważ zaczynałeś od praktyk letnich w 2022 roku. Jakie korzyści przyniosły Ci praktyki w naszym projekcie? Jakie umiejętności zdobyłeś i nad jakimi tematami i zadaniami pracowałeś?

Michał: Na pewno bardzo poszerzyłem zakres swojej wiedzy i nie mówię tu tylko o programowaniu w Javie, czyli tym co mnie głównie zawsze interesowało, ale też o rozwoju w kierunku wszystkich technologii, które uczestniczą w procesie wykonywania całej aplikacji. Java to jeden komponent i do niej dochodzi jeszcze dużo innych, z czego o niektórych nawet nie miałem pojęcia. Myślę, że zdecydowanie te praktyki dały mi wiedzę, chociażby w którym kierunkowo mam się rozwijać, poza samą Javą.

Sylwia: A czy miałeś wcześniejsze doświadczenia zawodowe, czy jesteś samoukiem? Jaka jest Twoja historia?

Michał: Jestem samoukiem. Praktycznie od gimnazjum interesowałem się Javą, czytałem książki. Fajnie się również trafiło, że mój wujek jest starszym programistą i to właśnie on kupił mi pierwszą książkę o Javie.

Sylwia: Ile czasu poświęcałeś na rozwój? Jak wygląda taka samodzielna ścieżka i nauka indywidualna?

Michał: W sumie różnie, zależnie od moich preferencji. Niekiedy więcej czasu poświęcałem na samo czytanie książek, a czasami po prostu starałem rozwijać swoje własne projekty. Ale wiadomo, że bez teorii, nie ma praktyki, dlatego musiałem sporo czasu poświęcić na rozwinięcie się w kierunku tej teorii i przeczytanie paru książek, żeby móc zacząć rozwijać się praktycznie i potem już jakoś to poszło do przodu.

Sylwia: Wchodząc do projektu EXATEL SDN, gdzie próg wejścia jest wysoki ze względu na łączenie kompetencji programistycznych z wiedzą z zakresu sieci komputerowych – jednak jest tutaj duża kompatybilność w połączeniu programowania i siedzi telekomunikacyjnych – jak wyglądały Twoje początki? Jak się odnalazłeś? Jakiego wsparcia udzielił Ci zespół?

Michał: Miałem już z tym trochę styczność w technikum. Tam już zacząłem troszkę rozwijać te tematy związane z sieciami. W poprzedniej pracy byłem na stanowisku  administratora sieci, więc nie była to dla mnie pierwszyzna. Ale w EXATEL są to tematy zdecydowanie bardziej skomplikowane. Na pewno dzięki temu, że pracowaliśmy pod okiem Tomka, naszego menadżera, duże się nauczyłem i nigdy nie czułem, że brakuje mi wiedzy, bo zawsze wiedziałem, że mogę się do kogoś z jakimś problemem zwrócić. Dzięki temu szybko zdobyłem wiedzę o sieciach.

Sylwia: A jak wygląda dokumentacja? Tworzycie ją? Czy osoby które dołączają, mają taką bazę wiedzy, dotyczącą projektu?

Michał: Tak. Właśnie to mi się spodobało, że na początku nie zostaliśmy wrzuceni na głęboką wodę, tylko dostaliśmy tutorial, poradnik jak sobie całe nasze środowisko ustawić. Mieliśmy wyznaczony tydzień, żeby nasze komputery po prostu przystosować do pracy i dopiero wtedy zaczęliśmy już właściwą pracę.

Sylwia: Jakie zadania przepisano Ci od czasu zatrudnienia na pełen etat? Bo po praktykach zdecydowaliśmy się wspólnie kontynuować współpracę. Jak wyglądało to przejście?

Michał: Było bardzo płynne, ponieważ zadania, które mieliśmy na praktykach, nie odbiegały bardzo od tego co dostaliśmy po ich zakończeniu. Po prostu szliśmy dalej z tym flow, które mieliśmy. Bardzo pozytywnie więc odebrałem to przejście na etat.

Sylwia: A jeżeli chodzi o wsparcie seniorów dla juniorów, jak to wygląda z Twojej perspektywy juniora?

Michał: Według mnie od początku nie było żadnych problemów. Jak już jakiś miałem, to wiedziałem do kogo mogę się z tym zwrócić i nigdy nie było tak, że zostałem sam z tym problemem. Nieocenioną pomoc dostawałem zarówno od lidera naszego zespołu, jak i liderów innych zespołów.

Sylwia: Jakie technologie Java – i ogólnie stock technologiczny około Javowy – najbardziej Cię fascynują i dlaczego?

Michał: Najbardziej mnie fascynuję chyba najpopularniejszy framework, tj. Spring, w którym obecnie się rozwijam czytając książkę. Jest to dla mnie pewna nowość, a lubię dowiadywać się nowych rzeczy, więc jest to dla mnie coś fajnego. Na pewno jest to bardzo popularny framework i dający wiele możliwości.

Sylwia: Czy wykorzystujecie go w projekcie?

Michał: Wykorzystujemy jako back-end do naszego projektu EXPO.

Sylwia: Z tego co wiem, to w projekcie wykorzystujecie też mniej popularny framework OSGi. Czy miałeś styczność wcześniej z OSGi, czy dopiero w EXATEL?

Michał: Zgadza się. Mam właśnie teraz styczność z tym frameworkiem, ale jego nie używamy do naszego back-endu EXPO, tylko używamy go w projekcie ONOS. Jest to coś nowego, nie tak popularnego i nie dziwię się, że OSGi nie zyskało takiej popularności, bo jest troszkę bardziej skomplikowane, ale ma też swoje zalety względem Springa. Myślę, że jest to po prostu kwestia preferencji. Da się na nim pracować, ale wymaga nieco więcej nakładu pracy.

Sylwia: Możesz wyjaśnić czym Twojej perspektywy jest ONOS?

Michał: ONOS to taka aplikacja do zarządzania siecią. W skrócie: możemy do niego podpiąć urządzenia sieciowe i zamiast logować się na każde urządzenie i je konfigurować, to możemy jakąś konfigurację wrzucić do ONOS-a, a on sobie to wszystko ładnie poustawia i możemy mieć dzięki temu sieć SDN.

Sylwia: Skoro jesteśmy już przy technologiach, to opowiedz w ogóle o stack techu w Twoim zespole. Z jakimi technologiami pracujesz?

Michał:  Front-end to u nas Angular. Jest to bardzo popularną technologia, którą większości osób zna. Dalej mamy back-end w Springu i później ten back-end odpytuje ONOS-a. I mamy jeszcze komunikację między ONOS-em a EXPO poprzez kawkę w obie strony.

Sylwia: A na której wersji Javy?

Michał: Staramy się właśnie przejść z wersji 11 na 17, więc myślę, że mogę tu udzielić odpowiedzi że 17.

Sylwia: Jak radzisz sobie z rozwiązywaniem problemów programistycznych? Czy masz jakieś ulubione strategie bądź narzędzia, których używasz? Generalnie całe R&D pracuje w modelu 100% zdalnie, więc ta zdolność do rozwiązywania problemów i do organizowania pracy własnej, jest bardzo ważna. Jak Ty to robisz?

Michał: W pracy zdalnej podoba mi się właśnie ta swoboda. Często mam tak, że potrzebuję jakiejś inspiracji, motywacji żeby coś wymyśleć. Myślę, że każdy programista spotkał się z tym, że w środku nocy nagle sobie wymyślił rozwiązanie jakiegoś problemu. Jeśli kompletnie nie mam pomysłu jak coś rozwiązać, to odkładam problem na później. Jak czuję, że mam inspirację, to po prostu rozwiązuje te problemy, które kiedyś odłożyłem.

Sylwia: Jakie są Twoje plany na rozwój zawodowy jako programista Java? Czy myślałeś już o swojej ścieżce zawodowej i technologiach, które chcesz poznać lub rolach, które chciałbyś objąć?

Michał: Obecnie rozwijam się w stronę Springa, bo czuję, że tu mi brakuje głównie wiedzy. Poza tym myślę, że może pójdę w kierunku lidera jakiegoś zespołu, być może później menadżera, ale to już są dalekosiężne plany. To o czym teraz myślę, to głównie rozwój w stronę Javy i tych technologii, z którymi na co dzień mam styczność.

Sylwia: Praca w zespole rozproszonym wymaga też dużej organizacji pracy nie tylko menadżera, żeby zarządzić zespołem, ale też waszej. Jak wygląda wasz sposób komunikacji? Bo wiem, że funkcjonujecie w stylu komunikacji asynchronicznej. Jak to wygląda na co dzień?

Michał: Korzystamy z Rocket.Chata. Poza tym mamy codziennie spotkania, tzw. daily, o 9 rano na Zoomie. Każdy mówi podczas spotkania co zrobił, co będzie robił i czy napotkał ewentualnie jakieś problemy. Staramy się wtedy wszyscy sobie nawzajem pomagać. Komunikacja wygląda więc bardzo dobrze zarówno między zespołami, jak i w samym zespole.

Sylwia: A kwestia dzielenia się wiedzą. Macie czas, żeby wymieniać się tą wiedzą, wspierać i rozwijać?

Michał: Nieraz się tak zdarzyło, że mieliśmy jakieś spotkania specjalnie przygotowane po to, żeby ktoś, kto wie więcej od nas, znalazł czas żeby nam to wytłumaczyć. I te spotkania są bardzo pomocne.

Sylwia: A macie jakieś webinary bądź takie „devtalki” między zespołami?

Michał: Mamy i tak właśnie dzielimy się wiedzą. W sumie ta komunikacja między zespołami jest tak płynna, że coś takiego nie jest nawet zazwyczaj potrzebne, bo siedzimy po prostu w podobnych tematach.

Sylwia: Chciałabym się teraz trochę skupić na jakimś case’ie, wyzwaniu bądź trudności, z którą musiałeś się zmierzyć.

Michał: Przypominam sobie takie jedno zadanie. Nazywało się to „podbicie YANG-ów”. Chodziło o to, że przechodziliśmy na nową wersję urządzeń DriveNets. I tam są zawsze takie problemy, że przy podbiciu, czyli przechodzeniu na nowszą wersję, musimy wygenerować z plików yang klasy Javowe. Problem pojawia się wtedy, kiedy to urządzenie do generowania jest już bardzo stare, nierozwijane od wielu lat i po takim wygenerowaniu jest pełno błędów. Czyli tych klat, które się wygenerowało, nie da się po prostu użyć. W sumie to zadanie robiliśmy w trzy osoby, ponieważ było to tak trudne. Koniec końców udało nam się naprawić te dawno nierozwijane narzędzie i udało się to wygenerować po około dwóch tygodniach pracy i zakończyć zadanie, choć nie było łatwo.

Sylwia: Tydzień lub dwa na trudne zadanie to wydaje mi się bardzo mało.

Michał: Jeśli się je robi w trzy osoby, to wychodzi dosyć dużo story pointów i dużo roboczogodzin.

Sylwia: Skoro tak płynnie przeszedłeś do tematu story pointów, to czy Ty jako młodszy programista masz już wprawę w wycenianiu i planowaniu zadań i braniu tematów z backlogu?

Michał: Tak, czuję się na siłach. Słyszałem że to nie jest zbyt odpowiedni sposób, żeby wyceniać zadania po czasie, jaki się myśli że się na nich spędzi. Bardziej powinno wyceniać się po złożoności. Ja podchodzę do tematu, że ogólnie jeśli coś mi zajmie tydzień, to dla mnie jest to około 8 story pointów. Wiadomo, że nigdy nie da się tego ocenić co do minuty i sekundy ile co mi zajmie, ale mam taką skalę w swojej głowie i wiem jak co ocenić.

Sylwia: Jak z Twojej perspektywy wygląda praca w projekcie w metodyce zwinnej (scumowej)? Jak wyglądają – mówiąc językiem scrumowym – te ceremonie?

Michał: Niektóre partie scruma są według mnie pomocne, ale czasem jest tego za dużo i zbyt wiele czasu poświęca się na spotkania, niż na samą pracę. Jakiś czas pracowaliśmy przed wydaniem pewnej pełnej wersji w Kanbanie i według mnie jest to lepszy sposób pracy. Choć może zależy to od projektu, ale u nas scrum nie zawsze do końca się sprawdza. Wiadomo, że na dłuższą metę ciężko to ocenić, bo w scumie już długo pracowaliśmy, a w Kanbanie chwilę, więc może to tylko się wydawać, że było dużo lepiej. Ale Scrum to nie jest lekarstwo na wszystkie choroby. Czasem po prostu trzeba spróbować czegoś innego.

Sylwia: Sztuką jest też wybieranie najlepszych rzeczy z danej metodyki. Czysty Scrum nie do końca też chyba istnieje. Nie wierzę wręcz, że istnieje i da radę go zaimplementować zerojedynkowo.

Michał: Każdy zespół dostosowuje pod siebie tę metodologię, ale jednak żeby to był w ogóle Scrum, to trzeba się trzymać pewnych zasad, które nie zawsze przyspieszają pracę.

Sylwia: To tak na świeżo: macie sprinty dwutygodniowe. Jak wygląda Twój obecny sprint? Czym się zajmujesz?

Michał: W tej chwili zaczęliśmy właściwie nowy temat, który nazywa się Monit Proactive. Polega on na tym, że będziemy monitorować usługi użytkownika i jeśli coś pójdzie nie tak (np. nastąpi awaria), to wrzucamy do Jiry zgłoszenie problemu. Wiemy wtedy, że coś poszło źle i jesteśmy w stanie użytkownikowi ten problem usunąć. A jeśli chodzi o mnie, czym w tej chwili konkretnie się zajmuję, to moim taskiem jest praca nad jobem do Jenkinsa, który po odpaleniu będzie na danym środowisku, czyli np. na produkcji jest w stanie dodać jakieś urządzenia do naszej platformy EXPO i przykładowo założyć na nich wybraną usługę.

Sylwia: Brzmi jak trudne zadanie.

Michał: Nie jest najprostsze i już mi chwilę zajęło. Tym bardziej, że muszę wykonać parę przeróbek w kodzie żeby się dostosować, bo czegoś takiego jeszcze nie mieliśmy. Dopiero się więc utożsamiam z tematem, ale myślę, że jest to do zrobienia i póki co dobrze mi idzie.

Sylwia: Jaką wartość widzisz w pracy w tym projekcie R&D? Bo nie jest to typowa aplikacja np. bankowa, gdzie wchodzi w grę też przemywanie kodu i ewentualnie przepisywanie pewnych rzeczy, jeżeli aplikacja jest przestarzała. Jest to całkowicie nowy temat.

Michał: Na pewno wchodzi w grę dużo eksperymentów i częste zmiany zakresu. Dlatego trzeba mieć to na uwadze, że to co dzisiaj uffznajemy „że to tak będzie”, to może się okazać że za tydzień trzeba to będzie przepisać na nowo. Taki jest urok R&D.

Sylwia: Nie frustrujecie Cię to?

Michał: Nie do końca, bo przy tym się uczę. Jak mówiłem: lubię się uczyć i lubię poznawać nowe tematy, a przy projektach R&D można ich poznać naprawdę bardzo dużo.

Sylwia: Komu poleciłbyś pracę w R&D?

Michał: Poleciłbym szczególnie osobom ambitnym i na pewno nie komuś, kto chce sobie siedzieć na zdalnej pracy i przepracować jak najkrócej się da i wyrobić pewną normę. Poleciłbym osobie, która ma rzeczywiście pewną ambicję i liczy na to, że czegoś się nauczy z takiego projektu.

Sylwia: Czy masz jakieś rady lub wskazówki dla osób, które rozważają podjęcie praktyk bądź ścieżkę junior developera właśnie w projektach R&D w obszarze Java?

Michał: Mogę się wypowiedzieć tylko za siebie. Obrałem drogę samouka i poszedłem głównie w czytanie książek i nie żałuję. Naprawdę polecam. Nawet jeśli ktoś studiuje czy uczy się na jakichś kursach, czy filmikach z YouTube’a, to zawsze dobrze jest to sobie urozmaicić i przeczytać jakąś książkę, chociażby krótką o czystym kodzie czy cokolwiek z tym związanego.

Sylwia: Czyli dobre praktyki, clean coad i znajomość skrótów w Solid czy Dry też się przydaje, tak?

Michał: Tak, przydaje się.

Sylwia: A czy korzystasz z platform rozwojowych? Bo w EXATEL takowe mamy.

Michał: Zawsze jednak byłem zwolennikiem książek, ale nie powiem że takie platformy też nie są pomocne. Dużo osób u nas z zespołu preferuje właśnie takie platformy i u nich się to sprawdza. Osobiście wolę sobie przeczytać książkę.

Sylwia: Czy jest w takim razie jakaś szczególnie poleca na przez Ciebie książka dla człowieka wchodzącego właśnie na drogę developera?

Michał: Mogę polecić tą od której ja zaczynałem, czyli „Thinking in Java”. Chyba tysiąc stron, ale naprawdę jest to kompendium wiedzy o Java. Poza tym polecam taki klasyk jak „Clean Code”, a obecnie czytam „Spring in Action”.

Sylwia: Michał, bardzo dziękuję Ci za rozmowę. To była dla mnie przyjemność. Bardzo cieszę się, że pracujesz w EXATEL i życzę Ci wszystkiego dobrego w dalszym rozwoju.

Michał: Dziękuję pięknie i życzę miłego dnia.

Sylwia Buźniak
HR Bussines Partner