Napisałeś na czyjeś zamówienie program liczący n linii. Zajęło Ci
to k godzin czasu,
a każdą z nich cenisz a +zł. Rachunek jest prosty, powinieneś otrzymać
k*zł. W wielu jednak przypadkach zleceniodawca chciałby wiedzieć, czy podane
przez ciebie liczby są zgodne
z prawdą.
Przy tego typu problemach pewną pomocą może być prosty model
matematyczny tego zagadnienia prezentowany w książce B.W. Boehma, "Software
Engineering Economics", wydanej przez Pretnice Hall w 1981 roku.
Zgodnie z tym modelem, liczba osobomiesięcy potrzebna do napisania
programu liczącego n linii wynosi:
N
a
M=2.4 * [
----------------]
1000
gdzie a jest współczynnikiem zależnym od rodzaju programu:
a=1.05
dla zwykłych programów,
=1.20 dla modyfikacji istniejącego programu.
Drugą wielkością
charakteryzującą opisywany model jest ilość czasu potrzebna na stworzenie
oprogramowania przez zespół ludzi T=2.5*Mb.
Gdzie b,
podobnie jak a,
zależy od rodzaju programu:
a=0.38,
0.35, 0.32.
Podzielenie M przez T pozwala
odpowiedzieć na pytanie ilu programistów należy zatrudnić, aby jak
najszybciej stworzyć dane oprogramowanie.
Ilustracją przedstawionych wzorów jest poniższy przykład. Dla zwykłego
programu liczącego 32000 linii otrzymujemy:
1.05
M=2.4*(32)
=91osobomiesięcy,
0.38
T=2.5*(91)
=14 miesięcy.
Oznacza to, że postawione
zadanie może być wykonane przez zespół 6-7 programistów pracujących przez
14 miesięcy.
Gdy porównamy wyniki wynikające z tego modelu z własnymi doświadczeniami,
to często okaże się, że w swojej pracy uzyskujemy 500-600% "normy".
Niestety, przekonanie
o naszej wyższości nad profesjonalistami, może być złudne. Podane
tutaj czasy dotyczą całego procesu tworzenia oprogramowania, łącznie z wymyśleniem
algorytmu, napisaniem kodu, jego uruchomieniem i testowaniem. Programy pisane
przez amatorów są często niewystarczająco przetestowane, a przy ich pisaniu
nierzadko korzystamy z gotowych recept postępowania. Poza tym naprawdę trudno
jest napisać w warunkach domowych gotowy profesjonalny produkt, który nie
'padnie' przy pierwszej lub drugiej demonstracji,
a jednocześnie będzie reprezentował odpowiedni poziom jakościowy.
Autor:
Grzegorz Gałęzowski
gsgalezowski@poczta.onet.pl