You are on page 1of 28

Agile.

Wzorce wdraania
praktyk zwinnych
Autor: Amr Elssamadisy
Tumaczenie: Mikoaj Szczepaniak
ISBN: 978-83-246-2318-1
Tytu oryginau: Agile Adoption Patterns:
A Roadmap to Organizational Success
Format: 168x237, stron: 408
Poznaj metody wdraania praktyk zwinnych i twrz perfekcyjne oprogramowanie!
Jak wykorzystywa wzorce wdraania praktyk zwinnych?
Jak stosowa praktyki byskawicznego i efektywnego gromadzenia
informacji zwrotnych?
Jak integrowa grupy praktyk zwinnych, podnoszc ich czn skuteczno?

Metody zwinne maj pomc Ci w tworzeniu oprogramowania dostarczajcego wicej


walorw biznesowych dziki nim powiniene robi to nie tylko szybciej i taniej,
ale te bezpiecznie i bezstresowo. Okazuje si jednak, e wiele organizacji ma problemy
z implementowaniem i penym wykorzystaniem tych metod. Jeli nie chcesz doczy
do tego grona, powiniene skorzysta z tej ksiki zaprezentowano w niej najlepsze
praktyki doskonalce proces wytwarzania oprogramowania, a poza tym wskazano
konkretne powody wyboru zalecanych praktyk.
Ksika Agile Adoption Patterns A Roadmap to Organizational Success w sposb
wyczerpujcy, a jednoczenie zrozumiay prezentuje proces definiowania optymalnej
strategii wdraania praktyk zwinnych. W podrczniku zanalizowane zostay take
najwaniejsze przeszkody na drodze do implementacji metod zwinnych, obok ktrych
zaprezentowano sprawdzone rozwizania tych problemw. Z tego przewodnika dowiesz
si, jak wybra praktyki najlepsze dla Twojej firmy i Twojego rodowiska technicznego
oraz jak przyrostowo wdraa metody zwinne. Nauczysz si efektywnego tworzenia
oprogramowania niezalenie od Twojej roli w projekcie lidera, programisty, architekta
lub klienta.
Wzorce wdraania praktyk zwinnych
Praktyki sprzenia zwrotnego
Praktyki techniczne i pomocnicze
Zautomatyzowane testy programisty
Programowanie w parach
Angaowanie spoecznoci
Projekty ewolucyjne
Wdraanie praktyk zwinnych
Wymagania sterowane testami
Iteracja zwinna
Grupa praktyk komunikacyjnych

Oto podrcznik efektywnego wdraania praktyk zwinnych, ktre bez trudu


zaimplementujesz do swojego projektu!

SPIS TRECI
Sowo wstpne Lindy Rising

21

Sowo wstpne J.B. Rainsbergera

25

Przedmowa

27

Podzikowania

35

O autorze

39

Cz 1. Przemylenia o wytwarzaniu oprogramowania

41

Rozdzia 1. Uczenie si jest wskim gardem


Hipotetyczny eksperyment
Spojrzenie na metodyki zwinne przez pryzmat koncepcji
uczenie si jest wskim gardem
Cykle rozpoznawania i reagowania na zmiany
Cykl warunek konieczny, ale nie wystarczajcy
Dlaczego to jest takie wane? Od teorii do praktyki
Nie lekcewa tego wskiego garda
Podsumowanie

43
43

Rozdzia 2. Osobista zwinno jako warunek


skutecznego stosowania praktyk zwinnych
Dlaczego naley wdraa praktyki zwinne?
Kiedy mona mwi o udanym wdroeniu?
Problem wiele nieudanych wdroe metodyk zwinnych
Przyczyna wszystko zaley od okolicznoci
Model Responsibility Process
Chc by bardziej odpowiedzialny. Jak tego dokona?
Moi wsppracownicy utknli. Co powinienem zrobi?
Prawdziwa zwinno
Skuteczne zespoy skadaj si z odpowiedzialnych czonkw
Rozpoznawanie i reagowanie na zmiany wymaga odpowiedzialnoci
Skuteczne wdraanie zwinnych metodyk wytwarzania
rozpoczyna si od jednostki
Osobista zwinno
Od teorii do praktyki

45
45
47
49
50
52
53
54
54
54
55
55
57
57
57
57
58
59
59
60

10

SPIS TRECI

Cz 2. Przygotowywanie strategii wdraania praktyk zwinnych

61

Rozdzia 3. Walor biznesowy


Ograniczanie czasu wprowadzania produktu na rynek
Poprawa uytecznoci produktu (wartoci na rynku)
Podniesienie jakoci produktu trafiajcego na rynek
Podniesienie elastycznoci
Podniesienie widocznoci
Ograniczenie kosztw
Wyduanie czasu ycia produktu
Walory biznesowe s celami organizacyjnymi
Od teorii do praktyki okrelanie walorw biznesowych Twojej organizacji

63
63
64
64
65
65
65
66
66
67

Rozdzia 4. Problemy
Problemy biznesowe
Jako produktu przekazanego klientowi jest nie do przyjcia
Dostarczanie klientowi nowych funkcji trwa zbyt dugo
Zaimplementowane funkcje nie s wykorzystywane przez klienta
Oprogramowanie okazao si nieprzydatne dla klienta
Budowa oprogramowania jest zbyt droga
My kontra oni
Klient da od nas wszystkiego, w tym zlewu kuchennego
Problemy zwizane z procesami
Klient? Jaki klient? Wiara w bezporednie i regularne sugestie klienta
jest nieuzasadniona
Zarzd jest zaskoczony brak widocznoci
Niewystarczajce zasoby praktycy oprogramowania
nale do wielu jednoczenie pracujcych zespow
Ruchome projekty
Setki (lub tysice) bdw zarejestrowanych przez narzdzie ledzce
Potrzeba fazy hartowania na kocu cyklu wydawania
Integracja ma miejsce zbyt rzadko (poniewa jest kopotliwa)
Utrudnienia jako bodziec do dziaania
Od teorii do praktyki potrafisz znale jakie problemy?

69
70
70
70
70
71
71
71
72
72

Rozdzia 5. Wdraanie praktyk zwinnych


Praktyki
Wzorce kojarzenia praktyk zwinnych z walorami biznesowymi
Wzorce kojarzenia praktyk zwinnych z problemami
Wypracowywanie wasnej strategii wdraania praktyk zwinnych
Co dalej?
Od teorii do praktyki budowa wasnej strategii wdraania praktyk zwinnych

77
77
78
82
88
90
91

Cz 3. Katalog wzorcw
Rozdzia 6. Wzorce wdraania praktyk zwinnych
Czym jest wzorzec?
Efektywne stosowanie wzorcw
Uczestnicy scenariuszy

73
73
74
74
74
75
75
76
76

93
95
95
97
99

SPIS TRECI

11

Rozdzia 7. Cel
Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

101
101
101
102
102
102
103
103
104
104

Rozdzia 8. Cykl
Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

105
105
105
106
106
106
107
107
108
108

Cz 3.1. Informacje zwrotne

109

Rozdzia 9. Iteracja
Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

111
111
112
112
113
113
114
115
116
117

Rozdzia 10. Spotkanie pocztkowe


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

119
119
119
120
120
121
121
121
122
122

12

SPIS TRECI

Rozdzia 11. Lista zalegych zada


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

123
123
124
124
125
125
126
127
128
128

Rozdzia 12. Gra w planowanie


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Dodatkowe rda

129
129
129
130
130
131
132
132
133

Rozdzia 13. Poranne spotkania


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

135
135
135
136
136
137
137
138
139
140

Rozdzia 14. Stan wykonania


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

141
141
141
142
142
142
143
143
144
145

Rozdzia 15. Demonstracja


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania

147
147
147
148
148
148

SPIS TRECI

13

Wdraanie
Ale
Odmiany
Dodatkowe rda

149
150
151
151

Rozdzia 16. Retrospektywa


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

153
153
153
154
154
155
156
157
158
158

Rozdzia 17. Czste wydania


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

159
159
160
160
161
161
161
162
162
162

Rozdzia 18. Praca w jednym miejscu


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

163
163
163
164
164
165
165
166
166
167

Rozdzia 19. Samoorganizujcy si zesp


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

169
169
170
170
170
171
172
172
173
173

14

SPIS TRECI

Rozdzia 20. Zesp midzyfunkcjonalny


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

175
175
176
177
177
178
178
179
180
180

Rozdzia 21. Klient jako cz zespou


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

181
181
181
182
182
183
183
185
186
186

Rozdzia 22. Poruszajce dokumenty


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

189
189
189
190
190
191
191
192
192
193

Rozdzia 23. Historia uytkownika


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

195
195
195
196
196
196
197
198
198
199

Rozdzia 24. Przypadek uycia


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania

201
201
201
202
202

SPIS TRECI

15

Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

202
203
203
204
204

Rozdzia 25. Radiator informacji


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

205
205
205
206
206
206
206
207
208
209

Cz 3.2. Praktyki techniczne

211

Rozdzia 26. Zautomatyzowane testy programisty


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

213
213
214
215
215
216
217
220
222
223

Rozdzia 27. Wytwarzanie koczone testami


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Dodatkowe rda

225
225
225
226
226
227
227
227
228

Rozdzia 28. Wytwarzanie poprzedzane testami


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

229
229
229
230
231
231
232
233
234
234

16

SPIS TRECI

Rozdzia 29. Refaktoryzacja


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

235
235
235
236
236
237
237
238
239
239

Rozdzia 30. Integracja ciga


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

241
241
241
242
242
243
244
246
248
248

Rozdzia 31. Prosty projekt


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

249
249
249
250
250
251
251
253
253
254

Rozdzia 32. Testy funkcjonalne


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Testy podsystemu zarzdzania towarami
Zalety zautomatyzowanych testw funkcjonalnych
Wdraanie
Ale
Problemy implementacyjne
Problemy architekturalne
Odmiany
Dodatkowe rda

255
255
255
256
256
258
258
260
262
263
264
266
268
269

SPIS TRECI

17

Rozdzia 33. Wsplna wasno kodu


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

271
271
271
272
272
273
273
274
274
274

Rozdzia 34. Programowanie w parach


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

275
275
275
276
276
277
277
278
279
279

Cz 3.3. Praktyki pomocnicze

281

Rozdzia 35. Instruktor


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

283
283
283
284
284
284
285
285
286
286

Rozdzia 36. Angaowanie spoecznoci


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

287
287
287
288
288
288
289
290
291
291

18

SPIS TRECI

Rozdzia 37. Koa czytelnicze


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

293
293
293
294
294
295
295
296
297
297

Rozdzia 38. Warsztaty


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

299
299
299
300
300
300
301
301
302
302

Rozdzia 39. Szkolenia


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany

303
303
303
304
304
304
305
306
307

Cz 3.4. Grupy praktyk

309

Rozdzia 40. Iteracja zwinna


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

311
312
312
312
313
313
314
315
315
316

Rozdzia 41. Grupa praktyk komunikacyjnych


Walor biznesowy
Scenariusz
Kontekst

317
317
317
318

SPIS TRECI

19

Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

319
319
320
321
321
322

Rozdzia 42. Projekt ewolucyjny


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

323
323
324
325
325
326
327
328
329
329

Rozdzia 43. Wytwarzanie sterowane testami


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

331
331
332
332
333
334
334
336
337
337

Rozdzia 44. Wymagania sterowane testami


Walor biznesowy
Scenariusz
Kontekst
Przyczyny stosowania
Skutki stosowania
Wdraanie
Ale
Odmiany
Dodatkowe rda

339
339
340
340
341
342
342
343
344
345

Cz 4. Studia przypadkw
Rozdzia 45. Witryna internetowa BabyCenter
Wdraanie praktyk zwinnych przez zesp BabyCenter
pierwszy kwarta 2007 roku
Wypracowywanie strategii wdraania praktyk zwinnych
Wnioski
Ocena wdraania praktyk zwinnych przez zesp BabyCenter
pierwszy kwarta 2008 roku

347
349
350
350
355
355

20

SPIS TRECI

Rozdzia 46. Firma X


Wdraanie praktyk zwinnych przez firm X pierwsze dwa kwartay 2007 roku
Kontekst tego raportu
Biece cele biznesowe
Widok z perspektywy okopw
Sugerowane praktyki na reszt 2007 roku
Dusza perspektywa
Wnioski
Wdraanie praktyk zwinnych przez firm X ocena kocowa
Aktualna sytuacja

Cz 5. Dodatki

359
359
360
360
361
366
371
371
371
371

375

Dodatek A. Zwizki midzy walorami biznesowymi i praktykami zwinnymi

377

Dodatek B. Zwizki praktyk zwinnych i problemw

379

Dodatek C. Czerpanie maksymalnych korzyci


ze wzorcw wdraania praktyk zwinnych

381

Dodatek D. Materiay dodatkowe

385

Bibliografia

387

ROZDZIA 5

WDRAANIE PRAKTYK ZWINNYCH

77

Rozdzia 5

WDRAANIE
PRAKTYK ZWINNYCH

Do tej pory koncentrowalimy si na walorach i problemach biznesowych. Na kocu


obu dotychczasowych rozdziaw tej czci wykonae wiczenia, w ramach ktrych
opracowae list walorw biznesowych (z przypisanymi priorytetami) oraz list
problemw wymagajcych rozwizania (take z priorytetami). Jeli nie sporzdzie
tych list, wr do odpowiednich podrozdziaw i wykonaj te wiczenia teraz.
Bogatszy o znajomo priorytetw swoich klientw i najwaniejszych utrudnie
napotykanych przez Twoj firm, bdziesz gotowy do identyfikacji praktyk,
ktrych wdroenie powiniene rozway wanie z myl o eliminacji tych przeszkd
i uzyskiwaniu moliwie wysokiej wartoci w wyniku swoich dziaa.

W tym rozdziale sprbuj wskaza Ci kierunek, jak waciwie wybiera praktyki


pod ktem ewentualnego wdraania we wasnej organizacji. Postaram si te zasugerowa Ci sposoby oceny Twojej dotychczasowej pracy, ktra mimo e z natury
rzeczy bdzie subiektywna pozwoli Ci osign naleyt zwinno w podejciu
do problemu wdraania. Chciabym, eby traktowa ten materia jako zbir wskazwek,
jak wyznacza wasne priorytety i jak sporzdza wasn list praktyk do wdroenia.
Jeli szukasz gotowych recept wymienionych praktyk A, B i C z pewnoci nie
znajdziesz ich w tej ksice. (A jeli znajdziesz je gdzie indziej, zachowaj ostrono,
poniewa tak reklamowanym materiaom z reguy nie mona ufa).

PRAKTYKI
Istot tej ksiki jest prezentacja wzorcw wdraania zwinnych praktyk wytwarzania
oprogramowania, czyli praktyk zwinnych sporzdzonych w formie wzorcw koncentrujcych si na problemie wdraania. W tym rozdziale sprbujemy wsplnie
wybra praktyki najlepiej pasujce do kontekstu Twojej organizacji. Identyfikacja
waciwych praktyk w duej mierze zaley od pracy wykonanej w poprzednich
rozdziaach, kiedy zachcaem Ci do przypisania swoich walorom biznesowym
i problemom priorytetw na tej podstawie wybierzemy praktyki, ktrych wdroenie powinno podnie walory biznesowe i ograniczy obserwowane problemy.

78

CZ 2

PRZYGOTOWYWANIE STRATEGII WDRAANIA PRAKTYK ZWINNYCH

WZORCE KOJARZENIA PRAKTYK ZWINNYCH


Z WALORAMI BIZNESOWYMI
Zacznijmy od istoty tego rozdziau. Na rysunkach od 5.1 do 5.7 przedstawiono diagramy ilustrujce zwizki poszczeglnych walorw biznesowych z praktykami, ktre powinny te walory
rozszerza. Prezentowane zwizki (odwzorowania), jak wszystkie wzorce opisywane w tej ksice,
powstay przez poczenie dowiadcze zgromadzonych podczas wielu prb wdraania praktyk
zwinnych. Kada z tych praktyk odpowiada wzorcowi, ktry zostanie szczegowo udokumentowany w dalszej czci tej ksiki. Nie powiniene si wic przejmowa, jeli na tym etapie cz
spord nich jest dla Ciebie niezrozumiaa.
Przeanalizujmy teraz diagram z rysunku 5.1, aby lepiej zrozumia, jak czyta podobne ilustracje
walorw biznesowych. Strzaki pomidzy praktykami reprezentuj zalenoci oznacza to,
e na przykad refaktoryzacja zaley od zautomatyzowanych testw programisty. Istotne znaczenie
ma take ukad pionowy im wyej znajduje si dana praktyka, tym wikszy jest jej wpyw
na odpowiedni walor biznesowy. Oznacza to, e na przykad iteracje maj wikszy wpyw na walor
krtkiego czasu dostarczania produktu na rynek (pozwala ten czas bardziej skrci) ni zautomatyzowane testy programisty, a praktyka wytwarzania poprzedzonego testami jest bardziej
efektywna od praktyki wytwarzania koczonego testami. Moesz wic wykorzystywa te diagramy do okrelania, ktre praktyki zasuguj na szczegln uwag jako potencjalne rozwizania
do wdroenia. Nie naley jednak traktowa tych diagramw jako czego wicej ni sugestie.
Mimo e wszystkie proponowane praktyki maj pozytywny wpyw na odpowiednie walory biznesowe, blisza analiza szczegowych rozwiza moe wykaza, e niektre z nich nie znajduj
zastosowania w przypadku Twojej organizacji.

Rysunek 5.1. Praktyki skracajce czas dostarczania produktu na rynek

ROZDZIA 5

WDRAANIE PRAKTYK ZWINNYCH

79

Wykonywanie niewielkich krokw i tym samym byskawiczne odkrywanie niepowodze


jest najbardziej efektywn metod oceny skutecznoci poszczeglnych praktyk. Warto eliminowa
usterki moliwie wczenie, poniewa im wczeniej je odkrywamy, tym mniej nas kosztuj i tym
mniejsze jest ryzyko rozpoczcia budowy na niepewnych fundamentach. Wanie dlatego takie
praktyki, jak iteracja czy integracja ciga (ang. continuous integration), maj tak dobry wpyw
na czas wprowadzania produktu na rynek. Obie te praktyki zale jednak od innych praktyk.
Wyobramy sobie, e chcemy skrci czas przekazywania produktu na rynek, wdraajc praktyk
zautomatyzowanych testw i trio iteracyjnego, czyli iteracji, stanu wykonania (ang. done state)
oraz listy zalegych zada iteracji (ang. iteration backlog).
Na rysunku 5.2 pokazano praktyki zwikszajce uyteczno produktu. Jak dotd najbardziej
efektywn spord znanych praktyk w tym obszarze jest metoda wczania klientw do zespou
(ang. customers part of team). Warto wic sprawdzi jej skuteczno w pierwszej kolejnoci. Jeli
ju teraz stosujesz zautomatyzowane testy programistw lub metod koczenia iteracji prezentacjami wersji demonstracyjnych, powiniene rozway wdroenie praktyki testw funkcjonalnych.

Rysunek 5.2. Praktyki podnoszce uyteczno produktu


Mimo e w obszarze jakoci produktw niepodzielnie rzdz praktyki wytwarzania sterowanego
testami i wymaga sterowanych testami, obie te metody zale od innych praktyk (patrz rysunek 5.3). Powiniene wic rozway przyjcie za punkt wyjcia jednej z praktyk zaliczanych
do grupy zautomatyzowanych testw programisty (najlepiej wytwarzanie poprzedzone testami)

80

CZ 2

PRZYGOTOWYWANIE STRATEGII WDRAANIA PRAKTYK ZWINNYCH

Rysunek 5.3. Praktyki podnoszce jako produktu


oraz praktyki programowania w parach. Bezporednio po nich warto wprowadzi technik refaktoryzacji. Programowanie w parach powinno Ci pomc w szybkim i bezbolesnym wdraaniu
tych wyjtkowo trudnych praktyk. Kiedy ju nabierzesz wprawy w korzystaniu ze zautomatyzowanych testw programisty, skoncentruj swoj uwag na penowartociowym wytwarzaniu
sterowanym testami i rozwa implementacj testw funkcjonalnych.
Istniej dwa oglne rodzaje elastycznoci, o ktrych mona mwi w kontekcie wytwarzania
oprogramowania elastyczno zespou oraz elastyczno techniczna (patrz rysunek 5.4).
Elastyczno zespou decyduje o jego zdolnoci do rozpoznawania i reagowania na zachodzce
zmiany. Warunkiem waciwego reagowania na zmiany, przez dobr odpowiedniego oprogramowania, jest elastyczno techniczna. Oznacza to, e musimy zadba zarwno o elastyczno
zespou, jak i o elastyczno techniczn. W pierwszej kolejnoci powiniene wdroy praktyki
zautomatyzowanych testw programisty, samoorganizujcego si zespou oraz trio iteracyjnego,
czyli iteracji, stanu wykonania i listy zalegych zada. O ile testowanie zapewni Ci osignicie
waciwej elastycznoci technicznej, pozostae wymienione praktyki podnios elastyczno
Twojego zespou.

ROZDZIA 5

WDRAANIE PRAKTYK ZWINNYCH

81

Rysunek 5.4. Praktyki zwikszajce elastyczno


Lista zalegych zada i radiatory informacji to pierwsze, jednoczenie stosunkowo atwe dziaania
na rzecz poprawy widocznoci (patrz rysunek 5.5). W zalenoci od potrzeb w zakresie zwikszania
widocznoci moesz obra albo stosunkowo prost drog z praktykami iteracji, stanu wykonania
i wersji demonstracyjnych, albo trudniejszy, ale te bardziej efektywny model z testami funkcjonalnymi i wymaganiami sterowanymi testami.

Rysunek 5.5. Praktyki poprawiajce widoczno

82

CZ 2

PRZYGOTOWYWANIE STRATEGII WDRAANIA PRAKTYK ZWINNYCH

Koszty mona ogranicza na dwa sposoby moesz albo zadba o uproszczenie konserwacji
kodu, albo po prostu pisa mniej kodu (ograniczajc si do implementowania najwaniejszych
funkcji). Wdraanie kolejno praktyk zautomatyzowanych testw, refaktoryzacji, uproszczonych
projektw i projektowania ewolucyjnego jest waciwym sposobem ograniczania kosztw utrzymania (konserwacji). Praktyki listy zalegych zada, iteracji i stanu wykonania skutecznie
zmniejszaj ilo pisanego kodu (patrz rysunek 5.6).

Rysunek 5.6. Praktyki redukujce koszty


Czas ycia produktu jest odwrotnie proporcjonalny do kosztw jego konserwacji oprogramowania.
Istniej dwa sprawdzone sposoby ograniczania kosztw utrzymania: (1) sporzdzenie siatki bezpieczestwa zoonej z testw i efektywne wprowadzanie zmian w systemie z jednoczesnym
ograniczaniem ich kosztw oraz (2) szerzenie wrd czonkw zespou wiedzy o projekcie danego
systemu. Kluczem do skutecznej realizacji pierwszego z tych zada jest wdroenie praktyki zautomatyzowanych testw programisty; drugie zadanie mona zrealizowa przez programowanie
w parach i wspln wasno kodu.

WZORCE KOJARZENIA PRAKTYK ZWINNYCH Z PROBLEMAMI


Jak ju wspomniano, istniej dwa gwne typy problemw: biznesowe oraz zwizane z procesem.
Problemy biznesowe s w istocie przeciwiestwem walorw biznesowych, std identyczne wzorce
kojarzenia odpowiednich praktyk zwinnych:

ROZDZIA 5

WDRAANIE PRAKTYK ZWINNYCH

83

Rysunek 5.7. Praktyki wyduajce czas ycia produktu

jako produktu przekazanego klientowi jest nie do przyjcia jako produktu


trafiajcego na rynek;

dostarczanie klientowi nowych funkcji trwa zbyt dugo czas wprowadzania


produktu na rynek;

zaimplementowane funkcje nie s wykorzystywane przez klienta uyteczno produktu;

oprogramowanie okazao si nieprzydatne dla klienta uyteczno produktu;

budowa oprogramowania jest zbyt droga ograniczenie kosztw.

Dla pozostaych problemw istniej odrbne odwzorowania we wzorce wdraania praktyk zwinnych (pokazane na rysunkach od 5.8 do 5.15).
Najlepszym rozwizaniem agodzenia skutkw wystpowania problemu okrelanego jako my
kontra oni jest prowadzenie moliwie czstych konwersacji na temat rzeczywistej natury realizowanego projektu (patrz rysunek 5.8). Warto zacz od poprawy widocznoci przez tworzenie
radiatorw informacji prezentujcych najwaniejsze aspekty wytwarzania. Powiniene te (we
wsppracy z caym zespoem i klientami) sporzdzi list zalegych zada i przypisa im odpowiednie priorytety. Sprbuj wykorzysta te praktyki do poprawy widocznoci i budowy zaufania.
Kiedy bdziesz gotowy, rozwa wykonanie dalszych krokw na rzecz poprawy zaufania dbaj
o czste dostarczanie produktw przez wdroenie praktyk iteracji, wersji demonstracyjnych i stanu
wykonania.
Musisz zrozumie, e kiedy klient da od Ciebie niemal wszystkiego, nie chodzi o jego rzeczywiste oczekiwania, tylko o brak wiary w moliwo punktualnego dostarczenia waciwych funkcji
i obaw przed kosztownymi procesami renegocjacji raz podpisanych umw (co jest typowe dla

84

CZ 2

PRZYGOTOWYWANIE STRATEGII WDRAANIA PRAKTYK ZWINNYCH

Rysunek 5.8. Praktyki rozwizujce problem my kontra oni


tradycyjnych projektw informatycznych). Najlepszym sposobem rozwizania tego problemu
jest wczenie klientw do prac zespou projektowego (patrz rysunek 5.9). Sprbuj zaangaowa
ich w proces sporzdzania listy zalegych zada i przypisywania tym zadaniom priorytetw.

Rysunek 5.9. Praktyki rozwizujce problem dania wszystkiego przez klienta


Jeli bezporednie uzyskiwanie od klienta jego opinii i sugestii jest niemoliwe, moesz ograniczy
negatywne skutki tego stanu rzeczy, zmniejszajc liczb bdw komunikacyjnych (patrz rysunek
5.10). Mona to zrobi przez przygotowanie testw funkcjonalnych i stopniowe dochodzenie

ROZDZIA 5

WDRAANIE PRAKTYK ZWINNYCH

85

Rysunek 5.10. Praktyki rozwizujce problem niemonoci bezporedniego i regularnego


uzyskiwania informacji od klienta
do praktyki wymaga sterowanych testami, gdzie sporzdzony przez klienta dokument opisujcy
wymagania jednoczenie peni funkcj wykonywalnej specyfikacji. Prawidowe wdraanie tej
konkretnej praktyki jest wyjtkowo czasochonne, zatem warto przystpi do tego procesu moliwie wczenie i wykazywa naleyt cierpliwo. W midzyczasie warto sporzdzi list zalegych
zada i podejmowa prby pracy przyrostowej z iteracjami koczonymi tworzeniem wersji
demonstracyjnych.
Aby unikn niepotrzebnego zaskakiwania kierownictwa organizacji, powiniene zrobi dwie
rzeczy: (1) stara si budowa swoje aplikacje w sposb przyrostowy oraz (2) informowa swoich
przeoonych o rzeczywistych postpach prac. Pierwszy cel mona osign dziki definiowaniu
stanu wykonania moliwie bliskiego stanowi produktu gotowego do wdroenia, po czym przystpieniu do realizacji iteracji. Do komunikowania prawdziwych postpw prac mona wykorzystywa radiatory informacji oraz wersje demonstracyjne prezentowane na kocu kadej iteracji.
Zjawisko brakujcych zasobw ludzkich (stanowicych wskie gardo) wynika z denia do specjalizacji. Programowanie w parach jest zdecydowanie najbardziej efektywn metod dzielenia
si wiedzy i tym samym zdobywania cennych specjalizacji przez pozostaych czonkw
zespou (patrz rysunek 5.12). Z czasem stosowanie tej praktyki doprowadzi do sytuacji, w ktrej
wielu czonkw zespou bdzie potrafio rozwizywa problemy, ktre wczeniej byy domen
zaledwie jednego eksperta. Innym krokiem w dobrym kierunku jest wdroenie praktyki zautomatyzowanych testw programistw, ktre umoliwiaj czonkom zespou prac na nieznanym
sobie kodzie bez ryzyka uszkodzenia wczeniej zaimplementowanych i sprawdzonych rozwiza
(dziki istnieniu zabezpieczajcej sieci testw). Oznacza to, e istnienie tych testw i moliwo
bezpiecznej pracy na cudzym kodzie moe skutecznie niwelowa skutki niedoboru specjalistw.

86

CZ 2

PRZYGOTOWYWANIE STRATEGII WDRAANIA PRAKTYK ZWINNYCH

Rysunek 5.11. Praktyki rozwizujce problem zaskoczenia zarzdu (braku widocznoci)

Rysunek 5.12. Brakujce zasoby specjalici od budowy oprogramowania s czonkami

wielu zespow jednoczenie stosujcych rne praktyki


Projekty sprawiaj wraenie ruchomych, niestaych w wyniku braku jasno zdefiniowanych priorytetw. Priorytety naley przypisywa wymaganiom, sporzdzajc i stale utrzymujc list zada
do wykonania. Aby mie pewno, e taka lista precyzyjnie odpowiada potrzebom klienta, warto
wczy przedstawiciela tego klienta do prac zespou i utworzy zesp midzyfunkcjonalny zdolny
do kompleksowej realizacji tych wymaga. W ten sposb umoliwisz zarwno sobie, jak i swoim
klientom lepsze zrozumienie wymaga, ich priorytetw i ptli zwrotnej decydujcej o moliwie
szybkim wprowadzaniu korekt.

ROZDZIA 5

WDRAANIE PRAKTYK ZWINNYCH

87

Rysunek 5.13. Praktyki rozwizujce problem ruchomych projektw


Musisz sobie poradzi z setkami bdw. W pierwszej kolejnoci powiniene wdroy praktyk
zautomatyzowanych testw programisty, wspart praktyk programowania w parach, aby ograniczy liczb nowych bdw wprowadzanych do systemu i przystpi do stopniowej budowy sieci
bezpieczestwa (zoonej z testw). Warto nastpnie wdroy iteracje ze stanem wykonania, aby
odnale jak najwicej bdw. Nigdy nie odkadaj na pniej tak kopotliwych zada jak integracja
staraj si rozwizywa problemy moliwie szybko.

Rysunek 5.14. Praktyki rozwizujce problem setek (lub tysicy) usterek zarejestrowanych
w systemie ledzenia bdw

88

CZ 2

PRZYGOTOWYWANIE STRATEGII WDRAANIA PRAKTYK ZWINNYCH

Konieczno stosowania fazy hartowania, utwardzania jest symptomem kumulacji kilku


wanych defektw. Wstrzymaj wszystkie biece prace i skoncentruj swoje wysiki na dodaniu
niezbdnych testw, aby zyska moliwo wytwarzania kodu z wykorzystaniem zautomatyzowanych testw programisty. W ramach kadej iteracji sformuuj dobry stan wykonania (moliwie
bliski stanu gotowego do wdroenia), aby moliwie wczenie eliminowa trudne do odnajdowania bdy.

Rysunek 5.15. Praktyki rozwizujce problem koniecznoci stosowania fazy utwardzania


na kocu kadego cyklu wydawania

WYPRACOWYWANIE WASNEJ STRATEGII


WDRAANIA PRAKTYK ZWINNYCH
Zgromadzone do tej pory informacje o wartociach i problemach biznesowych moesz wykorzysta do identyfikacji praktyk, ktre powiniene wdroy we wasnej organizacji.

Wybierz waciwe praktyki, kierujc si wycznie walorami biznesowymi swoich


produktw. W tym scenariuszu przyjmujemy, e Twoja organizacja nie napotyka
adnych powanych utrudnie. Chcesz po prostu udoskonali swj obecny proces
wytwarzania oprogramowania przez zwikszenie walorw biznesowych produktw
dostarczanych przez Twj zesp. Wykorzystaj odwzorowania pokazane na rysunkach
od 5.1 do 5.7, aby wybra praktyki, ktre bd miay najwikszy wpyw na walory
biznesowe Twojej organizacji.

ROZDZIA 5

WDRAANIE PRAKTYK ZWINNYCH

89

Wybierz praktyki z myl o ograniczeniu negatywnych skutkw problemw,


ktrych waga zaley od priorytetw odpowiednich walorw biznesowych. Ten
model ma na celu eliminacj przeszkd z jednoczesnym deniem do maksymalizacji
walorw biznesowych. Priorytety przypisywane tym problemom powinny zalee
od walorw biznesowych szczeglnie wanych dla Twoich klientw. Oznacza to,
e w pierwszej kolejnoci powiniene sporzdzi list problemw (z priorytetami),
po czym wybra odpowiednie praktyki do wdroenia moesz posuy si
odwzorowaniami pokazanymi na rysunkach od 5.8 do 5.15.

Wybierz praktyki eliminujce najbardziej widoczne problemy. Taka postawa jest


do popularna, cho sam jestem daleki od jej propagowania. Opisany model mona
by porwna do gaszenia poarw zamiast koncentrowa si na walorach biznesowych,
prbujemy bezrefleksyjnie eliminowa najwiksze przeszkody. To nieskuteczne podejcie
jest udziaem zbyt wielu zespow technicznych, ktre decyduj si na przypisywanie
priorytetw swoim zadaniom bez uwzgldniania opinii i sugestii klienta. (Sam
popeniaem w przeszoci podobne bdy).

Informacje (praktyki) zawarte na rysunkach w poprzednich podrozdziaach uporzdkowano wedug efektywnoci. Oznacza to, e pierwsza praktyka na kadym rysunku jest najbardziej efektywnym sposobem podnoszenia okrelonego waloru biznesowego lub ograniczania skutkw wystpowania danego problemu. Warto wic zacz wanie od pierwszej praktyki, a po jej skutecznym
wdroeniu wrci do pozostaych praktyk zwizanych z interesujcym nas walorem lub problemem biznesowym.
Niezalenie od tego, jak dobierzesz priorytety w ramach swojej listy praktyk do wdroenia, powiniene przeprowadza sam proces ich wdraania w sposb iteracyjny. Wyposaony w list
wybranych wczeniej praktyk zwinnych moesz przystpi do wdraania ich wedug nastpujcej
procedury.
1. Zacznij od oceny stanu obecnego. Zapoznaj si z istniejcymi materiaami (nawet
jeli maj subiektywny charakter) powiconymi biecym walorom biznesowym,
ktre chcesz rozszerzy, oraz problemom, ktrych skutki chcesz ograniczy.
2. Wyznacz cele, ktre chcesz osign. O ile chcesz podnie wybrany walor biznesowy?
Na ile chcesz zredukowa skutki wybranego problemu? Jakie ramy czasowe przyje?
Sprbuj sformuowa pocztkowe odpowiedzi na te pytania, by nastpnie modyfikowa
je wraz z zyskiwaniem konkretnych dowiadcze.
3. Wybierz pierwsz praktyk (lub grup praktyk) ze sporzdzonej wczeniej listy.
4. Zapoznaj si ze wzorcem wdraania danej praktyki lub grupy praktyk. Sprbuj okreli,
czy interesujcy Ci wzorzec znajduje zastosowanie w Twoim rodowisku roboczym
(wicej informacji na temat tych wzorcw znajdziesz w czci 3, zatytuowanej Katalog
wzorcw). Jeli dana praktyka z jakiego powodu nie moe by zastosowana w Twoim
rodowisku, wr do swojej listy i wybierz nastpny element podnoszcy jaki walor
biznesowy lub ograniczajcy skutki jakiego problemu.

90

CZ 2

PRZYGOTOWYWANIE STRATEGII WDRAANIA PRAKTYK ZWINNYCH

5. Kiedy ostatecznie rozstrzygniesz, e dany wzorzec mona zastosowa w Twoim


rodowisku, zapoznaj si z jego szczegowym opisem. Pocztkowo powiniene
postpowa wedug wskazwek zawartych w podrozdziale Wdraanie odpowiedniego
rozdziau.
6. W staych odstpach czasu staraj si ocenia interesujcy Ci walor biznesowy pod
ktem ewentualnej poprawy lub problem pod ktem redukcji jego negatywnych skutkw.
Jeli nie zanotowae poprawy od ostatniej oceny (sprzed wdroenia danej praktyki
w Twoim rodowisku), zastosuj wskazwki zawarte w podrozdziaach Odmiany
i Ale rozdziau powiconego tej praktyce. (By moe powiniene wczeniej przeczyta
rozdzia 6., zatytuowany Wzorce wdraania praktyk zwinnych, aby lepiej zrozumie
przebieg procedury wdraania zwinnych praktyk wytwarzania oprogramowania).
7. Wr do kroku 1. i ponownie oce swj walor lub problem biznesowy. Jeli dany obszar
wymaga dodatkowych udoskonale (jeeli nadal nie osignito celu wyznaczonego
w kroku 2.), powiniene rozway dodanie innej praktyki lub caej grupy praktyk,
aby zbliy si do tego celu. Jeli udao Ci si osign sformuowane cele, przejd
do nastpnego elementu listy.
Gdzie w opisanej procedurze jest miejsce na dziaania sterowane testami? Twoje testy powinny
si skada na cel sformuowany w kroku 2. W kroku 6. powiniene oceni swj proces ju po
wdroeniu nowej praktyki. Istot kroku 6. jest przetestowanie efektywnoci wdroonej praktyki
lub praktyk w zakresie osignicia wyznaczonego celu. Opisana ptla (wyznaczenie celu, wdroenie praktyki i weryfikacja tej praktyki pod ktem skutecznoci w dochodzeniu do oczekiwanego
celu) jest typow strategi wdraania sterowanego testami1.

CO DALEJ?
Po lekturze tego rozdziau jeste gotowy do opracowania wasnej strategii wdraania zwinnych
praktyk wytwarzania oprogramowania z uwzgldnieniem konkretnych walorw biznesowych
i problemw Twojej organizacji. Tworzenie tej strategii nie jest czynnoci jednorazow powiniene wykazywa zwinno take w trakcie wdraania nowych praktyk. Oceniaj obserwowane
postpy pod ktem spenienia wyznaczonych celw i stale modyfikuj stosowane procedury. Wraz
z zyskiwaniem nowej wiedzy o poszczeglnych praktykach i wasnym rodowisku modyfikuj
swoj strategi. Popenianie bdw jest czym zupenie naturalnym kluczem do sukcesu jest
odkrywanie niepowodze moliwie szybko i korygowanie bdnych zaoe.

W wiecie praktyk zarzdzania opisany model bywa okrelany mianem cyklu PDCA (od ang. Plan,
Do, Check, Act planuj, wykonaj, sprawd, dziaaj). Oryginalna koncepcja PDCA z lat trzydziestych
ubiegego wieku jest co prawda dzieem Waltera Shewharta z Bell Laboratories, jednak prawdziw
popularno zyskaa dopiero w latach pidziesitych dziki pozytywnej opinii guru zarzdzania
jakoci, W. Edwarda Deminga.

ROZDZIA 5

WDRAANIE PRAKTYK ZWINNYCH

91

W dalszej czci tej ksiki szczegowo omwimy kad ze wspomnianych w tym rozdziale
praktyk. Dla kadej z nich istnieje specjalny wzorzec, ktry nie tylko opisuje t praktyk, ale te
rozwizywane przez ni problemy, udokumentowane scenariusze jej skutecznego zastosowania w przeszoci (z uwzgldnieniem specyficznych cech rodowisk i popenionych bdw,
abymy wiedzieli, na co powinnimy zwraca szczegln uwag).

OD TEORII DO PRAKTYKI BUDOWA WASNEJ STRATEGII


WDRAANIA PRAKTYK ZWINNYCH
Sprbuj odpowiedzie na nastpujce pytania zwizane z przygotowywaniem strategii wdraania.
(Wykorzystaj odpowiedzi na pytania postawione w rozdziaach 3. i 4.). Rzeczywiste przykady
tworzenia tego rodzaju strategii mona znale w rozdziaach 45. i 46.
1. Jakie cele chcesz osign przez wdraanie praktyk zwinnych? Czy chcesz ograniczy
negatywne skutki wystpowania jaki problemw, czy raczej podnie walory biznesowe
swojego produktu? Odpowiedz konkretnie jeli stawiasz sobie wicej ni jeden cel,
przypisz im priorytety.
2. Zapoznaj si z dostpnymi materiaami na temat biecych walorw biznesowych
i problemw wymagajcych rozwizania. Nie przejmuj si, jeli istniejce raporty
sprawiaj wraenie subiektywnych lub niecisych. Sprbuj uzyska moliwie pen
wiedz o obecnym stanie Twojej organizacji, zarwno w wymiarze walorw biznesowych,
jak i problemw.
3. Wybierz strategi wdraania nowych praktyk. Wykorzystaj t strategi do identyfikacji
waciwych praktyk.
4. Zapoznaj si z treci nastpnego rozdziau, w ktrym wprowadzono zagadnienia
zwizane ze wzorcami. Po jego lekturze moesz przystpi do przeprowadzania opisanej
powyej procedury wdraania pierwszej z wybranych praktyk. Nie zapominaj
o koniecznoci okresowej weryfikacji walorw i problemw biznesowych, aby mie
pewno, e stosowana praktyka przynosi zamierzony efekt.
5. Gratulacje i powodzenia! Wanie wstpie na ciek wdraania zwinnych praktyk
programowania!

You might also like