CodeGym/Blog Java/Random-PL/Metryki produktywności. Co musisz wiedzieć o pomiarze wyd...
John Squirrels
Poziom 41
San Francisco

Metryki produktywności. Co musisz wiedzieć o pomiarze wydajności w oprogramowaniu?

Opublikowano w grupie Random-PL
Chociaż praktyczne umiejętności i znajomość określonych języków programowania, narzędzi i technologii są kluczem do zdobycia pełnoetatowej pracy jako programista, istnieje jeszcze jeden cenny wskaźnik, który pod wieloma względami może być postrzegany jako warunek odniesienia sukcesu w tym zawodzie: wydajność. Pomiar wydajności jest czymś, co wszyscy profesjonalni programiści muszą zrozumieć i wziąć pod uwagę, ponieważ metryki wydajności są z natury ważne dla każdego zespołu programistów w dzisiejszym środowisku biznesowym. Metryki produktywności.  Co musisz wiedzieć o pomiarze wydajności w oprogramowaniu?  - 1

Dlaczego Twoja produktywność jako programisty ma znaczenie?

W dobie Agile, DevOps i kurczących się cykli wydawania oprogramowania, kiedy programiści muszą jak najszybciej dostarczać nowe wersje produktów, firmy wykorzystują wiele różnych wskaźników produktywności do oceny wydajności poszczególnych programistów i zespołu jako całości. Patrząc na to z punktu widzenia programisty, pomiar wydajności może służyć wielu cennym celom, pomagając śledzić postępy w umiejętnościach programistycznych, co pozwoliłoby osiągnąć stały rozwój zawodowy. Wysoce produktywni programiści to ci, którzy otrzymują oszałamiające oferty wynagrodzenia i biorą się do pracy nad najbardziej ekscytującymi projektami. Ale nawet jeśli nie masz wielkich osiągnięć i chcesz po prostu pracować w programowaniu i odnosić w nim rozsądne sukcesy, nadal musisz mieć przynajmniej podstawową wiedzę na temat wskaźników wydajności i sposobu, w jaki są one wykorzystywane do mierzenia produktywności wkładu w pracę. O czym dzisiaj będziemy rozmawiać.

Metryki pomiaru wydajności wytwarzania oprogramowania

Czym są wskaźniki produktywności wytwarzania oprogramowania?

Metryki rozwoju oprogramowania to obszary pracy programistycznej, w których można zastosować pomiary ilościowe w celu śledzenia wydajności, jakości pracy i produktywności programisty. Każda miara produktywności opiera się na pobieraniu danych z procesu rozwoju i wykorzystywaniu ich do pomiaru produktywności. Ponieważ prawie nic związanego z tworzeniem oprogramowania nie jest łatwe i proste, można powiedzieć, że mierzenie produktywności programowania jest również dość niespójne i fragmentaryczne w całej branży. Lub, mówiąc prościej, różne zespoły i firmy mogą używać zupełnie różnych wskaźników wydajności i podchodzić do tego problemu z wielu punktów widzenia. Nie musisz więc zawracać sobie głowy nauką wszystkich metryk, które mogą być używane przez zespoły programistyczne.

Jakie są rodzaje wskaźników produktywności wytwarzania oprogramowania?

Oczywiście istnieje wiele różnych wskaźników produktywności, które mierzą wydajność na różnych poziomach i pod różnymi kątami. Oto najczęstsze typy takich wskaźników produktywności:

  • Formalne wskaźniki skoncentrowane na rozmiarze.

Te metryki koncentrują się na mierzeniu wielkości wyniku pracy programisty, takiego jak linie kodu (LOC), długość instrukcji kodu, złożoność kodu itp. Metryki te są coraz częściej uważane za przestarzałe w dzisiejszej branży tworzenia oprogramowania.

  • Wskaźniki produktywności skoncentrowane na czasie i funkcjach.

Istnieje wybór tradycyjnych metryk produktywności stosowanych w tworzeniu oprogramowania kaskadowego, takich jak aktywne dni, zakres funkcjonalności dostarczanych w określonym czasie, współczynniki rezygnacji z kodu, liczba przypisanych zadań itp.

  • Metryki zwinnego procesu programowania.

Metryki zwinnego procesu tworzenia oprogramowania, takie jak raport wypalania sprintu, prędkość, czas realizacji, czas cyklu i inne, są obecnie prawdopodobnie najczęściej używanymi wskaźnikami wśród zespołów programistycznych. Porozmawiamy o metrykach Agile bardziej szczegółowo w dalszej części artykułu.

  • Metryki analizy operacyjnej.

Ten zestaw metryk koncentruje się na pomiarze wydajności oprogramowania w jego bieżącym środowisku produkcyjnym. Najczęściej używanymi wskaźnikami są średni czas między awariami (MTBF), średni czas do odzyskania (MTTR) i współczynnik awarii aplikacji.

  • Testowanie metryk.

Testowanie oprogramowania ma swój własny zestaw wskaźników do pomiaru jakości testowania systemu, takich jak odsetek testów automatycznych, pokrycie kodu itp.

  • Mierniki satysfakcji klienta.

Wreszcie, ostatecznym miernikiem dla każdego oprogramowania jest doświadczenie klienta końcowego, a także istnieje cały zestaw wskaźników, takich jak ocena wysiłku klienta (CES), ocena zadowolenia klienta (CSAT), ocena promotora netto (NPS) i inni.

Metryki zwinnego tworzenia oprogramowania

Jak widać, dość łatwo jest zgubić się we wszystkich zawiłościach metryk produktywności oprogramowania. Jednak jedynymi, z którymi zwykły programista powinien być dobrze zaznajomiony, są metryki Agile, powszechnie stosowane obecnie przez zespoły programistyczne jako standardy pomiaru produktywności zespołu w różnych częściach cyklu życia oprogramowania. Wymieńmy główne i najczęściej używane wskaźniki Agile.

1. Wypalenie sprintu.

Raporty Sprint Burndown to jeden z kluczowych wskaźników dla zwinnych zespołów programistycznych Scrum. Tak jak w agile proces rozwoju jest zorganizowany poprzez sprinty ograniczone w czasie, Sprint Burndown jest wykorzystywany jako sposób śledzenia wykonania zadań podczas sprintu. Godziny lub punkty historii są używane jako jednostki miary. Celem jest osiąganie stałych postępów i realizacja prac zgodnie ze wstępnymi prognozami. Sprint Burndown pomaga zespołom mierzyć tempo pracy i dostosowywać je w razie potrzeby.

2. Szybkość zespołu.

Prędkość to kolejny kluczowy wskaźnik, który również opiera się na godzinach lub punktach historii jako jednostkach miary. Mierzy średnią ilość pracy wykonywanej przez zespół podczas sprintu i służy do szacowania i planowania w całym projekcie. Szybkość śledzenia jest ważna, aby upewnić się, że zespół zapewnia stałą wydajność.

3. Punkty fabularne.

Na poziomie indywidualnego członka zespołu programistycznego punkty historii są cenną miarą, ponieważ rozmiar historii dostarczanych przez programistę podczas każdej wersji jest wskaźnikiem produktywności tego programisty.

4. Karta kontrolna cyklu.

Mierzy łączny czas od momentu rozpoczęcia pracy nad zadaniem lub inną pozycją backlogu do jej zakończenia. Pozwala śledzić i kontrolować czasy cykli, zapewniając bardziej przewidywalne wyniki.

5. Przepustowość i dostarczona wartość.

Kierownicy projektów analizują zadania przydzielone programistom i przypisują im wartość. Ta metryka jest następnie używana do pomiaru przepustowości zespołu lub innymi słowy ilości wykonanej pracy o wartości dodanej.

6. Zmiana kodu.

Zmiana kodu to kolejna miara, o której warto wspomnieć, ponieważ służy do pomiaru zarówno produktywności zespołu jako całości, jak i śledzenia wydajności poszczególnych programistów. Zmiana kodu mierzy, jak często programista usuwa lub wprowadza zmiany we wcześniej dodanych wierszach kodu oraz jaki procent wcześniej napisanego kodu zostaje zmieniony lub wyrzucony.

Ekspertyzy

Na koniec, aby dodać trochę perspektywy, kilka cytatów na ten temat przez doświadczonych specjalistów z branży tworzenia oprogramowania. „Mam nadzieję, że nie chcesz „porównywać” swoich wskaźników z jakimś standardem, a nawet z wynikami innego zespołu w innej firmie. Wszędzie, gdzie pracowałem, występowały wyjątkowe różnice w definicjach punktów fabularnych, szybkości, szacunków godzinowych, zadań itp., co naprawdę prawie uniemożliwiłoby bezpośrednie porównanie wyników jednego zespołu z jednej firmy z wynikami innego zespołu w innej firmy” — zauważył Cliff Gilley, były kierownik ds. produktów technicznych i trener Agile. „Jestem trochę nieufny wobec wskaźników, jeśli chodzi o kierowanie wydajnością zespołu. Kiedy zwrócisz uwagę tylko na jedną lub dwie zmienne, bardzo łatwo jest wpaść (celowo lub nie) w grę metryki i oszukiwać siebie, że się poprawiasz – kiedy wszystko, co robisz, to poprawianie metryki. Na przykład metryki oparte na szybkości mogą „poprawić się”, gdy zespół przeniesie się na mniejsze piętra (mniej pracy na piętro – więc więcej ukończonych pięter – więc prędkość wzrośnie). Może to być dobre, jeśli historie są przydatnymi historiami użytkowników, które zapewniają mniejsze przyrosty wartości biznesowej. Może to być złe, jeśli historie staną się mniejszymi i bardziej „technicznymi” zadaniami, które same w sobie nie dostarczają prawdziwej wartości ”- powiedział Adrian Howard, inny specjalista z branży. „Pracując w systemie pull, cenię sobie przepustowość i czas cyklu. Pierwsza daje mi ogólne informacje o możliwościach naszego zespołu iz czasem może stać się bardzo potężną miarą predykcyjną. Drugi jest pomocny jako ogólny wskaźnik wydajności naszych rurociągów. Jeśli czas cyklu jest długi, nadszedł czas, aby zacząć przyglądać się potokowi, ponieważ istnieje ograniczenie, nad którym prawdopodobnie możemy pracować, aby złagodzić/wykorzystać. Ale wskaźniki to tylko narzędzia. Nie zgub się w nich, a już na pewno nie zaczynaj planować w kierunku określonej metryki. Pomyśl o tym, co tworzysz jako zespół i jak naturalnie pracujesz, a następnie zbuduj system wokół ludzi. Metryki powinny pomóc Ci zobaczyć, jak Twój system wspiera pracę wszystkich. Albo nie” – podsumował Dave Cerra, producent gier wideo .
Komentarze
  • Popularne
  • Najnowsze
  • Najstarsze
Musisz się zalogować, aby dodać komentarz
Ta strona nie ma jeszcze żadnych komentarzy