Szukasz szkolenia sprzedażowego lub biznesowego w Warszawie? Szkolenia edukacyjne!

Ile czasu zajmą prace nad systemem oprogramowania?

Wcześniej zaproponowałem wskaźniki, które mogłyby się przydać przy szacowaniu czasu na planowanie, kodowanie, testowanie części składowych systemu i testowanie systemu jako całości. Przede wszystkim trzeba zaznaczyć, że nie można dokonać szacunków całości zadania przez oszacowanie jedynie jego części dotyczącej kodowania i zastosowanie tych wskaźników. Kodowanie to tylko około jednej szóstej wszystkich prac, a błędy w jego oszacowaniu lub w wartości wskaźników prowadzą do absurdalnych wyników.

Dalej należy stwierdzić, że dane dotyczące budowy małych oddzielnych programów nie sprawdzają się w wypadku opracowywania systemów. Sackman, Erikson i Grant podają na przykład w odniesieniu do programu składającego się z około 3200 słów, że łączny czas kodowania go i poprawiania przez jednego programistę wynosi około 178 godzin. Ekstrapolacja tych danych prowadziłaby do określenia rocznej wydajności na 35 800 instrukcji. Program o połowę mniejszy wymagał jednej czwartej tego czasu. Obliczona drogą ekstrapolacji wydajność wynosi niemal 80 000 instrukcji rocznie1. Należy do tego dodać jeszcze czas na planowanie, opracowanie dokumentacji, testowanie, integrację systemu i szkolenie. Ekstrapolacja liniowa takich sprinterskich wyników nie ma sensu. Ekstrapolacja czasów osiąganych w biegu na 100 jardów wskazywałaby, że człowiek może przebiec milę w mniej niż trzy minuty.

Zanim jednak odrzucimy te liczby, zwróćmy uwagę, że chociaż nie dotyczą one ściśle porównywalnych problemów, wskazują, iż pracochłonność jest proporcjonalna do potęgi wielkości zadania – i to nawet tam, gdzie nie ma żadnej komunikacji oprócz tej między człowiekiem a jego pamięcią.

Patrząc na rysunek 8.1, można dojść do smutnego wniosku. Przedstawiono na nim wyniki badań przeprowadzonych przez Nanusa i Farra2 w System Development Corporation (SDC). Na ich podstawie podano, że wykładnik potęgi wynosi 1,5, czyli pracochłonność = (stała) x (liczba instrukcji)1-5

Również inne badanie przeprowadzone w SDC przez Weinwurma3 wskazuje na wykładnik wynoszący około 1,5. Przeprowadzono kilka badań wydajności programistów i zaproponowano różne metody dokonywania szacunków. Morin podsumował otrzymane wyniki4. Przedstawiam tutaj jedynie to, co wydaje mi się szczególnie interesujące.

Podobne Artykuły

Zostaw odpowiedź

Twoj adres e-mail nie bedzie opublikowany.