Model kompetencji programisty

Psychologia programowania i komunikacja

Wraz ze wzrostem zainteresowania metodykami z nurtu Agile od programisty oczekuje się więcej niż tylko programowania. Wydaje się, że będzie umiał porozmawiać z potencjalnym użytkownikiem na temat jego oczekiwań, że do pewnego stopnia określi wymagania. Oczekuje się również, że programista będzie łączył niektóre umiejętności analityka, architekta, konsultanta. Wzrasta waga kompetencji miękkich w zawodzie dewelopera.

Zajmowanie się programowaniem, a więc rzeczami wymagającymi dużego skupienia i dbałości o szczegóły i jednocześnie komunikowanie się z osobami nietechnicznymi, dla których ważniejsze są kompetencje miękkie, może sprawiać nie lada kłopot. Przyczyną jest tzw. strefa programisty (ang. programmer zone). Jest to stan psychofizyczny podobny do transu, który pojawia się u ludzi zajmujących się złożonymi i wymagającymi dużej uwagi zadaniami. Osoba w tym stanie ma zawężone pole uwagi tylko do wykonywanej czynności. Jest to produktywny stan, umożliwiający efektywną pracę. Sięgamy w nim po zasoby nieświadomego umysłu. Minusem jest ograniczone postrzeganie świata zewnętrznego znajdującego się poza zadaniem. Cenną umiejętnością dewelopera jest świadome i skuteczne zarządzanie swoim stanem psychofizycznym, gdy musi przełączać się pomiędzy czynnościami programistycznymi i nieprogramistycznymi. Tu wyliczamy kompetencje dotyczące:

• efektywnego komunikowania się;

• pozyskiwania informacji od osób nietechnicznych;

• asertywności;

• samoświadomości;

• zarządzania stanem i strefą.

Praca nad zadaniem

Powiedzieliśmy wcześniej, że programista borykający się z zadaniem jest zostawiony sam sobie, że brak jest usystematyzowanego podejścia w jego pracy. Opierając się na przedstawionym modelu, programista pracujący nad pojedynczym zadaniem przechodzi przez następujące etapy:

1. precyzuje wymagania;

2. określa czas wykonania;

3. planuje prace nad zadaniem;

4. projektuje rozwiązanie;

5. implementuje;

6. testuje;

7. zakańcza zadanie.

W tym cyklu wykorzystywane są kompetencje ze wszystkich poziomów. Szczególnie ważnym etapem jest zakańczanie zadania. Jest to moment, w którym programista:

• przygotowuje after action review;

• porównuje przyjęte założenia i plan pracy z rzeczywistymi wynikami;

• wyciąga wnioski;

• rozlicza się z zadania.

Etap zakańczania zadania pozwala uczyć się na błędach, zastanowić się, co poszło niezgodnie z oczekiwaniami i dlaczego, wyciągnąć wnioski na przyszłość. W ten sposób doskonalimy własny warsztat.

Zobacz również:

  • Mistrzowie sztuki motywacji
  • Relacja z WWDC 2023 - najważniejszej konferencji Apple w roku
  • 9 cech wielkich liderów IT

Autorzy są trenerami i konsultantami w firmie BNS IT. Badają i rozwijają metody psychologii programowania, pomagające programistom lepiej wykonywać ich pracę.


TOP 200