|
Spis treści Wstęp.............................................................................. ix Część I......................... Podstawowe elementy szacowania 1 Czym jest szacowanie?................................................... 3 1.1 Szacowanie, cel i zobowiązanie.......................................... 3 1.2 Związek między szacowaniem i planowaniem....................... 4 1.3 Informowanie o szacunkach, celach i zobowiązaniach............ 5 1.4 Szacowanie jako ustalanie prawdopodobieństwa................... 6 1.5 Typowe definicje „dobrego” oszacowania........................... 10 1.6 Oszacowanie projektu i sterowanie nim............................. 12 1.7 Prawdziwy cel szacowania............................................... 13 1.8 Definicja robocza „dobrego oszacowania”.......................... 14 Dodatkowe źródła............................................................... 14 2 Sprawdzanie swoich umiejętności szacowania............ 15 2.1 Prosty test szacowania................................................... 15 2.2 Omówienie wyników testu................................................ 16 Jak pewne jest „90 % pewności”?........................................ 16 Jak szerokie powinny być przedziały?................................. 18 Skąd się bierze presja na stosowanie wąskich przedziałów?... 18 Na
ile podany test jest reprezentatywny dla faktycznych oszacowań
3 Wartość dokładnych oszacowań................................... 21 3.1 Czy lepsze jest oszacowanie za wysokie czy za niskie?........ 21 Argumenty przeciwko zby wysokiemu oszacowaniu............... 21 Argumenty przeciwko zbyt niskiemu oszacowaniu ................ 22 Porównanie argumentów................................................... 23 3.2 Szczegółowe
dane na temat skuteczności oszacowań w
przemyśle Jak bardzo spóźnione są projekty realizowane po czasie?...... 26 Przypadek pewnej firmy................................................... 26 Problem systemowy przemysłu oprogramowania................... 27 3.3 Korzyści płynące z dokładnego szacowania........................ 27
3.4 Wartość
przewidywalności w porównaniu z
innymi pożądanymi 3.5 Problemy z potocznymi technikami szacowania................... 31 Dodatkowe źródła............................................................... 31 4 Skąd się biorą błędne oszacowania............................. 33 4.1 Źródła niepewności oszacowania...................................... 34 4.2 Stożek niepewności........................................................ 35 Czy można poprawić stożek?............................................ 37 Stożek nie może sam się zwęzić........................................ 37 Wyznaczanie Stożka niepewności dla oszacowań oprogramowania 39 Związek między Stożkiem niepewności i zobowiązaniem........ 40 Stożek niepewności i programowanie iteracyjne.................... 40 4.3 Chaotyczny proces tworzenia........................................... 41 4.4 Niestabilne wymagania................................................... 42 Szacowanie wzrostu wymagań........................................... 42 4.5 Pominięte działania........................................................ 43 4.6 Nieuzasadniony optymizm............................................... 46 4.7 Subiektywność i stronniczość........................................... 46 4.8 Oszacowania podawane bez przygotowania........................ 49 4.9 Niegwarantowana dokładność.......................................... 50 4.10 Inne źródła błędów...................................................... 51 Dodatkowe źródła............................................................... 52 5 Elementy wpływające na oszacowanie......................... 53 5.1 Wielkość projektu.......................................................... 53 Dlaczego w tej książce mierzy się wielkość w liniach kodu?.... 54 Nieekonomiczność skali................................................... 55 Kiedy można bezpiecznie zignorować nieekonomiczność skali 58 Znaczenie nieekonomiczności skali w szacowaniu oprogramowania 59 5.2 Rodzaj tworzonego oprogramowania................................. 60 5.3 Czynniki ludzkie............................................................ 62 5.4 Język programowania..................................................... 63 5.5 Inne elementy wpływające na projekt................................ 64 5.6 Jeszcze raz o nieekonomiczności skali.............................. 70 Dodatkowe źródła............................................................... 72 Część II.......................... Podstawowe techniki szacowania 6 Wstęp do technik szacowania....................................... 75 6.1 Rozważania na temat wyboru techniki szacowania............... 75 Czego dotyczy szacowanie................................................ 75 Wielkość projektu........................................................... 75 Style programowania....................................................... 76 Etap programowania........................................................ 77 Możliwa dokładność........................................................ 78 6.2 Tabela stosowalności różnych technik............................... 78 7 Zliczanie, obliczanie, ocenianie................................... 79 7.1 Najpierw zliczanie......................................................... 80 7.2 Co zliczać.................................................................... 80 7.3 Używanie
obliczeń do konwersji zliczonych wielkości
na 7.4 Kierowanie się oceną należy stosować jako ostateczność...... 84 Dodatkowe źródła............................................................... 84 8 Kalibrowanie i dane historyczne.................................. 85 8.1 Poprawa dokładności i inne korzyści z danych historycznych. 86 Uwzględnienie wpływu organizacji...................................... 86 Unikanie subiektywizmu i nieuzasadnionego optymizmu......... 87 Ograniczenie nacisków na szacowanie................................ 87 8.2 Dane do zbierania......................................................... 89 Kwestie związane z mierzeniem wielkości........................... 89 Kwestie związane z mierzeniem nakładu pracy.................... 90 Kwestie związane z mierzeniem czasu kalendarzowego......... 90 Kwestie związane z mierzeniem liczby usterek..................... 91 Inne kwestie dotyczące zbierania danych............................ 91 8.3 Jak kalibrować.............................................................. 92 8.4 Wykorzystywanie danych projektu do poprawiania oszacowania 93 8.5 Kalibrowanie ze średnimi danymi branżowymi.................... 93 8.6 Podsumowanie.............................................................. 95 Dodatkowe źródła............................................................... 95 9 Indywidualna ocena eksperta....................................... 97 9.1 Strukturalna ocena eksperta............................................ 98 Kto robi oszacowanie?..................................................... 98 Ziarnistość..................................................................... 98 Użycie przedziałów......................................................... 99 Wzory......................................................................... 100 Listy kontrolne.............................................................. 101 9.2 Porównywanie oszacowań z rzeczywistością...................... 102 Dodatkowe źródła............................................................. 104 10 Dekompozycja i rekonstrukcja................................... 105 10.1 Obliczanie dokładnego całkowitego oczekiwanego przypadku 106 Prawo wielkich liczb...................................................... 107 Jak małe powinny być szacowane porcje?.......................... 108 10.2 Dekompozycja metodą WBS......................................... 109 10.3 Niebezpieczeństwo sumowania najgorszych i najlepszych oszacowań 111 Uwaga: nadchodzi matematyka!....................................... 111 Co było źle?................................................................. 111 10.4 Tworzenie
sensownych globalnych oszacowań najlepszego i Obliczanie
zagregowanego najlepszego i najgorszego
przypadku dla Obliczanie
zagregowanego najlepszego i najgorszego
przypadku
Dokonywanie
zagregowanego oszacowania najgorszego i
najlepszego Ostrzeżenia
dotyczące szacowania poziomów procentowych Dodatkowe źródła............................................................. 119 11 Szacowanie przez analogię......................................... 121 11.1 Podstawowe podejście do szacowania przez analogię...... 121 Krok 1:
Ustalenie dokładnej wielkości, pracochłonności i
ostatecznego kosztu Krok 2: Porównanie wielkości nowego projektu z podobnym projektem w przeszłości 123 Krok 3:
Wykonanie oszacowania dla wielkości nowego projektu potraktowanej
Krok 4:
Oszacowanie pracochłonności na podstawie
porównania wielkości nowego Krok 5: Sprawdzenie spójności założeń w starym i w nowym projekcie 125 11.2 Uwagi do niepewności w oszacowaniu systemu Triad........ 126 Niepewność oszacowania, plany i zobowiązania.................. 126 12 Szacowania oparte na zastępstwie............................. 127 12.1 Logika rozmyta.......................................................... 128 Jak uzyskać przeciętne rozmiary...................................... 128 Jak klasyfikować nowe funkcje......................................... 129 Jak nie używać logiki rozmytej......................................... 129 Rozszerzenia logiki rozmytej.......................................... 130 12.2 Standardowe składniki................................................ 130 Używanie standardowych składników z percentylami........... 132 Ograniczenia metody standardowych składników................ 133 12.3 Punktacja historyjek................................................... 134 Ostrzeżenia dotyczące skali ocen..................................... 135 12.4 Rozmiary T-shirtowe.................................................. 137 12.5 Inne zastosowania technik opartych na zastępstwie ......... 139 12.6 Dodatkowe źródła...................................................... 139 13 Ocena eksperta w grupach......................................... 141 13.1 Recenzje grupowe...................................................... 141 13.2 Wideband Delphi....................................................... 142 Efektywność metody Wideband Delphi............................... 144 „Prawda jest gdzieś tam”................................................ 146 Kiedy używać Wideband Delphi........................................ 146 Dodatkowe źródła............................................................. 147 14 Narzędzia programistyczne do szacowania............... 149 14.1 Rzeczy, które można zrobić przy użyciu narzędzi, a nie można ręcznie 149 14.2 Dane potrzebne do kalibracji narzędzi programistycznych 154 14.3 Jedna rzecz, której nie należy robić przy korzystaniu z narzędzi programistycznych, tak samo jak i w innym przypadku................................................ 155 14.4 Podsumowanie dostępnych narzędzi.............................. 155 Dodatkowe źródła............................................................. 156 15 Stosowanie kilku metod szacowania.......................... 157 Dodatkowe źródła............................................................. 161 16 Schemat szacowania oprogramowania w przypadku dobrze oszacowanego projektu....................................................................... 163 16.1 Schemat indywidualnego szacowania w przypadku źle oszacowanego projektu 163 16.2 Schemat indywidualnego szacowania w przypadku dobrze oszacowanego projektu 164 16.3 Chronologiczny schemat szacowania dla całego projektu... 166 Schemat szacowania dla dużych projektów........................ 167 Schemat szacowania dla małych projektów........................ 167 16.4 Poprawianie oszacowania............................................ 167 16.5 Jak przedstawić powtórne oszacowanie pozostałym stronom projektu 168 Kiedy podawać kolejne oszacowania................................. 169 Co, jeśli kierownictwo nie zezwala na powtarzanie szacowania? 171 16.6 Obraz dobrze oszacowanego projektu........................... 171 17 Standardowe procedury szacowania.......................... 173 17.1 Typowe elementy standardowej procedury..................... 173 17.2 Dopasowywanie oszacowania do procesu faza‑bramka..... 174 17.3 Przykład standardowej procedury szacowania dla projektów sekwencyjnych 177 17.4 Przykład standardowej procedury szacowania dla projektów iteracyjnych 180 17.5 Przykład standardowej procedury szacowania pochodzący z zaawansowanej technicznie organizacji................................................................... 182 17.6 Ulepszanie standardowej procedury.............................. 184 Dodatkowe źródła............................................................. 185 Część III.... Szczególne wyzwania związane z szacowaniem 18 Szczególne problemy z szacowaniem wielkości....... 189 18.1 Różne metody szacowania wielkości.............................. 190 Rola linii kodu w szacowaniu wielkości.............................. 190 18.2 Szacowanie punktów funkcyjnych.................................. 192 Konwertowanie punktów funkcyjnych na linie kodu.............. 194 18.3 Uproszczone techniki punktów funkcyjnych..................... 195 Metoda holenderska...................................................... 195 Elementy GUI................................................................ 196 18.4 Podsumowanie technik szacowania wielkości................... 197 Dodatkowe źródła............................................................. 198 19 Szczególne problemy szacowania nakładu pracy...... 199 19.1 Elementy wpływające na pracochłonność........................ 199 19.2 Obliczanie pracochłonności na podstawie rozmiaru.......... 201 Dokonywanie oszacowań nakładu pracy za pomocą nieformalnego porównania z wcześniejszymi projektami................................................................ 201 Jaki rodzaj nakładu pracy mieści się w tym oszacowaniu?..... 202 19.3 Obliczanie nakładu pracy przy użyciu nauki szacowania... 202 19.4 Wykresy średniej branżowej nakładu pracy.................... 202 19.5 Metoda ISBSG............................................................ 208 19.6 Porównywanie oszacowań nakładu pracy........................ 210 Dodatkowe źródła............................................................. 211 20 Szczególne problemy szacowania harmonogramu.... 213 20.1 Podstawowe równanie harmonogramu............................ 213 20.2 Wyliczanie harmonogramu za pomocą nieformalnego porównania z dawnymi projektami 215 20.3 Zasada szacowania pierwszego rzędu Jonesa.................. 216 20.4 Obliczanie oszacowania harmonogramu przy użyciu nauki szacowania 217 20.5 Skracanie harmonogramu i najkrótszy możliwy harmonogram 218 20.6 Szukanie kompromisu między terminem i nakładem pracy. 220 Skracanie harmonogramu a wielkość zespołu..................... 221 20.7 Szacowanie harmonogramu przy ograniczeniach na zespół 222 20.8 Porównanie rezultatów różnych metod........................... 223 Dodatkowe źródła............................................................. 224 21 Szacowanie parametrów planowania.......................... 225 21.1 Szacowanie podziału pracy nad projektem..................... 225 Szacowanie nakładów pracy na różne działania techniczne... 225 Szacowanie nakładu pracy na wymagania.......................... 226 Szacowanie nakładu pracy na zarządzanie........................ 227 Szacowanie wszystkich działań........................................ 227 Dopasowania wynikające z typu projektu.......................... 228 Przykład dzielenia nakładu pracy między różne działania.... 228 Proporcje programistów do testerów................................ 229 21.2 Szacowanie harmonogramu różnych działań.................... 230 21.3 Konwertowanie szacowanego nakładu pracy (idealnego nakładu pracy) na planowany nakład pracy.......................................................................... 231 21.4 Oszacowania kosztów................................................. 232 Nadgodziny.................................................................. 232 Czy koszt projektu jest oparty na kosztach bezpośrednich, na kosztach ogólnych, czy jeszcze innych?..................................................................... 232 Inne koszty bezpośrednie............................................... 233 21.5 Szacowanie powstawania usterek i ich usuwania.............. 233 Szacowanie usuwania usterek.......................................... 234 Przykład szacowania wydajności usuwania usterek.............. 235 21.6 Szacowanie ryzyka i marginesów bezpieczeństwa............ 237 21.7 Inne praktyczne zasady.............................................. 238 21.8 Dodatkowe źródła...................................................... 239 22 Style prezentacji oszacowania.................................... 241 22.1 Komunikowanie założeń oszacowania............................ 241 22.2 Wyrażanie niepewności............................................... 243 Kwalifikatory plus‑lub‑minus............................................ 243 Kwantyfikacja ryzyka..................................................... 243 Współczynniki ufności.................................................... 244 Oszacowania oparte na przypadkach................................ 246 Ogólnikowe daty i okresy................................................ 247 22.3 Używanie przedziałów (dowolnego rodzaju).................... 248 Przydatność oszacowań przedstawianych w postaci przedziałów 248 Przedziały a zobowiązania.............................................. 249 Dodatkowe źródła............................................................. 249 23 Polityka, negocjacje i rozwiązywanie problemów.... 251 23.1 Cechy kierownictwa.................................................... 251 23.2 Polityczne wpływy na oszacowanie................................ 252 Ograniczenia zewnętrzne................................................ 252 Budżet i terminy........................................................... 253 Negocjowanie oszacowania a negocjowanie zobowiązań....... 253 Co robić, jeśli oszacowanie zostało odrzucone................... 254 Odpowiedzialność pracowników technicznych za edukację stron pozbawionych przygotowania technicznego............................................................. 254 23.3 Rozwiązywanie problemu i honorowe negocjacje............. 255 Negocjacje na zasadzie szukania rozwiązania problemu...... 256 Oddzielać ludzi od problemu.......................................... 256 Koncentrować się na interesach, nie na stanowiskach.......... 257 Szukać opcji korzystnych dla wszystkich........................... 258 Nalegać na stosowanie obiektywnych kryteriów................... 260 Dodatkowe źródła............................................................. 261 Dodatki A Kontrola rzetelności oszacowania.............................. 263 B Odpowiedzi do testu z rozdziału 2........................... 265 C Wskazówki.................................................................... 267 Bibliografia................................................................... 282 Indeks........................................................................... 291
|