Czy pomiary wskaźników projektu oprogramowania są popularne w dzisiejszej branży?


9

Spotkałem programistę, który chciał uzyskać porady z zewnątrz na temat projektu swojego zespołu. Dowiedziałem się, że opracowują ogromny pakiet oprogramowania dla kadry kierowniczej firmy, kierownika projektu i programistów, który może automatycznie obliczać metryki i tworzyć wykresy dla każdej iteracji.

Jako student informatyki niewiele wiem na temat wskaźników i ich znaczenia, ale moje pytania są następujące:

  1. Czy większość firm ma jakiś sposób, nie musi być eleganckim programem do mierzenia znaczących wskaźników?
  2. Które wskaźniki, pojedyncze lub połączone, pomagają zawęzić zakres projektów i szacunki?
  3. Jako osoba analizująca metryki, jak często opierasz na nich decyzje? TO ZNACZY. Nieudane testy tygodniowo drastycznie rosną?
  4. Czy uważasz, że wprowadzenie badań metryk pomogło ci lepiej zrozumieć projekt?

Nie jestem pewien, dlaczego, ale projekt deweloperów zaintrygował mnie i muszę wiedzieć więcej. Jeśli ty

Odpowiedzi:


6

Niektóre książki na temat metryk, które prawdopodobnie zawiera biblioteka uczelni, obejmują metryki oprogramowania oraz metryki i modele w inżynierii jakości oprogramowania . Te 2 powinny dać ci miejsce wyjściowe. W świecie przemysłowym bardzo niewiele firm w ogóle ma program pomiaru metrycznego.

Czy większość firm ma jakiś sposób, nie musi być eleganckim programem do mierzenia znaczących wskaźników?

Visual Studio zawiera narzędzia do analizy kodu, które mogą pomóc Ci zacząć. Większość firm nawet nie ma czegoś, co zmierzyłoby najgorszą możliwą miarę: linie kodu. „Po prostu załatw to” wydaje się być dominującą siłą napędową w branży, a obawy związane z utrzymaniem są bardzo krótko zwracane na obawy menedżerów dotyczące „czy dostanę mój bonus w tym roku?” i „czy to się stanie w czasie, gdy obiecałem?” Nawet w przypadku produktów, które przenoszą się z roku na rok z przyrostowymi zmianami, te 2 obawy rozwiały obawy deweloperów dotyczące konserwacji i wykrywania / zapobiegania błędom.

Które wskaźniki, pojedyncze lub połączone, pomagają zawęzić zakres projektów i szacunki?

Uważam, że złożoność cykliczna i sprzężenie są silnymi wskaźnikami tego, jak błędne lub jak trudne będzie utrzymanie kodu. Jeśli cykliczność złożoności wynosi około 20, stwierdzę, że prawie niemożliwe będzie przetestowanie (ponieważ będzie zawierać do 2 ^ 20 ścieżek w kodzie) i należy ją rozłożyć na mniejsze części. Nie można wyeliminować złożoności, ale można ją pokroić na łatwiejsze do zarządzania części.

Jeśli szukasz oszacowania , prawdopodobnie chcesz zbadać punkty funkcji .

% Pokrycia kodu drastycznie obniża każdą iterację, czy ostrzegasz programistów o problemie

Uważam, że większości menedżerów zależy na liczbie meldowań i liczbie naprawianych błędów. Mój obecny menedżer jest przeciwny testom jednostkowym (uważa, że ​​to strata czasu), a mój poprzedni menedżer uważał, że czas poświęcony na testy jednostkowe był czasem, który powinien był poświęcić na napisanie go w pierwszej kolejności.

Argument kanoniczny używany przez programistów jest taki, że jeśli coś zmierzysz, to tylko to otrzymasz. Argument ten wynika z założenia, że ​​jedyną miarą są linie kodu.


Dziękujemy za szczegółową odpowiedź i odpowiednie linki. W ramach kontynuacji: 1. Dlaczego menedżer miałby przejmować się liczbą zameldowań? Może nasza definicja odprawy jest inna. 2. Co rozumiesz przez to, że wiersze kodu są najgorszą miarą? Co gorsza, ponieważ nie daje dobrych wskazówek na temat projektu?
Russ K

@Russ, programista, który nie sprawdza kodu, zostanie uznany za niedziałającego. LOC jest najgorszy, ponieważ gra jest trywialna. Spójrz na różnicę między K&R a stylem wcięcia kodu Allmana: en.wikipedia.org/wiki/Indent_style . Styl Allmana da większą liczbę LOC po prostu poprzez umieszczenie open {w osobnej linii. Oświadczenie: Nienawidzę stylu K&R, ponieważ rzadko znajduję pasujące otwarte {bez spędzania zbyt wiele czasu na graniu w Where's Waldo.
Tangurena

In the industrial world, very few companies have any sort of metric measurement program at all.Każda firma z oceną CMMI 2 lub wyższą będzie miała program do pomiaru / analizy danych. Zbieranie pomiarów i metryk jest wymaganiem poziomu 2 dojrzałości. Poziom dojrzałości CMMI 4 wymaga ilościowego zarządzania projektami, opartego na tych pomiarach i pomiarach, a także takich rzeczy, jak analiza przyczyn źródłowych w celu podjęcia działań w odpowiedzi na zidentyfikowane problemy. Istnieje duża liczba organizacji ocenionych na poziomie CMMI 4 (lub 5).
Thomas Owens

2

Rozmawiałem o metrykach oprogramowania, w których mówca przedstawił pewne, wnikliwe uwagi IMHO. Mając małe doświadczenie z tymi rzeczami, wciąż intrygowałem i inspirowałem, ale nie mogę powiedzieć, czy to źle, czy dobrze.

Głównymi pomysłami były:

  • Żadna pojedyncza metryka nie jest sama w sobie przydatna.
  • Ustawienie bezwzględnego celu (tj. Pokrycia kodu w%) nie ma znaczenia.
  • Metryka bez historii jest przydatna.

Aby rozwiązać ten problem:

  • Pokaż kilka wskaźników, takich jak:
    • Liczba wierszy łącznie / zmieniona
    • Liczba zatwierdzeń
    • % Pokrycie kodu
    • Liczba testów
    • złożoność cykliczna
    • zależność plik / pakiet / ...
    • ...
  • Pokaż dane z QA / CI:
    • Liczba błędów / ulepszeń / zmian (osobiście uważam, że ta kategoryzacja jest ważna)
    • # ogółem / dodano / naprawiono
  • Pokaż te dane na wykresach, które pokazują trendy w czasie

W ten sposób, gdy bilety są szybko naprawiane, można sprawdzić, czy jakość kodu spadnie. Ponadto, gdy wydaje się, że niewiele dzieje się z bazą danych błędów, jakość kodu może wzrosnąć w miarę dokonywania refaktoryzacji.

Podsumowując: ten rodzaj zachowania dynamicznego jest ważny i daje informacje zamiast surowych danych (co byłoby wartością pojedynczej metryki).

Planuję umieścić niektóre wykresy zgodnie z tym schematem na szerokoekranowym telewizorze obok naszych lamp lawowych z CI. ;)


Dobrze wyłożone. Czytałem wiele artykułów o tym, jak same metryki są bezużyteczne, jak wspomniałeś, a historia jest ważna. Dziękujemy za poświęcenie czasu na odpowiedź.
Russ K,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.