pragmatic coders odpowiedzialność

Czy na pewno jesteś samodzielnym developerem? O kompetencjach w 2021 roku

Co sprawia, że niektóre zespoły wywiązują się lepiej ze swoich obowiązków? Spory wpływ na to ma poziom samodzielności jego członków. Początkujący programiści często nie biorą pod uwagę szerszego kontekstu produktu, nad którym pracują. Powinni jednak dążyć do samodzielności, która przychodzi z czasem, a na pewno z wiedzą. 

O tym, dlaczego organizacje powinny stawiać właśnie na tę kompetencję, rozmawialiśmy z Jakubem Nogą, Software Developerem, oraz Marią Marasek, HR Business Partner, z Pragmatic Coders.

Każda firma ma różne definicje samodzielności. Czym ona jest dla Was

Jakub: Samodzielność jest wtedy, kiedy bierzemy odpowiedzialność za swoją pracę. A jak bierzemy odpowiedzialność, to chcemy dostarczyć przyrost produktu (increment), który da wartość biznesową w ustalonym czasie. Często developer potrafi tworzyć implementacje w ogóle nieadekwatne do rzeczywistej potrzeby biznesowej z wielu różnych powodów. Zdarzają się też trudności w rozwiązaniu problemu i zapominanie, że pracuje w zespole, który jest po to, żeby właśnie pomóc. Innymi słowy, developer powinien skupiać się na dostarczaniu wartości. Jeśli jej nie ma, to taką osobę trzeba kontrolować, co sprawia, że samodzielna nie jest i nie ma znaczenia, czy jest to junior, mid czy senior. 

Maria: Dla mnie samodzielność to umiejętność wzięcia całościowej odpowiedzialności za powierzone zadania. Mocno związane jest to z podejściem do rozwiązywania problemów, które przychodzą w trakcie pracy – np. uszczegółowienie wymagań z biznesem. I nie chodzi tutaj o bycie „wszechogarniaczem” i zdolność rozwiązywania wszystkiego własnymi rękami, ale o uważność, wzięcie pod uwagę szerszego kontekstu, adresowanie ryzyk. 

W moim przekonaniu ważnymi umiejętnościami związanymi z samodzielnością jest np.:

  • właściwe formułowanie pytań, zadawanie ich właściwym osobom, 
  • w przypadku delegowania odpowiedzialności – upewnienie się, że przekazywane informacje są kompletne i zostały zrozumiane zgodnie z naszą intencją,
  • wzięcie pod uwagę szerszego kontekstu – o użytkownikach, biznesie – nie z perspektywy „u mnie działa”, ale przez pryzmat potencjalnych problemów użytkowników.

Zmiana pracy nie jest niczym nadzwyczajnym w IT, co jednocześnie oznacza, że wielu programistów ma różnie doświadczenia i zwyczaje, które wynieśli z innych organizacji. Jakie przyzwyczajenia, dobre praktyki chcielibyście, aby wynosił każdy z pracowników PC, nawet gdy zdecyduje się o zmianie miejsca pracy?

Jakub: Myślę, że każdy, kto dłużej pracował w PC pozostanie pragmatyczny i nie będzie bezmyślnie pisać kodu tylko dla sztuki, lecz z myślą o szerszej perspektywie produktowej czy biznesowej. Życzyłbym sobie, aby każdy nauczył się tutaj, jak być dobrym słuchaczem, otwartym na pomysły innych oraz na feedback.

Maria: Do tego, o czym wspomniał Jakub, dodałabym jeszcze świadomość odpowiedzialności za swoje decyzje i działania. W Pragmatic Coders mamy bardzo płaską strukturę, która z jednej strony wymaga od naszych ekspertów wzięcia odpowiedzialności, a z drugiej daje szerokie pole do nauki i rozwoju.

Porozmawiajmy o wartościach. Czy samodzielność to cecha, która przekonuje pracodawców do zatrudnienia kandydata?

Jakub: Z perspektywy biznesu liczy się zespół. Samodzielny zespół to taki, który będzie partnerem dla klienta w budowaniu lub optymalizowaniu biznesu. Czyli nie tylko pozna procesy biznesowe, jakie zachodzą w domenie klienta, ale je przede wszystkim zrozumie, a dzięki temu odpowiednio dobrze zamodeluje i zaimplementuje rozwiązanie podatne na przyszłą zmianę biznesową. Tak samo jak z programistą, samodzielny zespół to taki, którego nie trzeba kontrolować z zewnątrz.

Maria: Z perspektywy naszych potrzeb jako pracodawcy samodzielność jest jedną z ważniejszych kompetencji, którą sprawdzamy w czasie rozmów rekrutacyjnych. Zależy nam na współpracy z osobami, które chcą wyjść poza swój stack technologiczny, pochylą się nad szerszym kontekstem, będą dążyć do zrozumienia biznesu klienta. Zrozumienie sytuacji i kontekstu jest pożądane. Inne wartości, które są dla nas kluczowe i którymi kierujemy się w codziennych działaniach to, tak jak wspomniał Jakub, umiejętność pracy w zespole – dodam, że często złożonym ze specjalistów w różnych dziedzinach i o różnych charakterach. 

Praca w takich zespołach wymaga dobrych umiejętności interpersonalnych: komunikacji, słuchania, umiejętności przekazywania, ale też poszukiwania informacji zwrotnych. Znaczenie komunikacji jest coraz większe, zwłaszcza w kontekście obecnej sytuacji, gdzie wiele zespołów pracuje zdalnie, nierzadko w różnych strefach czasowych. W Pragmatic Coders ważny jest też dla nas brak przyzwolenia na obojętność – jeżeli widzimy, że coś nie działa, jest nieefektywne – dążymy do zmiany tego stanu rzeczy, a na pewno podniesienia tej kwestii i ewentualnego wspólnego poszukiwania rozwiązania.

pragmatic coders praca hr

Co jest cenniejsze dla pracodawcy: samodzielność czy znajomość języków programowania oraz frameworków?

Jakub: Kiedyś na development patrzyłem tylko przez pryzmat języków i frameworków, i myślę, że wiele osób tak ma, dopóki nie trafią na ludzi (w moim przypadku było to PC), którzy pokażą im odmienny punkt widzenia. Bo w końcu o wiele trudniej jest zmienić przyzwyczajenia i cechy naturalne niż nauczyć się jakiegoś frameworka. Dlatego właśnie na rozmowach rekrutacyjnych zdecydowanie bardziej patrzymy właśnie na takie aspekty jak: samodzielność, komunikację, podejście do problemu lub to, w jaki sposób ktoś przyjmuje feedback. 

Maria: Myślę, że trudno tutaj o jednoznaczną odpowiedź. Można odnieść wrażenie, że szeroko pojęte kompetencje „techniczne” są najistotniejsze, jednak z moich obserwacji wynika, że są równie ważne jak samodzielność czy komunikacja. Jedną z naszych wartości w Pragmatic Coders jest rozwój – nie oczekujemy, że każdy z nas będzie we wszystkim świetny, ale widzimy potrzebę łączenia kompetencji technicznych z miękkimi – wtedy najefektywniej jesteśmy w stanie współpracować z klientami oraz ze sobą nawzajem, jako zespół. 

Jak samodzielność ma się do pracy zespołowej?

Jakub: Myślę, że trochę już poruszyliśmy ten temat. Samodzielny developer ma świadomość, że pracuje w zespole. Oznacza to, że nie boi się poprosić o pomoc, kiedy jest w potrzebie, oraz chętnie jej udziela, kiedy potrzebuje tego zespół. Samodzielny developer potrafi iść na kompromis dla dobra zespołu oraz jego celów biznesowych. Każdy zespół jest inny, ma inne problemy i doświadczenia. Samodzielny developer powinien brać te kwestie pod uwagę i odpowiednio dostosować swoje metody pracy pod zespół. 

Maria: Zespół powinien być samodzielny. Zespoły w naszej organizacji budujemy tak, żeby były samowystarczalne, nie dążymy do prowadzenia projektów rękami jednej osoby „od wszystkiego”.

Jak organizacja może wesprzeć samodzielność swoich programistów?

Jakub: Nie ma samodzielności bez odpowiedniej świadomości, a świadomości bez doświadczenia i edukacji. W Pragmatic Coders pracuje wiele zespołów nad wieloma różnymi produktami z wieloma różnymi klientami, co daje naprawdę fajne możliwości wymiany doświadczeń, wymiany wiedzy. Niejednokrotnie ktoś może spojrzeć na nasze problemy, zmagania z zupełnie innej perspektywy. To wszystko sprawia, że stajemy się coraz bardziej samodzielni i działamy z większą pewnością siebie.

Maria: Organizacja może wspomagać samodzielność promując ją i głośno mówiąc o jej znaczeniu i wartości – na poziomie jednostkowym, jak i zespołowym. Jakiś czas temu postanowiliśmy wzmocnić i uwspólnić przekaz dotyczący kluczowych kompetencji z perspektywy Pragmatic Coders. Stworzyliśmy w tym celu matrycę kompetencji opisującą kluczowe umiejętności na poziomie juniora, regulara, seniora. Umiejętności miękkie są tam równie ważne, jak kompetencje techniczne. Zależało nam, żeby zarówno na etapie rekrutacji, jak i w rozmowach o rozwoju odnosić się do nich, podkreślić ich znaczenie. 

Samodzielność powinna leżeć w zainteresowaniach juniora? Czy raczej powinien skupić się na słuchaniu i uczeniu się?

Jakub: Samodzielność powinna leżeć w zainteresowaniach każdego. A właściwie każdy powinien dążyć do samodzielności. Jej definicja trochę będzie się zmieniać w zależności od tego, jakie ktoś ma wobec nas oczekiwania. Od juniora można oczekiwać, że jak ma problem, którego nie jest w stanie rozwiązać od godziny, to przyjdzie od razu a nie za dwa dni. Od seniora można oczekiwać, że nie stworzy armaty na muchę lub że sam zaopiekuje się juniorem. Każdy z nich powinien być świadomy tych kwestii, a dodatkowo powinien być zawsze skupiony na słuchaniu i uczeniu się. 

Maria: Dodam tylko, że nikt nie rozwinie się za nas – nawet najlepszy mentor czy lead. To każdy z nas jest odpowiedzialny za własny rozwój. Świetnie jest czerpać wiedzę i wsparcie od mentorów, ale to my musimy poszukiwać odpowiedzi na pytania, dociekać, działać. 

odpowiedzialność programisty

Skupiliśmy się na ważnej cesze – samodzielności. Porozmawiajmy o innych kompetencjach developera w 2021 r. Co sądzicie o pracy zdalnej? Kiedyś był to rarytas, później warty uwagi benefit, a dzisiaj?

Jakub: Z moich doświadczeń z pracą zdalną wynika, że jest ona tylko i wyłącznie dla ludzi samodzielnych. W każdym innym przypadku jest nieefektywna i powoduje spowolnienie pracy nie tylko osoby niesamodzielnej, ale całego zespołu, w którym owa niesamodzielna osoba pracuje. W biurze wystarczy podejść. Zdalnie nie wystarczy napisać. 

Maria: Na dzień dzisiejszy w wielu firmach jest to standard wymuszony sytuacją pandemii. Po ponad roku od przejścia na tryb zdalny, jesteśmy bogatsi o umiejętność pracy z domu. Nastroje i opinie względem pracy zdalnej w naszym zespole zmieniają się z upływem czasu, natomiast widzimy, że ta sytuacja pozostaje nie bez wpływu na relacje pomiędzy zespołami, które ulegają rozluźnieniu. Wiele osób deklaruje, że w przyszłości chciałoby wrócić chociażby w częściowym wymiarze do biura. Widzi w tym wartość dla siebie.

Jakie firma powinna stworzyć warunki, by ułatwić zespołom eksperymentowanie, podejmowanie się różnych wyzwań?

Jakub: W mojej opinii wystarczy, aby firma starała się jak najlepiej dzielić wiedzą i doświadczeniem. Wytrawny obserwator przekuje to w inicjatywę u siebie w projekcie.

Maria: Myślę, że dobrym punktem startu jest budowanie świadomości i odwagi zespołu do eksperymentowania i podejmowania wyzwań. Można to osiągnąć poprzez dawanie przykładu przez liderów oraz otwarte i głośne docenianie osób i zespołów, które to robią. To właśnie podejście organizacji i odbiór takich inicjatyw mają kluczowe znaczenie. Oczywiście nie wszystkie eksperymenty kończą się sukcesem, warto na forum podzielić się wnioskami z nich – z jednej strony budując i wzmacniając otwartość, ale też pozwalając innym nie powielać ewentualnych błędów czy wyciągać własne wnioski.

Każda organizacja dba o efektywność zespołów i o to, by projekty były dowiezione na czas. Po zakończonej pracy warto przeanalizować, co się udało zrobić, a czego nie i dlaczego? Co jeszcze warto poddać analizie?

Jakub: Jeśli zaczniemy analizować dopiero po zakończonym projekcie, to już będzie za późno. O wielu istotnych kwestiach po prostu zapomnimy. Bardzo lubię powiedzenie, że czasem nie liczy się outcome tylko droga do outcome i myślę, że właśnie w trakcie trwania projektu powinniśmy zadbać o takie analizy, chociażby w postaci retrospektyw czy sesji post-mortem.


Jakub Noga. Software Developer w Pragmatic Coders. Od prawie 10 lat tworzy software, głównie backendowy. Z entuzjazmem eksploruje filozofię Domain Driven Design i wszystko co lepiej pozwala zrozumieć i zamodelować procesy biznesowe. Prywatnie niewyspany tata bliźniaków.

Maria Marasek. HR Business Partner w Pragmatic Coders, od prawie 10 lat wspiera firmy z branży technologicznej w budowaniu efektywnych zespołów i budowaniu wzajemnego zaufania między technologią i biznesem. W wolnych chwilach stara się poszerzać wiedzę z zakresu psychologii.

Zapraszamy do dyskusji

Patronujemy

 
 
More Stories
Rosyjscy oszuści chcą zarobić na LibraCoin. Sprzedają fałszywe kryptowaluty