Jakub Turek
echo $_blog;

Produktywność programistów jest jednym z kluczowych czynników sukcesu każdej organizacji opartej na oprogramowaniu. Jednak w porównaniu z innymi funkcjami biznesowymi, takimi jak sprzedaż czy obsługa klienta, rozwój oprogramowania jest często niedostatecznie mierzony. Wielu liderów technologicznych uważa, że nie jest możliwe poprawne zmierzenie wydajności pracy programistów, a jedynie doświadczeni inżynierowie są na tyle kompetentni, aby ocenić wyniki swoich kolegów.

Teraz kiedy większość firm staje się (w mniejszym lub większym stopniu) firmami oprogramowania, niezależnie od branży, liderzy muszą wiedzieć, czy wykorzystują swój najcenniejszy zasób ludzki jak najlepiej. O tym, jak mierzyć produktywność programistów, napisali autorzy artykułu opublikowanego na portalu FAUN — społeczności deweloperów . W tym artykule przedstawie ich główne wnioski i zaproponuje listę 10 kluczowych wskaźników do śledzenia produktywności programistów.

Jak mierzyć produktywność programistów?

Mierzenie produktywności programistów nie jest łatwym zadaniem. Inne funkcje można zmierzyć dość dobrze, niektóre nawet za pomocą pojedynczego wskaźnika; natomiast w rozwoju oprogramowania związek między nakładami a rezultatami jest znacznie mniej oczywisty. Rozwój oprogramowania jest również pracą wysoce współpracującą, złożoną i kreatywną i wymaga różnych wskaźników na różnych poziomach (takich jak systemy, zespoły i jednostki). Co więcej, nawet jeśli istnieje prawdziwe zaangażowanie w prawidłowe śledzenie produktywności, tradycyjne wskaźniki mogą wymagać systemów i oprogramowania, które są skonfigurowane tak, aby umożliwić bardziej subtelne i wszechstronne pomiary.

Ponadto krajobraz rozwoju oprogramowania zmienia się szybko, ponieważ generatywne narzędzia oparte na sztucznej inteligencji, takie jak Copilot X i ChatGPT mają potencjał umożliwienia programistom wykonywania zadań nawet dwa razy szybciej.

Aby pomóc przezwyciężyć te wyzwania i uczynić to kluczowe zadanie bardziej wykonalnym, autorzy artykułu opracowali podejście do mierzenia produktywności programistów, które jest łatwiejsze do wdrożenia za pomocą ankiet lub istniejących danych (takich jak w narzędziach zarządzania backlogiem).

To nowe podejście zostało zaimplementowane w prawie 20 firmach technologicznych, finansowych i farmaceutycznych, a początkowe wyniki są obiecujące. Obejmują one następujące ulepszenia:

  • 20-30% redukcja defektów zgłaszanych przez klientów
  • 20% poprawa wskaźników doświadczenia pracowników
  • 60-punktowa poprawa wskaźników satysfakcji klientów

Wykorzystywanie wglądów związanych z produktywnością

Z dostępem do bogatszych danych i wglądów dotyczących produktywności liderzy mogą zacząć odpowiadać na palące pytania dotyczące talentów programistycznych, o które tak ciężko walczyli, aby ich przyciągnąć i zatrzymać, takie jak:

  • Jakie są przeszkody dla programistów, aby pracować na swoim najlepszym poziomie?
  • Jak kultura i organizacja wpływają na ich zdolność do wytwarzania najlepszej pracy?
  • Jakie są najlepsze praktyki i narzędzia, które pomagają im osiągać lepsze wyniki?
  • Jakie są trendy i innowacje, które mogą wpłynąć na ich sposób pracy w przyszłości?

Aby odpowiedzieć na te pytania, autorzy artykułu zaproponowali listę 10 kluczowych wskaźników do śledzenia produktywności programistów, opartych na istniejących metodykach i ramach pracy. Są to:

  1. Czas realizacji zmian (DORA) – czas od momentu dokonania zmiany przez programistę do momentu jej wdrożenia w środowisku produkcyjnym.
  2. Częstotliwość wdrażania (DORA) – częstotliwość, z jaką organizacja jest w stanie wdrażać nowe funkcje lub poprawki.
  3. Czas naprawy (DORA) – czas potrzebny na przywrócenie usługi do normalnego stanu po wystąpieniu awarii lub incydentu.
  4. Stabilność zmian (DORA) – procent zmian wdrożonych w środowisku produkcyjnym, które nie spowodowały awarii lub degradacji usługi.
  5. Satysfakcja i dobrostan (SPACE) – poziom satysfakcji i zaangażowania programistów z ich pracy i środowiska pracy.
  6. Wydajność (SPACE) – poziom jakości i ilości pracy wykonywanej przez programistów.
  7. Aktywność (SPACE) – poziom aktywności programistów podczas wykonywania swojej pracy, taki jak liczba commitów, pull requestów, code review itp.
  8. Komunikacja i współpraca (SPACE) – poziom komunikacji i współpracy między programistami i innymi interesariuszami projektu.
  9. Efektywność i przepływ (SPACE) – poziom efektywności i płynności procesu rozwoju oprogramowania, taki jak stosunek czasu spędzonego na zadaniach wartościowych do czasu spędzonego na zadaniach niewartościowych lub przerwach.
  10. Użytkowanie produktu – poziom adopcji i zaangażowania klientów z produktem, taki jak liczba aktywnych użytkowników, wskaźniki retencji i rotacji.

Każdy z tych wskaźników ma swoje własne zalety i ograniczenia, a niektóre mogą być łatwiejsze lub trudniejsze do zmierzenia w zależności od kontekstu organizacyjnego. Dlatego autorzy artykułu sugerują, aby liderzy technologiczni wybierali te wskaźniki, które najlepiej pasują do ich celów i dojrzałości zespołu.