Bajtek 7/1989
Bajtek 7/1989

Gotowy, co prawda nie wszystko tym razem udało się opanować (np. listing do Perkusji dla ZX Spectrum), ale już jest;P

Zobacz stronę związaną z tym artykułem w Reduksach Try2emu
Spis treści:
Listingi dołączone do numeru w ReadyRun

Nastepny Krok

Jonasz Mayer

Ile płacić programistom

Napisałeś na czyjeś zamówienie program liczący n linii. Zajęto 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 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

Czytaj także w dziale Nastepny Krok
„Ile płacić programistom ”
Jonasz Mayer - Bajtek 7/1989

Napisałeś na czyjeś zamówienie program liczący n linii. Zajęto 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ą.