Książka jest syntetycznym opracowaniem na temat coraz bardziej popularnej metodologii wdrożeń systemów informatycznych - Agile, pozwalającym znaleźć odpowiedź na pytanie: kiedy i w jakim celu zdecydować się właśnie na nią, a nie na klasyczną metodykę. Publikacja zawiera szczegółowe porady i praktyczne przykłady. Autor opisuje zalety i możliwości, ale również zagrożenia płynące z zastosowania zwinnych (Agile) metodyk podczas wdrożeń IT. Jako punkt wyjścia rozważań przyjmuje konkretną potrzebę biznesową lub technologiczną, którą można realnie przy pomocy wyboru Agile zrealizować.
Wstęp 5
1. Metody zwinne - wprowadzenie 7
1.1. Metoda prób i błędów - lekarstwo na niepewność 10
1.2. Najważniejsze fakty z historii metod iteracyjnych i przyrostowych 12
1.3. Dalszy rozwój metod zwinnych - post-agilism 13
1.4. Przegląd metod zwinnych 14
1.5. Metametoda - wybór procesu 20
1.6. Unikanie szkodliwych nieporozumień na temat Agile 25
1.7. Agile w kaskadowym świecie 27
1.8. Integracja wielu zespołów Agile 28
2. Od potrzeby biznesowej do zaspokojenia - zwinna realizacja 31
2.1. Etapy życia produktu: projekt, wdrożenie, utrzymanie 31
2.2. Czy klienci potrzebują dobrych produktów? 32
2.3. Brak kosztów jakości projektów i jakości produktów 33
2.3. Modele cyklu życia oprogramowania 36
2.4. Ciągła integracja i częste dostawy 43
3. Zwinna inżynieria wymagań 51
3.1. Cele określania wymagań 54
3.2. Techniki pozyskiwania wymagań 57
3.3. Paradoksy wymagań i model Kano 60
3.4. Współpraca z marketingiem 61
3.5. Opisywanie wymagań 63
3.6. Rodzaje wymagań - atrybuty jakości 64
3.7. Zasady podziału wymagań w Scrumie 65
3.8. Korzyści i koszty zapisywania 66
3.9. Opisywanie wymagań w języku naturalnym 69
3.10. Opowieści użytkowników 70
3.11. Modelowanie wymagań 71
3.12. Zatwierdzanie wymagań 73
3.13. Weryfikacja, walidacja, negocjowanie i konsolidacja wymagań w Agile 75
3.14. Interesariusze, kontekst, granica kontekstu i negocjacje w metodach zwinnych 77
3.15. Zwinne przeglądy 79
3.16. Weryfikacja modeli 81
3.17. Zarządzanie śliskimi wymaganiami 82
3.18. Wersjonowanie 84
3.19. Śledzenie powiązań wymagań 86
4. Planowanie i nadzorowanie w Agile Serum 89
4.1. Zasady dobrego planowania pracy 89
4.2. Przegląd sposobów szacowania pracochłonności 92
4.3. Szacowanie algorytmiczne lub na podstawie doświadczenia 93
4.4. Planowanie w Agile: pracochłonność, wydajność zespołu, ryzyko 95
4.5. Dług techniczny 97
4.6. Diagram wypalenia i jego wykorzystanie 101
5. Testowanie w Agile 103
5.1. Testowanie jako jedna z form zapewnienia jakości w Agile 104
5.2. Cele, rodzaje i poziomy testów według kwadrantów testowych Agile 108
5.3. Testy czarnej skrzynki i testy dogłębne 110
5.4. Testy właściwości (pozafunkcjonalne) w Agile 111
5.5. Szkoła kontekstowa i testowanie eksploracyjne w Agile 113
5.6. Testowanie eksploracyjne w Agile 117
5.7. Podstawy automatyzacji testów w projektach Agile 118
5.8. Automatyzacja przygotowania testów w Agile 120
5.9. Znaczenie automatycznych testów w modelu iteracyjnym 122
5.10. Wpływ Agile na automatyzację testów 123
5.11. Testowanie na podstawie modeli 124
5.12. Projektowanie testów 125
5.13. Sposoby projektowania testów 131
5.14. Agile a tradycyjne trudności testowania 132
5.15. Obsługa wykrytych błędów 134
5.16. Testy jednostkowe 136
5.17. Metodyka TDD 136
5.18. Testy akceptacyjne a kryteria ukończenia - ATDD 138
6. Jak być Agile i przetrwać w zespole 141
6.1. Społeczne i psychologiczne aspekty pracy zwinnej 141
6.2. Znaczenie rytuałów i terminologii Agile 142
6.3. Zwinny programista i jego rola w zespole Agile 145
6.4. Metody treningu - jak stać się zwinnym 146
6.5. Certyfikacje 148
6.6. Wady i zalety certyfikatów 149
6.7. Wybór certyfikacji 150
6.8. Agile po pięćdziesiątce 152
6.9. Agile a kariera 153
7. Słownik terminów 155
8. Źródła 157