Przy tego typu problemach pewną pomocą może być prosty model matematyczny tego zagadnienia prezentowany w i książce B.W. Boehma, „Software Engineerińg Economics“, wydanej przez Pretnice Hall w 1981 roku.
Zgodnie z tym modelem, liczba. osobomiesięcy potrzebna do napisania programu liczącego n linii wynosi:
M = 2.4 × [n/1000]α
gdzie α jest współczynnikiem zależnym od rodzaju programu:
α = 1.05 dla zwykłych programów,
α = 1.12 dla modularnych fragmentów programu, 1.20 dla modyfikacji istniejącego prograrnu.
Drugą wielkością charakteryzującą opisywany model jest ilość czasu potrzebna na stworzenie oprogramowania przez zespół ludzi:
T = 2.5 * Mβ gdzie β, podobnie - jak α, zależy od rodzaju programu:
α = 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:
M = 2.4 * (32)1.05 = 91 osobomiesięcy,
T = 2.5 * (91)0.38 = 14 miesięcy.
Oznaczą 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.
Jonasz Mayer
