Escolar Documentos
Profissional Documentos
Cultura Documentos
Development.
Gra zespoowa. Wydanie II
Autor: Alistair Cockburn
Tumaczenie: Rafa Joca
ISBN: 978-83-246-1503-2
Tytu oryginau: Agile Software Development:
The Cooperative Game (2nd Edition)
(The Agile Software Development Series)
Format: 170x230, stron: 480
Poznaj zasady doskonaej metodologii wytwarzania oprogramowania
Jak dopasowa metodologi Agile do specyfiki firmy?
W jaki sposb powiza Agile z innymi metodologiami?
Jak wdroy Agile w caej strukturze firmy?
Wydawnictwo Helion
ul. Kociuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
SPIS TRECI
SPIS RYSUNKW I TABEL
ROZDZIA 0.
SPIS OPOWIADA
15
PRZEDMOWA
19
29
NIEWIADOME I NIEKOMUNIKATYWNE
33
ROZDZIA 0.1.
51
ROZDZIA 1.
57
ROZDZIA 1.1.
75
6 SPIS TRECI
ROZDZIA 2.
POJEDYNCZE OSOBY
93
ROZDZIA 2.1.
125
ROZDZIA 3.
131
ROZDZIA 3.1.
ZESPOY EWOLUCJA
167
ROZDZIA 4.
METODOLOGIE
171
ROZDZIA 4.1.
METODOLOGIE EWOLUCJA
229
SPIS TRECI 7
ROZDZIA 5.
ZWINNO I ADAPTACJA
239
ROZDZIA 5.1.
261
ROZDZIA 6.
METODOLOGIE CRYSTAL
353
ROZDZIA 6.1.
367
DODATEK A
383
DODATEK A.1
395
8 SPIS TRECI
DODATEK B
407
DODATEK B.1
437
DODATEK C
SOWO KOCOWE
441
DODATEK D
SKOROWIDZ
BIBLIOGRAFIA
447
461
5
Zwinno i adaptacja
Mamy ju wszystkie elementy ukadanki. Dowiedziae si, e:
Tworzenie oprogramowania jest gr zespoow pomysowoci i komunikacji.
Ludzie s dziwni, ale dobrzy w spogldaniu wokoo, przejmowaniu
inicjatywy i bezporedniej komunikacji twarz w twarz.
Metodologia to zestaw konwencji stosowanych przez zesp, przy czym
rne konwencje sprawdzaj si w rnych rodzajach projektw.
Lekkie metodologie pozwalaj dostarcza oprogramowanie szybciej, ale
wraz z powikszaniem si zespou potrzeba ciszych metodologii.
Projekty to unikatowe ekosystemy, wic trzeba tak dobiera metodologi, by pasowaa do ekosystemu projektu.
Wszystko do siebie adnie pasuje, ale jaka lekko jest odpowiednia
dla danego projektu i jak mamy zastosowa wspomniane zasady w naszym
konkretnym projekcie?
Podrozdzia Lekko, aczkolwiek wystarczajco wskazuje, jaka lekko jest
odpowiednia dla danego projektu, a w szczeglnoci, co oznacza bycie zbyt
lekkim. Naszym celem jest zrwnowaenie lekkoci i wystarczalnoci.
Podrozdzia Zwinno omawia znaczenie pewnych istotnych miejsc
projektu: kolokacj, blisko uytkownikw, dowiadczenie programistw
itp. Gdy projekt oddala si od tych istotnych miejsc, trzeba w nim stosowa
mniej zwinne mechanizmy. W szczeglnoci zespoy wirtualne znaczco
utrudniaj wprowadzenie w ycie zasad zwinnoci, bo s od siebie mocno
oddalone.
Podrozdzia Dostosowywanie si opisuje technik tworzenia lekkiej, aczkolwiek wystarczajcej metodologii osobistej, ktra moe przynie korzy
projektowi. Kluczow spraw okazuje si analiza co kilka tygodni, co poszo
dobrze, a co naley zmieni.
239
Zwinno i adaptacja
LEKKO, ACZKOLWIEK WYSTARCZAJCO......................................241
Ledwo wystarczajce ................................................................................... 242
Zalecenia dotyczce dokumentacji ............................................................ 243
ZWINNO ...........................................................................243
Punkty krytyczne.......................................................................................... 244
Problem z zespoami wirtualnymi ............................................................. 246
DOSTOSOWYWANIE SI ...........................................................250
Potrzeba analizy przeszych dziaa ......................................................... 250
Technika rozwoju metodologii................................................................... 250
Sposoby analizy projektu ............................................................................ 258
240
L EKKO ,
ACZKOLWIEK
WYSTARCZAJCO
LEDWO WYSTARCZAJCE
Sdz, e nie musz dawa przykadw zbyt
cikich lub zbyt lekkich metodologii. Wikszo programistw widziaa lub syszaa
wiele takich przykadw.
Z drugiej strony jedynie troch za lekkie metodologie s trudne do znalezienia
i wyjtkowo przydatne naukowo. To dziki
nim dowiadujemy si, co oznacza wyraenie
ledwo wystarczajcy.
We wczeniejszej czci ksiki pojawiy
si dwie tego rodzaju historie: Cigy brak
dokumentacji i Przyklejanie myli do ciany. W kadej z nich dobrze dziaajcy projekt
w kluczowym momencie przechodzi poniej
poziomu wystarczalnoci.
Zwinno 243
implikacji swoich decyzji. Znaleli si poniej linii wystarczalnoci dla swojej gry. Aby
uzdrowi projekt, musieli zacz tworzy
wicej dokumentacji.
W pewnym momencie dostrzegli t
sytuacj i zaczli tworzy dokumentacj,
ktra pozwolia im osign poziom wystarczalnoci.
Z WINNO
Zwinno zakada efektywno i manewrowo. Proces zwinny jest zarwno lekki, jak
i wystarczajcy. Lekko pozwala zachowa
zwrotno. Wystarczalno ma zwizek z chci pozostania danej osoby w grze.
Pytaniem zwizanym z metodologi zwinn nie jest: Czy mog w tej sytuacji zastosowa metodologi zwinn?, lecz: Jak w tej
sytuacji pozosta zwinnym?.
Czterdziestoosobowy zesp nie bdzie tak
samo zwinny jako szecioosobowy, znajdujcy
si w jednym pokoju. Kady zesp moe jednak stara si zmaksymalizowa zastosowanie
PUNKTY KRYTYCZNE
Czci bycia zwinnym jest identyfikacja
krytycznych punktw wydajnego tworzenia
oprogramowania, a nastpnie przesuwanie
projektu tak blisko tych punktw, jak to
moliwe.
Zesp, ktremu uda si dostosowa do
jednego z punktw krytycznych, zaczyna
korzysta z zalet wydajnego mechanizmu.
Jeli zespoowi nie uda si dostosowa do
ktrego z punktw krytycznych, musi pogodzi si z mniejsz efektywnoci. Zesp
powinien myle kreatywnie, w jaki sposb
zblia si do punktw krytycznych i jak radzi
sobie z sytuacj, gdy punkty te nie s moliwe
do spenienia.
Oto pi punktw krytycznych.
Od dwch do omiu osb w jednym pokoju
W tym ukadzie przesy informacji jest najszybszy.
Ludzie mog zadawa sobie pytania bez
zbytniego podnoszenia gosu. Wiedz, kiedy
inni s gotowi odpowiada na pytania. Co
wicej, przysuchuj si rozmowom innych
bez przerywania wasnej pracy. Szkice projektu i jego plan znajduj si na tablicy w zasigu wzroku.
Ludzie bardzo czsto mwi mi, e cho to
rodowisko jest czasem haaliwe, najbardziej
wydajna praca projektowa odbywa si wanie w maych zespoach, ktre pracuj w tym
samym pokoju.
Gdy nie uda nam si osign tego punktu
krytycznego, znaczco wzrasta koszt przenoszenia informacji. Kade drzwi, kady naronik i kade pitro zwiksza ten koszt.
W historii E-bycie i e-wiadomo opowiadam o jednym z zespow, ktry nie mg
speni tego punktu. Programici zastosowali
jednak kamery internetowe, by przynajmniej w czci zniwelowa konieczno pracy
w rnych miejscach. By szybko odpowiada
na krtkie pytania, wykorzystywali komunikatory internetowe. Starali si w jak najlepszy sposb odtworzy zalety punktu krytycznego w sytuacji, ktra teoretycznie to
uniemoliwiaa.
Eksperci klienta na miejscu
Moliwo staego korzystania z ekspertw
klienta oznacza, e bardzo szybko uzyskujemy informacje zwrotne na temat wynikw
pracy. Czsto s to minuty, rzadziej godziny.
Tego rodzaju szybkie informacje zwrotne
powoduj, e zesp programistyczny lepiej
rozumie potrzeby i przyzwyczajenia klienta,
wic popenia mniej bdw przy wprowadzaniu nowych pomysw. Wyprbowuje
rwnie wicej pomysw, co czyni kocowy
produkt znacznie lepszym. Przy dobrej wsppracy, programici testuj pomysy ekspertw i oferuj kontrpropozycje. Pozwala to
klientom lepiej zorientowa si we wasnych
daniach dotyczcych sposobu dziaania
systemu.
Koszt zwizany z niezastosowaniem tego
punktu krytycznego dotyczy obnienia prawdopodobiestwa wykonania naprawd uytecznego produktu i zwikszenia kosztu rnorakich eksperymentw.
Zwinno 245
Innymi sowy, zautomatyzowane testy poprawiaj zarwno jako systemu, jak i jako
ycia programistw.
Istniej pewne czci systemw (a nawet
cae systemy), dla ktrych trudno napisa
zautomatyzowane testy.
Jednym z przykadw mog by graficzne
interfejsy uytkownika. Dowiadczeni programici doskonale zdaj sobie z tego spraw,
wic staraj si zminimalizowa liczb podsystemw, ktre musz by testowane rcznie.
Jeli sam system nie ma zautomatyzowanych testw, dowiadczeni programici staraj si znale sposoby tworzenia testw dla
opracowywanych przez siebie partii systemw.
Dowiadczeni programici
W idealnej sytuacji punkcie krytycznym
zesp skada si tylko i wycznie z dowiadczonych programistw. Analizowane przeze
mnie zespoy, ktre skaday si z dowiadczonych programistw, miay inne i lepsze
wyniki w porwnaniu z zespoami rednimi
i mieszanymi.
Poniewa dobrzy i dowiadczeni programici mog by od dwch do dziesiciu razy
bardziej wydajni od swoich kolegw, mona
drastycznie zmniejszy rozmiar zespou, jeli
skada si tylko i wycznie z dowiadczonych
programistw.
Przed wykonywaniem i w trakcie wykonywania projektu Winifred estymowalimy,
e projekt do udanej realizacji w wyznaczonym przedziale czasu potrzebuje 6 dobrych
programistw jzyka Smalltalk. Poniewa
w tym czasie nie udao nam si pozyska szeciu dobrych programistw, musielimy zaangaowa a 24. Czterech dowiadczonych
programistw tworzyo najtrudniejsze czci
systemu i duo czasu spdzao na pomocy
mniej dowiadczonym kolegom.
Jeli nie moesz speni tego punktu, zastanw si nad wprowadzeniem peno- lub petatowego trenera, ktry poprawi efektywno
pracy niedowiadczonych osb.
Zwinno 247
UDANE
PROGRAMOWANIE
ROZPROSZONE
Zwinno 249
pewn dyskusj, w ktrej nie mog uczestniczy inne osoby. Osoby z rozproszonej grupy
mogyby wyrobi w sobie przewiadczenie,
e s obywatelami drugiej kategorii odcitymi od serca spoecznoci i od istotnych konwersacji.
Gdy caa komunikacja jest dostpna w internecie i widoczna dla kadego, trudno ukry
rnego rodzaju pogoski, wic zawsze jest
tylko my.
Chciabym pewnego dnia zobaczy i przeanalizowa dokadniej ten aspekt projektw
open source.
D OSTOSOWYWANIE SI
Jeli czytasz ksik od samego pocztku,
zapewne nadal nie potrafisz znale odpowiedzi na jeden problem.
Kada osoba jest inna, kady projekt jest
inny, a kady projekt rni si od innych wieloma szczegami, podsystemami, podzespoami i zakresem czasowym. Kada sytuacja
wymaga zastosowania innej metodologii
(zbioru konwencji).
Sekret polega na sposobie konstrukcji rnych metodologii dostosowanych do konkretnych sytuacji, ale w taki sposb, by nie
zabierao to duo czasu i nie przeszkadzao
w dostarczeniu oprogramowania. Nie chcemy
rwnie, by kada osoba uczestniczca w projekcie musiaa by ekspertem w zakresie metodologii.
Zapewne domylasz si, co bdzie tematem tego podrozdziau.
teraz,
na pocztku projektu,
w poowie pierwszej iteracji,
po kadej iteracji,
w poowie nastpnej iteracji.
Dostosowywanie si 251
Teraz
Odkryj mocne i sabe strony firmy dziki krtkim rozmowom o projekcie.
Moesz to zrobi na pocztku projektu, ale
rwnie dobrze moesz to zrobi teraz, niezalenie od poziomu zaawansowania projektu.
Uzyskane informacje pomog na kadym etapie prac. Moesz wic w dowolnym momencie
budowa wasny zbir rozmw o projekcie.
W idealnej sytuacji kilka osb moe porozmawia z kilkoma innymi osobami, by powsta
zestaw od 6 do 10 raportw z wywiadw.
Bywa uyteczne, cho nie jest wymagane,
przeprowadzenie wywiadu z wicej ni jedn
osob z danego projektu. Mona na przykad porozmawia z dwoma osobami na nastpujcych stanowiskach: meneder projektu,
lider zespou, projektant interfejsu uytkownika i programista. Dziki ich rnym sposobom patrzenia na projekt mona wyrobi sobie
lepsze pojcie o sposobie jego dziaania. Niemniej bardziej istotne okazuje si uzyskanie typowych odpowiedzi dotyczcych wielu
projektw.
Pamitaj, e istotne moe okaza si kade sowo wypowiedziane przez rozmwc.
W trakcie wywiadu nie wyraaj adnych wasnych opinii, ale korzystaj ze swojego dowiadczenia i oceny sytuacji, by formuowa
kolejne pytania.
Wydaje mi si, e powiniene zastosowa
nastpujc kolejno poruszanych kwestii:
1. Zapytaj o podanie jednego przykadu ka-
razem.
nym razem.
5. Okrel priorytety.
6. Znajd dowolne luki w produkcie pracy
lub projekcie.
ODKRYWANIE
PROGRAMOWANIA
PRZYROSTOWEGO
Zapytaj: Jakie s najwaniejsze bdy popenione w trakcie projektu, ktrych nie chciaby powtrzy w nastpnym projekcie?.
Dostosowywanie si 253
W pewnej firmie wykonalimy dwustronicowy szablon wywiadu, by zapisywa wyniki i atwo wymienia si informacjami. Szablon
zawiera nastpujce czci:
1. Nazw projektu, stanowisko przesuchi-
Jeli to moliwe, niech nad propozycj bazowej metodologii dla projektu pracuj dwie
osoby. Praca bdzie przebiega szybciej, osoby
te prawdopodobnie odkryj bdy w myleniu drugiej strony i pomog sobie nawzajem
w doszlifowaniu pomysw.
Musz przej przez cztery kroki.
1. Okreli, prac ilu osb trzeba bdzie koor-
Dostosowywanie si 255
nowych technologii i kolegw z zespou. Przesadzenie z liczb rzeczy, ktr mona dostarczy w pierwszym wydaniu, naprawd jest
cakowicie normalne.
Pierwszym krokiem powinna by redukcja
zasigu.
Moe si okaza, e zmniejszenie zasigu
nie wystarcza. Moe si okaza, e wymagania nie s wystarczajco jasne dla programistw lub e architekci nie s w stanie w odpowiednim czasie zakoczy specyfikacji
architektury.
Jeli tak si dzieje, musisz zareagowa
szybko i znale nowy sposb pracy. To w poczeniu z drastycznie zmniejszonym zasigiem powinno spowodowa udane dostarczenie pierwszej wersji.
Mona wprowadzi nakadanie si prac,
posadzi ludzi bliej siebie, zmniejszy idealno pocztkowej architektury i w lepszym
stopniu wykorzysta nieformalne kanay komunikacji. Konieczne mog okaza si awaryjne zmiany zespou, awaryjne szkolenia,
konsultacje i zatrudnienie dowiadczonych
programistw z zewntrz.
Gwnym celem jest dostarczenie czego
pewnego niewielkiego, dziaajcego i przetestowanego kodu w pierwszej iteracji. To
bardzo istotny czynnik sukcesu projektu
(Cockburn 1998). Po wydaniu pierwszej wersji bdzie mona chwil odsapn i dokadnie
zastanowi si nad powodem problemw.
Po kadej iteracji
Po kadej iteracji zwoaj zebranie na temat
wnioskw dotyczcych sposobu pracy.
Analiza wnioskw to bardzo istotny czynnik sukcesu w ewolucji metodologii, podobnie
jak programowanie przyrostowe stanowi jeden z czynnikw sukcesu wytwarzania oprogramowania.
Dostosowywanie si 257
STRUKTURY ZESPOU
W POOWIE PROJEKTU
Dziki przetestowaniu kilku rozwiza w jednej iteracji, udao si nam szybko usprawni
metodologi. Warto pamita o istnieniu takiej
szansy.
Ocena po zakoczeniu projektu
Stosowanie analiz w trakcie i po kadej iteracji
zmniejsza potrzeb stosowania ocen poprojektowych. Wydaje mi si, e ocen naley
dokonywa w trakcie projektu, gdy zmiany
mog jeszcze przynie projektowi co dobrego. Po projekcie jest ju na to za pno.
Najczciej okazuje si, e zespoy, ktre
stosuj oceny poprojektowe nie przejmuj si
analiz w trakcie trwania projektu, a nastpnie
bardzo mocno chc si dowiedzie, co poprawi w nastpnym projekcie. Jeli znajdziesz
si na takim spotkaniu, zasugeruj, by nastpnym razem przeprowadza spotkania w trakcie trwania projektu, a nie po nim.
Z drugiej strony ocena poprojektowa to
dobry moment do podsumowania oglnej
pracy zespou i sposobu zarzdzania projektem. W takiej sytuacji proponuj zapozna si
z ksik Project Retrospectives (Kerth 2001),
ktra omawia, w jaki sposb prowadzi dwudniow sesj oceny projektu.
Zastanw si w trakcie analizy przeprowadzanej po projekcie, kto mgby skorzysta ze zgromadzonych informacji i jakie
wskazwki mona przekaza osobom prowadzcym nastpne projekty. Warto wykona
krtk (dwustronicow) notk dla nastpnego
zespou, podsumowujc plusy i minusy aktualnego projektu.
Oczywicie, warto take napisa krtkie
jednostronicowe uwagi na kocu kadej z analiz po iteracji jako standardowy wynik ich
przeprowadzenia.
Dostosowywanie si 259
wiam?
2. Czy wykonuj dziaania inaczej ode
mnie?
3. Jak mog zmieni moje dziaania
CO