background image

Szacowanie 

oprogramowania

Realizm czy szarlataneria

background image

Po co „mierzyć” 

oprogramowanie?

Celem projektów informatycznych jest wytworzenie 
nowego, unikalnego produktu lub usługi (definicja 
PMBOK)
Przedsięwzięcie musi być określone:

jak długo będzie trwało?
jakie będą koszty?
co będzie produktem końcowym?

W przypadku projektów komercyjnych musimy 
odpowiedzieć także:

jak wycenić produkt/usługę?
jakie będzie TCO systemu?
jaki harmonogram zaproponować klientowi?

background image

TCO

• TCO (Total Cost of Ownership) - zgodnie z Gartner 

Group, jest to całkowity koszt pozyskania, 

instalowania, użytkowania, utrzymywania i w końcu 

pozbycia się aktywów w firmie na przestrzeni 

określonego czasu.

• Ostatnio mówi się o TCO w kontekście inwestycji 

firmy w narzędzia informatyczne. Należy w ich 

przypadku brać na przykład pod uwagę nie tylko cenę 

zakupu, ale też przemyśleć ile będzie kosztowało 

utrzymanie narzędzi, oraz ich ewentualna rozbudowa.

• Źródło 

„http://pl.wikipedia.org/wiki/Total_Cost_of_Ownership”

background image

Co można 

mierzyć/szacować?

Zakres funkcjonalny (funkcjonalność, 
wielkość) systemu – punkty funkcyjne, 
punkty obiektowe, przypadki użycia, liczba 
linii kodu itd.
Jakość oprogramowania – ilość błędów na 
moduł/plik/komponent, poziom trudności 
utrzymania, itd.
Koszt oraz czas wytworzenia 
oprogramowania – ilość osobodni, 
osobotygodni osobomiesiące, czas trwania 
projektu, ilość niezbędnych zasobów

background image

Powiązania pomiędzy 

parametrami projektu

Parametry definiujące 
projekt:

zakres
czas
koszt
jakość

Zmiana jednego z nich 
pociąga zmianę 
pozostałych
Najczęściej tracimy na 
jakości

background image

Na czym polega szacowanie 

w projekcie informatycznych

Podając jedną 
wartość estymacji 
sugerujemy 100% 
pewności naszych 
przewidywań
W rzeczywistości 
nigdy nie możemy 
mieć takiej 
pewności

background image

Estymacja jako ustalenie 

prawdopodobieństwa

Naturalnym 
rozwinięciem 
estymacji 
jednopunktowej jest 
rozkład naturalny
Krzywa Gauss’a nie 
odzwierciedla 
jednak natury 
projektu 
informatycznego 

background image

Rozkład 

prawdopodobieństwa 

estymacji

Badania 
heurystyczne 
wykazały 
zbieżność danych 
statystycznych z 
rozkładem β
Rezultat nominalny 
(mediana) określa 
oszacowanie 50/50

background image

Czy dobre szacowanie jest 

możliwe?

Dobre oszacowanie osiąga dokładność 
±10% (Jones 1998)
Estymacje z takim poziomem błędu są 
możliwe tylko dla dobrze kontrolowanych 
projektów
Projekty chaotyczne charakteryzuje zbyt 
duża zmienność
Organizacje poprawiają swoje 
estymację poprzez poprawę kontroli 
projektów, a nie metod estymacji

background image

Przykłady z rynku 

informatycznego

System dla ZUS Płatnik – planowany 
budżet 750 mln PLN, już zostało wydane 
1500 mln PLN
System CEPiK – w 2004 roku wygrała oferta 
z budżetem 230 mln PLN i rok na 
wdrożenie. 
Projekt trwa nadal
System PPARS (zarządzanie w służbie 
zdrowia) został przerwany w momencie 
przekroczenia budżet o 140 mln funtów 
(2007), przy budżecie 8,8 mln

background image

Jedynie 32 procent wszystkich projektów IT kończy się 
sukcesem, a więc realizowanych jest w założonym czasie, 
budżecie i spełnia założone wymogi jakościowe. Całkowitą 
porażką kończy się 24 procent projektów, zaś 44 procent – 
niepowodzeniem częściowym, co oznacza, że projekty te 
przekraczają czas lub budżet bądź też nie przynoszą 
użytkownikom wszystkich zakładanych początkowo korzyści 
(2008).

Dlaczego dobre oszacowanie 
parametrów projektu jest ważne?

Konsekwencje:

 wstrzymane projekty
 utrata szansy biznesowej
 zła inwestycja, nieuzasadnione 

koszty

background image

Porażki i sukcesy

Galant-Pater

background image

Prawdopodobieństwo 

porażki w projekcie

yt

ko

w

e

ou

ts

ou

rc

in

g

ko

m

er

cy

jn

e

Z

S

Z

w

oj

sk

ow

e

sy

st

em

ow

a

10 fp

1000 fp

100 000 fp

0

10

20

30

40

50

60

70

80

90

100

10 fp
100 fp
1000 fp
10 000 fp
100 000 fp

background image

Ryzyko projektu 

informatycznego

Rośnie wraz z wielkością projektu 
(nieliniowo!!!)
Heurystycznie ustalony prób 
bezpieczny dla projektów to 1500 FP
Jeżeli to możliwe to duże projekty 
należy dzielić na mniejsze pod-
projekty
Produkty poszczególnych 
podprojektów powinny być 
realizowane i odbierane niezależnie

background image

Testy umiejętności 

szacowania 

Proszę podać dolną i górną granicę 
przedziału, który wydaje się na 90% 
zawierać prawidłowa odpowiedź
Przedziały nie powinny być zbyt duże, ani 
zbyt małe
Proszę nie korzystać z pomocy kolegów 
lub materiałów pomocniczych – testujemy 
umiejętność szacowania, a nie wiedzę
Przykład pytania: długość wieży Eiffla
Odpowiedź: 300-350m

background image

Lista pytań

1.

Średnia odległość Słońca od Ziemi?

2.

Średnia masa Ziemi?

3.

Przybliżona objętość oceanu Atlantyckiego (z 
morzami)?

4.

Długość granic Polski?

5.

Powierzchnia dorzecza Wisły?

6.

Data urodzenia króla Salomona (biblijny król Izraela)?

7.

Długość największego odkrytego brachiozaura?

8.

Liczba sprzedanych książek o Harrym Potte’rze 
(autorstwa J.K. Rowling) w 2003 roku?

9.

Powierzchnia Chin?

10. Odległość od Ziemi gwiazdy Alfa Centauri A w latach 

świetlnych?

background image

Odpowiedzi

1. 149,6 x 10

6

km

2. 5,9736x10

24

kg

3. 354 700 000 km

3

4. 3511 km
5. 194 424 km

2

6. 931 p.n.e
7. 27 m
8. 200 mln egz.
9. 9 596 960 km

2

10. 4,36 ly

background image

Inne pytania – Steve McConell

„Szacowanie oprogramowania. Kulisy 

czarnej magii”

 

1. Temperatura na powierzchni słońca
2. Szerokość geograficzna Szanghaju
3. Powierzchnia Azji
4. Rok urodzenia Aleksandra Wielkiego
5. Łączna wartość waluty amerykańskiej pozostającej w 

obrocie w 2004 roku

6. Całkowita objętość Wielkich Jezior
7. Łączne wpływy kasowe na całym świecie ze sprzedaży 

biletów na film Titanic

8. Całkowita długość linii brzegowej Oceanu Spokojnego
9. Liczba tytułów książek opublikowanych w USA od 1776 

roku

10. Najcięższy płetwal błękitny jaki został kiedykolwiek 

zarejestrowany

background image

Odpowiedzi

• Temperatura na powierzchni słońca

6000 

o

C

Szerokość geograficzna Szanghaju

31

o

 szerokości N

• Powierzchnia Azji 44390000 km

2

Rok urodzenia Aleksandra Wielkiego

356 p.n.e.

Łączna wartość waluty amerykańskiej pozostającej w obrocie w 

2004 roku 719,9 miliarda dolarów

Całkowita objętość Wielkich Jezior

23000 km

3

=6,8*1023 

litrów

Łączne wpływy kasowe na całym świecie ze sprzedaży biletów 

na film Titanic

1,835 mld dolarów

Całkowita długość linii brzegowej Oceanu Spokojnego 135663 

km

Liczba tytułów książek opublikowanych w USA od 1776 roku 22 

mln

Najcięższy płetwal błękitny jaki został kiedykolwiek 

zarejestrowany

170 000 kg

background image

Wnioski z podobnych badań

Dla większość ludzi 90% pewności oznacza 
jedynie 30% (Zultner 1999, Jorgensen 2002)
Częściej podawane są wartości zaniżone
Człowiek ma naturalną skłonność do 
zawężania przedziałów bez wyraźnego 
zewnętrznego impulsu:

instynkt – dokładniej, znaczy lepiej
profesjonalizm
pycha
wyimaginowana presja otoczenia

background image

Wartość dokładność 

oszacowań

Najczęściej spotykana definicja 
oszacowania:

Najbardziej optymistyczna prognoza o 

niezerowym prawdopodobieństwie 
spełnienia – Tom DeMarco

Według niektórych autorytetów 
(Capers Jones) nierealne terminy są 
najbardziej destrukcyjne dla projektu i 
oprogramowania

background image

Negatywne czynniki 

zawyżonego oszacowania

Prawo Parkinsona – realizacja zadania 
zawsze wypełnia cały dostępny czas i 
dostępne zasoby
Syndrom studenta – zwlekanie na ostatnią 
chwilę z rozpoczęciem zadania
Kierownik typu X – pracownicy są 
nieodpowiedzialni, okłamują szefów, 
zawyżają oszacowania i wymagają ciągłej 
kontroli
Daty w kalendarzu są bliższe niż myślisz

background image

Negatywne czynniki 

zaniżania oszacowania

• Brak możliwości rzeczywistego zaplanowania prac w projekcie
• Mniejsze prawdopodobieństwo na terminowe wykonanie 

projektu

• „Ucinanie kantów” na szkoleniu, dokumentacji, projekcie 

technicznym prowadzi do zmniejszenia jakości produktu

• Dodatkowe czynności i zasoby związane z gaszeniem pożaru 

(spotkania, eskalacje, raporty, wersje beta, itd.)

• Ucieczka pracowników wykwalifikowanych i znających 

problematykę

• „Ludzie pod presją nie myślą szybciej”

„Projekty można prowadzić na dwa sposób: a) zaplanować i 
realizować lub b) realizować wstrzymać zaplanować i 

realizować”

 

background image

Wynik dobrego oszacowania 

projektu

Możliwość lepszego zaplanowania zadań w 
projekcie
Osiągnięcie planowanej jakości
Zdecydowanie lepsze zarządzanie 
budżetem projektu – system motywacyjny
Uznanie dla profesjonalizmu zespołu 
projektowego
Możliwość planowania kolejnych projektów
Dobre relacje z klientem – lepsze 
perspektywy na kolejne kontrakty

background image

Błędy metod

Brak odniesienia do poprzednich projektów
Stosowanie tylko jednej metody bez 
możliwości weryfikacji z wynikami innych 
metod
Brak ciągłego uaktualniania estymacji i 
porównania z rzeczywistymi wielkościami po 
zakończeniu projektu
Brak stosowania jakiejkolwiek metody 
estymacji
Szacowanie w celu dostosowania wielkości do 
oczekiwań sponsora projektu, klienta, 
udziałowców, „price to win” itd.

background image

Błędy społeczne

Nadmierny optymizm w stosunku do 
dostępności i kompetencji zespołu 
projektowego
Przecenianie wpływu narzędzi i 
nowych technologii
Brak odniesieni do krzywej uczenia 
się zespołu projektowego
Utajnianie złych informacji przed 
przełożonymi

background image

Błędy organizacyjne

Brak doświadczonych kierowników 
projektów
Rozproszenie odpowiedzialności w 
strukturze organizacyjnej, brak 
jasnych ścieżek raportowania
Rozproszenie zespołu projektowego
Nieodpowiednie narzędzia i 
technologia

background image

Proces estymacji

Estymacja wykonana na późniejszym 
etapie projektu jest bardziej wiarygodna
W przypadku oszacowań 
jednopunktowych stosowane są 
przedziały predefiniowane dla 
poszczególnych etapów projektów – 
stożek niepewności
W przypadku projektów iteracyjnych, 
każda iteracja powinna być traktowana 
jako pełny projekt

background image

Dokładność estymacji od 

fazy projektu – stożek 

niepewności

background image

Stożek niepewności – brak 

kontroli projektu

background image

Często pomijane zadania w oszacowaniach 

(COCOMO II) (ang. constructive cost model) – 

model szacowania liczby osobogodzin w 

procesie tworzenia oprogramowania

Wymagania pozafunkcjonalne:

poprawa wydajności
elastyczność
współbieżność
niezawodność
skalowalność
bezpieczeństwo (audity, certyfikacje, itd.)
ergonomia interfejsu

background image

Często pomijane zadania w 

oszacowaniach (COCOMO II)

Obszar wymagań funkcjonalnych:

instalacja i konfiguracja programu
opracowanie konwersji danych
interfejsy do systemów zewnętrznych
dokumenty pomocy
etap wdrożenia
spotkania, konferencje, wizytacje
przygotowania dokumentów 
projektowych


Document Outline