Czym jest środowisko programistów i dlaczego jest ważne?
Środowisko programistów (DX lub DevEx) skupia się na doświadczeniach programistów — trudnościach, z jakimi spotykają się podczas codziennej pracy, oraz ich emocjonalnym stosunku do wykonywanych zadań.
W tym artykule wyjaśniono, dlaczego środowisko programistów jest ważne oraz w jaki sposób jego poprawa przekłada się na lepsze rezultaty zarówno dla programistów, jak i organizacji. Dodatkowo oferuje rekomendacje dotyczące wprowadzania istotnych zmian w zespole.
Zrozumienie środowiska programistów
Środowisko programistów stało się szeroko omawianym tematem, odkąd produktywność programistów zaczęła być głównym priorytetem większości zespołów inżynierskich. W obliczu rosnącej w ostatnich latach presji, aby maksymalnie wykorzystać inwestycje w talenty i technologie programistyczne, liderzy przeznaczali znaczne zasoby na udowodnienie, że tworzą zespoły o wysokiej wydajności i produktywności.
Jednak zespoły programistów oceniane według niewłaściwych wskaźników, takich jak liczba przepracowanych godzin czy ilość napisanego kodu, stają się mniej efektywne, próbując spełnić arbitralne wymagania. Przygotowany przez Atlassian raport „State of Developer Experience” wykazał, że ponad połowa liderów zespołów inżynierów korzystających ze wskaźników produktywności uważa je za nieskuteczne jako miarę wydajności programistów. Nic w tym dziwnego, jeśli weźmiemy pod uwagę, że 38% organizacji mierzy produktywność programistów liczbą przepracowanych godzin, jednak 69% programistów traci co najmniej 8 godzin tygodniowo z powodu nieefektywnej pracy.
Dlaczego środowisko programistów jest ważne?
Gdy organizacje usprawniają główne elementy środowiska programistów, ci ostatni mogą poświęcić więcej czasu na to, co naprawdę istotne: dostarczanie oprogramowania o wysokiej jakości. Programiści, którzy mogą skupić się na tym, co lubią, są znacznie bardziej produktywni niż osoby zmuszane do zwiększania wydajności mimo napotykanych przeszkód.
Lepsze środowisko programistów przekłada się nie tylko na ich wyższą produktywność — sprawia także, że są oni bardziej zadowoleni ze swojej pracy, co zmniejsza ryzyko ich odejścia z zespołu.
Przyciąganie i zatrzymanie talentów to kolejny powód, dla którego środowisko programistów jest tak istotne. Nasz raport pokazuje, że 63% z nich uznaje środowisko programistów za ważne lub bardzo ważne przy podejmowaniu decyzji, czy pozostać w obecnym miejscu pracy. Co więcej aż 86% liderów uważa, że bez poprawy środowiska programistów przyciągnięcie i zatrzymanie najlepszych specjalistów będzie niemal niemożliwe.
Elementy środowiska programistów
Badania pokazują, że pozytywne środowisko programistów opiera się na trzech podstawowych elementach. Są to:
Pętle informacji zwrotnej umożliwiające ciągłe doskonalenie dzięki uczeniu się i wprowadzaniu zmian
Łatwe zarządzanie obciążeniem poznawczym dzięki dobrze uporządkowanemu kodowi i łatwo dostępnej dokumentacji
Możliwość osiągnięcia „stanu przepływu”, w którym programiści płynnie przechodzą od zadania do zadania i są całkowicie pochłonięci pracą
Czynniki wpływające na środowisko programistów
Środowisko programistów w dużym stopniu zależy od jakości narzędzi oraz efektywności procesu tworzenia oprogramowania. Gdy narzędzia i procesy umożliwiają codzienne korzystanie ze wszystkich trzech elementów, środowisko programistów znacząco się poprawia, a zespoły programistyczne zyskują dzięki wyższej jakości oprogramowania i większemu zadowoleniu pracowników.
Wpływ na środowisko programistów ma również kultura zespołu. Zespół, który nie wspiera pętli informacji zwrotnej, nie chroni czasu skupienia na pracy i nie pomaga programistom w zaspokajaniu ich potrzeb, nie oferuje dobrego środowiska. Ostatecznie połączenie odpowiednich narzędzi i zmian kulturowych pozwoli poprawić środowisko programistów.
Strategie poprawy środowiska programistów
Organizacje mają bezpośrednią kontrolę nad środowiskiem swoich zespołów programistycznych, dlatego można i należy świadomie doskonalić środowisko programistów.
Chociaż poszczególne zespoły i organizacje mają inne potrzeby i problemy, strategie te stanowią doskonały punkt wyjścia do poprawy środowiska programistów. Jeśli te zmiany zostaną wdrożone, mogą znacząco wpłynąć na zadowolenie programistów oraz przełożyć się na wzrost produktywności.
Narzędzia i technologie
Twój łańcuch narzędzi DevOps dostarcza mnóstwo różnorodnych danych, dlatego warto zadbać, aby zespoły w pełni je wykorzystywały. Dodaj moduły pokazujące zadania w toku, liczbę błędów, czas rozwiązania, zgodność z warunkami umów SLA, gotowość do wydania, wykres spalania sprintu oraz status kompilacji. W ten sposób programiści zyskują całościowy obraz pracy, pozwalający im śledzić postępy, a także ustanawiane są stałe pętle informacji zwrotnych.
Aby uzyskać bardziej szczegółowy wgląd w mikrousługi i inne komponenty, z których korzysta Twój zespół, wypróbuj katalog komponentów oraz karty wyników systemów w Compass, wewnętrznej platformie programistycznej (IDP) Atlassian. Programiści mogą szybko uzyskać dostęp do informacji potrzebnych do pracy z komponentami, takich jak właściciel danego komponentu oraz sposób jego współdziałania z innymi systemami. Z kolei liderzy mogą korzystać z kart wyników, aby monitorować kondycję oprogramowania i zespołu w celu identyfikowania wąskich gardeł i blokerów.
Dokumentacja
W naszym Raporcie o stanie środowiska programisty ustaliliśmy, że 41% programistów wskazuje nieefektywną dokumentację jako główną przeszkodę. Jednak programiści nie zawsze mają czas (lub ochotę), aby tworzyć potrzebną im dokumentację. Sztuczna inteligencja może szybko i bez wysiłku tworzyć kod oraz opracowywać dokumentację, dzięki czemu programiści mogą skupić się na zadaniach o większym znaczeniu, które poprawiają doświadczenia programistów.
Na doświadczenia programistów wpływa nie tylko tworzenie dokumentacji. Według najnowszego badania programistów przeprowadzonego przez Stack Overflow ponad jedna czwarta programistów poświęca codziennie co najmniej godzinę na wyszukiwanie informacji. Narzędzia oparte na sztucznej inteligencji, takie jak Atlassian Rovo, mogą gromadzić i podsumowywać istniejącą dokumentację wewnętrzną oraz dane z narzędzi do zarządzania projektami, pozwalając ograniczyć czas poświęcany na czynności niezwiązane z tworzeniem oprogramowania i marnowany na żmudne wyszukiwanie informacji.
Proces onboardingu
Kiepski proces onboardingu prowadzi do negatywnych doświadczeń programistów. Zapewnienie programistom warunków sprzyjających osiągnięciu sukcesu sprawia, że czują się bardziej zadowoleni w nowej roli i pozwala im szybciej wdrożyć się w pracę. Dobrze opracowany onboarding to również coś, do czego członkowie zespołu mogą wracać, w miarę jak zapoznają się z różnymi aspektami swoich ról i nowymi komponentami oprogramowania.
Dzięki kompleksowemu katalogowi komponentów oprogramowania Compass zapewnia wszystko, czego potrzebują programiści, w jednym, ustandaryzowanym miejscu. Oszczędza to nowym pracownikom konieczności przeglądania stron dokumentacji lub ciągłego zwracania się do innych członków zespołu o wskazówki w pierwszych tygodniach pracy. Wszystko znajduje się w jednej, centralnej przestrzeni, więc nie ma potrzeby zapamiętywania ani dodawania niczego do zakładek na przyszłość. Korzystając z szybkiej i prostej funkcji wyszukiwania w katalogu komponentów, można znaleźć wszystko — od repozytoriów i bibliotek po interfejsy API.
Aby uzyskać więcej pomysłów dotyczących onboardingu, zapoznaj się z etapami onboardingu pracowników Atlassian.
Wsparcie i społeczność
Doświadczenia programistów to sposób, w jaki programiści postrzegają narzędzia i procesy wykorzystywane do tworzenia oprogramowania, więc jedynymi osobami, które wiedzą, jak wygląda sytuacja w Twojej organizacji, są właśnie Twoi programiści. Słuchając tego, co mają do powiedzenia Twoi programiści, możesz zbudować społeczność wśród swoich zespołów i okazać wsparcie dla ich doświadczeń.
W mniejszej organizacji być może uda Ci się porozmawiać ze wszystkimi programistami, jednak aby utworzyć skalowalny proces i bezpieczną przestrzeń do przekazywania opinii, zalecamy przeprowadzenie ankiet dotyczących doświadczeń programistów. Informacje uzyskane z ankiet możesz wykorzystać do śledzenia postępów w określonym obszarze priorytetowym. Pamiętaj tylko, aby doceniać otrzymane opinie i podejmować odpowiednie działania, tak aby Twoje zespoły widziały, że zależy Ci na poprawie doświadczeń programistów.
Regularne retrospektywy zespołu dają programistom i liderom okazję do wspólnej refleksji nad tym, co działa dobrze, oraz do utworzenia pętli informacji zwrotnych niezbędnych do budowania pozytywnych doświadczeń programistów. Dyskusje mogą dotyczyć zarówno kwestii kulturowych, takich jak obciążenie pracą czy terminy, jak i zagadnień technicznych, na przykład projektowania interfejsów API. Nasza gra Retrospektywa zawiera podstawowe instrukcje i szablony retrospektyw, a także warianty dostosowane do konkretnych sytuacji, które ułatwiają rozpoczęcie.
Kultura i środowisko pracy
W przypadku programistów utrzymanie płynności pracy jest niemożliwe, jeśli nie zapewni im się długich i nieprzerwanych okresów koncentracji. Oznacza to rezygnację z kultury spotkań i nieustannego przekazywania powiadomień o postępach. Wykorzystanie scentralizowanego narzędzia, takiego jak Compass, które gromadzi wszystkie potrzebne dla programistów informacje i analizy z całego zestawu narzędzi, może również ograniczyć konieczność przełączania kontekstu.
Niektóre zespoły wyznaczają dzień lub dwa dni w tygodniu jako „dni bez spotkań”. Jeśli wolisz podejście bardziej elastyczne, zachęć członków zespołu, aby zarezerwowali w kalendarzach kilka cyklicznych 90–120-minutowych przedziałów czasowych w terminach, które najbardziej im odpowiadają. Więcej pomysłów znajdziesz w raporcie Atlassian z 2023 roku dotyczącym spotkań.
Niezależnie od podjętych działań, warto umożliwić programistom wyciszenie telefonów i wyłączenie powiadomień z czatu, aby stworzyć środowisko pracy sprzyjające koncentracji zespołów.
Poprawa doświadczeń programistów dzięki narzędziu Compass
Compass to rozwiązanie IDP, które spełnia wszystkie wymagania dotyczące poprawy doświadczeń programistów:
Utrzymanie płynności pracy: Programiści nie muszą przeszukiwać archiwów ani przeszkadzać członkom zespołu, aby uzyskać odpowiedzi. Compass udostępnia wszystko w pojedynczej lokalizacji i w ujednoliconym formacie dzięki kompleksowemu katalogowi komponentów oprogramowania.
Zmniejszenie obciążenia poznawczego: programiści mają dostęp do informacji w jednej centralnej przestrzeni, więc nie muszą zapamiętywać szczegółów dotyczących wzajemnych powiązań między poszczególnymi elementami.
Zapewnienie pętli informacji zwrotnych: zespoły mogą wspólnie analizować kondycję operacyjną w ramach cotygodniowych, opartych na danych retrospektyw oraz praktyk CheckOps, aby stale poprawiać wydajność.
Te ulepszenia sprawiają, że praca staje się łatwiejsza i przyjemniejsza, co przekłada się na lepsze doświadczenia programistów w Twojej organizacji.
Doświadczenia programistów: najczęściej zadawane pytania
Jak wyglądają dobre doświadczenia programistów?
Dobre doświadczenia programistów pozwalają im skupić się na tym, co najważniejsze — częstszym dostarczaniu oprogramowania o wyższej jakości. Pozwalają im również utrzymać płynność pracy, zmniejszają obciążenie poznawcze i zapewniają pętle informacji zwrotnej. W rezultacie programiści są zadowoleni ze swojej pracy, mogą szybciej przejść onboarding i skupić się na tworzeniu oprogramowania, a także nie rozglądają się za nową pracą.
Jak mierzyć doświadczenia programistów?
Nie istnieje jeden uniwersalny wskaźnik ani zestaw wskaźników do mierzenia doświadczeń programistów. Wynika to z faktu, że doświadczenia programistów w dużym stopniu zależą od kontekstu poszczególnych zespołów i organizacji. Nawet gdyby wszystkie firmy korzystały z tych samych narzędzi i wskaźników w celu poprawy doświadczeń programistów, wyniki i tak różniłyby się znacząco między zespołami i firmami.
Aby zrozumieć doświadczenia programistów w organizacji, potrzebujesz całościowego obrazu tego, z czym programiści mają do czynienia każdego dnia. Zacznij od wyznaczenia jasnego celu przewodniego w oparciu o te trzy główne obszary:
Postrzeganie: jak programiści oceniają swoją pracę oraz środowisko pracy?
Przepływy pracy: jak wydajne i niezawodne są stosowane systemy i procesy?
Kluczowe wskaźniki wydajności (KPI): Na jakich wskaźnikach skupiają się zespoły? Możesz wziąć pod uwagę zadowolenie pracowników, postrzeganą łatwość dostarczania oprogramowania lub postrzeganą produktywność zespołu.
Zalecamy skorzystanie z ankiet dotyczących doświadczeń programistów we wszystkich tych obszarach. Aby rozpocząć, wypróbuj grę Ankieta na temat doświadczeń programistów.
Co składa się na doświadczenia programistów?
Trzy kluczowe komponenty pozytywnych doświadczeń programistów to:
Pętle informacji zwrotnej umożliwiające ciągłe doskonalenie dzięki uczeniu się i wprowadzaniu zmian
Łatwe zarządzanie obciążeniem poznawczym dzięki dobrze uporządkowanemu kodowi i łatwo dostępnej dokumentacji
Możliwość osiągnięcia „stanu przepływu”, w którym programiści płynnie przechodzą od zadania do zadania i są całkowicie pochłonięci pracą