Równowaga procentowa całkowitej pojemności przypisanej do naprawy defektów jest równa szybkości wstrzykiwania defektów .
Oczywiście na ten wskaźnik może wpływać wiele czynników, między innymi: jaki produkt opracowuje zespół, jakie technologie i praktyki techniczne stosują, poziom umiejętności zespołu, kulturę firmy itp.
Biorąc pod uwagę Zespół B, jeśli stworzą średnio 8 jednostek przeróbki na każde 10 jednostek pracy, którą wykonają, wówczas praca tych 8 jednostek stworzy nowe 6,4 jednostek przeróbki. Możemy oszacować całkowity wysiłek, jaki ostatecznie będą musieli ponieść, jako sumę postępu geometrycznego:
10 + 8 + 6,4 + 5,12 + ...
Liczba błędów spadnie wykładniczo z czasem, ale Drużyna B ma taki współczynnik w swoim wykładniku, że bardzo powoli spada do zera. W rzeczywistości suma pierwszych trzech terminów z powyższych serii wynosi tylko 24,4; z pierwszych pięciu 33,6; z pierwszych 10, 45; z całej serii, 50. Tak więc podsumowanie zespołu B: szybkość wtrysku wady, 0,8; rozwój funkcji, 10/50 = 20%; usuwanie wad, 80%. 20/80 to ich trwała alokacja zdolności.
Natomiast Drużyna A jest w znacznie lepszej formie. Ich postęp wygląda następująco:
40 + 10 + 2,5 + 0,625 + ...
Suma tej serii wynosi 53 1/3, więc przydział rozwoju funkcji dla Drużyny A wynosi 40 / (53 1/3) = 75%, a przydział naprawiania wad wynosi 25%, co odpowiada współczynnikowi wstrzykiwania wad na poziomie 10/40 = 0,25 .
W rzeczywistości wszystkie warunki w serii Drużyny A po pierwszych trzech są pomijalnie małe. W praktyce oznacza to, że Zespół A prawdopodobnie może zmiażdżyć wszystkie swoje błędy kilkoma wydaniami serwisowymi, przy czym drugie wydanie jest dość niewielkie. Stwarza to również złudzenie, że każdy zespół może to zrobić. Ale nie Drużyna B.
Myślałem o tej równoważności, czytając nową książkę Davida Andersona „Kanban” . (Książka jest na inny temat, ale dotyczy również problemów związanych z jakością.) Omawiając jakość oprogramowania, Anderson cytuje tę książkę autorstwa Capers Jones, „Oceny oprogramowania, testy porównawcze i najlepsze praktyki” :
„… w 2000 r.… zmierzona jakość oprogramowania dla zespołów z Ameryki Północnej… wahała się od 6 defektów na punkt funkcji do mniej niż 3 na 100 punktów funkcji, zakres od 200 do 1. Punkt środkowy to około 1 defekt na Od 0,6 do 1,0 punktów funkcyjnych. Oznacza to, że drużyny często spędzają ponad 90 procent swoich wysiłków na usuwaniu błędów. ”Przytacza przykład podany przez jednego z jego kolegów z firmy, który spędza 90% czasu na naprawianiu błędów .
Płynność, z jaką Anderson jedzie z szybkością wtrysku defektu do alokacji zdolności defext mocowania ( popyt awaria jest określenie dla niego) sugeruje, że równoważność tych dwóch rzeczy jest dobrze znany jakości naukowców oprogramowania i prawdopodobnie były znane od jakiegoś czasu .
Kluczowe słowa w rozumowaniu, które próbuję tu przedstawić, to „równowaga” i „zrównoważony”. Jeśli zabierzemy zrównoważony rozwój, istnieje oczywisty sposób na oszukiwanie tych liczb: wykonujesz wstępne kodowanie, następnie przechodzisz do kodowania gdzie indziej i pozostawiasz konserwację innym. Lub zaciągniesz dług techniczny i zwolnisz go na nowego właściciela.
Oczywiście żaden konkretny przydział nie będzie pasował do wszystkich drużyn. Jeśli zadeklarujemy, że 20% musi zostać wydane na błędy, wtedy, jeśli zespół ma bardzo niski wskaźnik wstrzykiwania defektów, po prostu nie będzie miał wystarczającej liczby błędów, aby wypełnić czas, a jeśli zespół miał bardzo wysoką stawkę, ich błędy będzie się nadal kumulować.
Zastosowana tutaj matematyka jest znacznie uproszczona. Zlekceważyłem takie rzeczy, jak koszty transakcji (spotkania planistyczne i szacunkowe, sekcje pośmiertne itp.), Które mogłyby nieco wpłynąć na procent. Pominąłem również równania symulujące utrzymanie jednego produktu i jednoczesne rozwijanie innego. Ale wniosek nadal się utrzymuje. Zrób, co możesz, pod względem praktyk technicznych, takich jak testy jednostkowe, ciągła integracja, przeglądy kodu itp., Aby zmniejszyć wskaźnik wstrzykiwania defektów, a w konsekwencji popyt na awarie. Jeśli możesz utworzyć tylko jeden błąd na każde 10 funkcji, będziesz mieć dużo wolnego czasu na opracowanie nowych funkcji i zadowolenie klientów.