Darmowy fragment publikacji:
Tytuł oryginału: Head First Agile
Tłumaczenie: Maksymilian Gutowski
ISBN: 978-83-283-4364-1
© 2018 Helion S.A.
Authorized Polish translation of the English edition of Head First Agile,
9781449314330 © 2017 Andrew Stellman and Jennifer Greene.
This translation is published and sold by permission of O’Reilly Media, Inc.,
which owns or controls all rights to publish and sell the same.
All rights reserved. No part of this book may be reproduced or transmitted in any form
or by any means, electronic or mechanical, including photocopying, recording or by
any information storage retrieval system, without permission from the Publisher.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu
niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii
metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym,
magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź
towarowymi ich właścicieli.
Autor oraz Helion SA dołożyli wszelkich starań, by zawarte w tej książce informacje były
kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie,
ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich.
Autor oraz Helion SA nie ponoszą również żadnej odpowiedzialności za ewentualne
szkody wynikłe z wykorzystania informacji zawartych w książce.
Helion SA
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail: helion@helion.pl
WWW: http://helion.pl (księgarnia internetowa, katalog książek)
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/agiler
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
• Kup książkę
• Poleć książkę
• Oceń książkę
• Księgarnia internetowa
• Lubię to! » Nasza społeczność
Spis treści (streszczenie)
Spis treści
Wstęp
Czym jest metodyka zwinna? Założenia i praktyka
1
2 Wartości i zasady metodyk zwinnych. Nastawienie a metoda
3
4
5
6
7
8
9
Zarządzanie projektami w Scrumie. Zasady Scruma
Planowanie i estymacja w podejściu zwinnym. Ogólnie przyjęte praktyki scrumowe
XP (programowanie ekstremalne). Otwartość na zmiany
Lean i Kanban. Walka z marnotrawstwem i zarządzanie obiegiem pracy
Przygotowanie do egzaminu PMI-ACP®. Sprawdź swoją wiedzę
Odpowiedzialność profesjonalisty. Podejmowanie słusznych decyzji
Praktyka czyni mistrza. Próbny egzamin PMI-ACP®
xxvii
1
23
71
117
177
245
307
377
391
Spis treści (część właściwa)
W
Wstęp
Zwinność zaczyna się od głowy.
Kiedy próbujesz się czegoś nauczyć, Twój mózg stara się wyświadczyć Ci przysługę, robiąc wszystko,
co może, żebyś niczego nie zapamiętał. Twój mózg myśli sobie: „Lepiej zostawić w głowie miejsce na
ważniejsze rzeczy, na przykład wiedzę o tym, przed jakimi dzikimi zwierzętami uciekać, albo o tym,
że nie powinno się jeździć na desce snowboardowej w samych slipach”. Jak zatem przechytrzyć
mózg, żeby zaczął myśleć, że Twoje życie rzeczywiście zależy od umiejętności zastosowania podejść
zwinnych — a może nawet od zaliczenia egzaminu certyfikacyjnego PMI-ACP?
Dla kogo jest ta książka?
Wiemy, co myślisz
Wiemy też, co czuje Twój mózg
Metapoznanie: myślenie o myśleniu
Oto co MY zrobiliśmy
Przeczytaj to
Korektorzy merytoryczni
Podziękowania
xx
xxi
xxi
xxiii
xxiv
xxvi
xxvii
xxviii
ix
Poleć książkęKup książkęSpis treści
TRENING
UMYSŁU
1
Czym jest metodyka zwinna?
Założenia i praktyka
Zwinność jest dziś modna jak nigdy dotąd!
Naszej branży udało się po raz pierwszy odkryć praktyczny, zrównoważony sposób rozwiązywania
problemów, z którymi musiały się męczyć całe pokolenia zespołów programistycznych. Zespoły
zwinne posługują się jasnymi, prostymi praktykami, które sprawdziły się już w codziennej pracy
nad rzeczywistymi projektami. Ale zaraz... Jeśli metodyka zwinna (ang. agile) jest tak wspaniała,
to dlaczego nie korzystają z niej wszyscy? Wygląda na to, że w prawdziwym świecie te praktyki, które
sprawdzają się w jednych zespołach, innym sprawiają trudności, a o takich rozbieżnościach decydują
różnice w nastawieniu. Przygotuj się więc na zupełnie inny sposób myślenia o swoich projektach!
Nowe możliwości brzmią nęcąco…
…ale nie wszystko idzie zgodnie z planem
Metodyka zwinna na ratunek!
Kate próbuje przeprowadzić codzienny stand-up
Różni członkowie zespołu mają różne podejścia
Praktyki stosuje się sprawniej dzięki odpowiedniemu nastawieniu
Czym właściwie jest ta cała metodyka zwinna?
Scrum jest najpopularniejszym podejściem do wytwarzania zwinnego
Certyfikacja PMI-ACP pomoże Ci wyćwiczyć zwinność
2
3
4
5
6
8
10
12
18
W trakcie codziennego stand-upu wszyscy
członkowie zespołu stoją. Dzięki temu
spotkanie jest krótkie, rzeczowe i przebiega
w swobodnej atmosferze.
Ale czy ten koleś rzeczywiście słucha,
co jego współpracownicy mają do
powiedzenia?
x
Poleć książkęKup książkęSpis treści
2
Wartości i zasady metodyk zwinnych
nastawienie a metoda
Nie ma czegoś takiego jak „idealny” proces tworzenia udanego oprogramowania.
Niektóre zespoły odniosły niemałe sukcesy i odnotowały znaczącą poprawę po wdrożeniu
zwinnych praktyk, metod i metodyk, podczas gdy inne miały z tym poważne problemy.
Powiedzieliśmy już, że decydujące jest nastawienie członków zespołu. Co możesz zatem zrobić,
żeby Twój własny zespół uzyskał pożądane rezultaty? Jak sprawić, aby zespół przyjął odpowiednie
nastawienie? Właśnie w tym miejscu warto sięgnąć po Manifest programowania zwinnego.
Omówienie z zespołem wartości i zasad pozwala zacząć nieco inaczej myśleć o praktykach
zwinnych i ich zastosowaniu, co z kolei umożliwia skuteczniejsze korzystanie z nich.
Przełom w Snowbird
Manifest programowania zwinnego
Wprowadzanie nowych praktyk bywa niemałym wyzwaniem
Klinika Naukowa: pytania typu „które jest najlepsze?”
Szykował się hit…
…a wyszła katastrofa!
Zasady przyświecające Manifestowi programowania zwinnego
Zasady zwinnego programowania, które pomogą Ci w dostarczeniu
Twojego produktu
Zasady metodyk zwinnych ułatwiają zespołom komunikację i współpracę
Nowy produkt to hit!
24
25
26
36
38
39
40
42
52
56
jednostki
otwarcie na zmiany
ścisła kontrola
s a m o o r g a n i z a c j a
prostota
współpraca
działające oprogramowanie
działające oprogramowanie
działające oprogramowanie
xi
Poleć książkęKup książkęSpis treści
3
Zarządzanie projektami w Scrumie
Zasady Scruma
Zasady Scruma są proste. Efektywne ich stosowanie już niekoniecznie.
Scrum jest najbardziej rozpowszechnionym podejściem do programowania zwinnego, zresztą nie
bez powodu — zasady Scruma są proste i łatwe do przyswojenia. Większość zespołów potrafi się
szybko zaznajomić ze zdarzeniami, z rolami i artefaktami składającymi się na reguły Scruma.
Aby jednak Scrum był prawdziwie skuteczny, pracownicy muszą naprawdę pojąć jego wartości,
a także zasady Manifestu programowania zwinnego, które pomogą im przyjąć efektywne
nastawienie. Choć sam Scrum wydaje się prosty, ciągłe prowadzenie inspekcji i adaptacji
wymusza na zespołach przestawienie się na nowy sposób myślenia o projektach.
Wściekłe
Krowy
V
HayStation
Hs
WK5
RHG
Łaciate
Berety
produkcja
RANCH HAND GAMES
Poznaj zespół Ranch Hand Games
Zdarzenia Scruma, które pomagają w realizacji projektów
Role scrumowe pomagają zrozumieć, kto za co odpowiada
Artefakty scrumowe pomagają zespołowi być na czasie
Wartości Scruma zwiększają efektywność zespołu
Klinika Naukowa: pytania typu „co dalej?”
Zadanie nie jest wykonane, dopóki nie ma statusu „Ukończone”
Zespoły scrumowe dostosowują się do zmian w trakcie Sprintu
Manifest programowania zwinnego pomaga zrozumieć metodykę Scrum
Gorzej już było
73
74
75
76
82
90
92
93
96
102
Rejestr Produktu — Sprint 5.
strategiczny szturm na elewator
G R A C Z E
B E Z T E G O ;
T E G O N I E C I E R P I Ą !
To co zamiast?
Wspólnie z nowym Właścicielem
Produktu zespół powinien być
w stanie wskazać najbardziej
wartościowe funkcjonalności do
opracowania w kolejnym Sprincie.
xii
Poleć książkęKup książkęSpis treści
4
Planowanie i estymacja w podejściu zwinnym
Ogólnie przyjęte praktyki scrumowe
Zespoły zwinne używają prostych narzędzi planowania do sprawniejszego
zarządzania swoimi projektami.
Zespoły scrumowe planują swoje projekty wspólnie, tak aby każdy członek zespołu zaangażował
się w realizację celu każdego sprintu. W trosce o zbiorowe zaangażowanie zespołu trzeba
zadbać o to, aby wszelkie planowanie, oszacowywanie i monitorowanie było na tyle proste,
żeby można je było prowadzić grupowo. Zespoły scrumowe korzystające z najrozmaitszych
narzędzi, od historyjek użytkownika, przez planistycznego pokera, po szybkość i wykresy spalania,
zawsze wiedzą, co już zrobiły i co jeszcze im zostało do zrobienia. W tym rozdziale zapoznasz się
z narzędziami, które pozwalają zespołom na przeglądanie aktualnych informacji i utrzymywanie
kontroli nad tym, co tworzą!
2 PUNKTY
ZMIANA BRONI
W TRAKCIE BIEGU
JAKO GRACZ
CHCĘ PRZEŁĄCZAĆ BROŃ Z MOJEGO
WYPOSAŻENIA W TRAKCIE BIEGU,
ABYM NIE MUSIAŁ SIĘ ZATRZYMYWAĆ,
ŻEBY WEJŚĆ DO EKWIPUNKU.
Do zrobienia
W toku
Ukończone
Co dalej?
Ogólnie przyjęte praktyki scrumowe
A można bez 300-stronicowej specyfikacji?
Historyjki użytkownika pomagają zespołom zrozumieć
potrzeby użytkowników
Punkty historyjek pozwalają zespołowi skoncentrować się
na względnej wielkości każdej historyjki
Cały zespół oszacowuje wspólnie
Koniec ze szczegółowymi planami projektów
Tablice zadań przedstawiają aktualne informacje
Klinika Naukowa: mylny trop
Wykresy spalania pomagają się zorientować,
ile pracy zostało jeszcze do zrobienia
Szybkość określa, ile zespół może zrobić w ramach sprintu
Wzrastające wykresy spalania oddzielają postępy od zakresu prac
Skąd wiadomo, co stworzyć?
Mapy historyjek ułatwiają priorytetyzację elementów rejestru
Persony pomagają zaznajomić się z użytkownikami
Wieści mogłyby być lepsze…
Retrospektywy pomagają zespołowi usprawnić pracę
Narzędzia do wykorzystania w retrospektywach
Gratulacje! Jesteś już gotów!
121
122
124
125
126
132
134
136
140
143
144
147
148
149
150
152
154
156
174
xiii
Poleć książkęKup książkęSpis treści
5
XP (programowanie ekstremalne)
Otwartość na zmiany
Zespoły zwinne odnoszą największe sukcesy, kiedy tworzą świetny kod.
Nawet najlepsze zespoły, składające się z samych utalentowanych programistów, muszą sobie
radzić z problemami w swoim kodzie. Kiedy drobne zmiany w kodzie zaczynają „pączkować”
i przekształcają się w ciąg nakładających się na siebie kombinacji bądź kiedy codzienne commity
kodu prowadzą do trwającego kilka godzin rozwiązywania konfliktów złączenia gałęzi, praca, która
miała być przyjemna, staje się irytująca, nużąca i męcząca. W tym miejscu do gry wchodzi XP.
Jest to metodyka zwinna skoncentrowana na budowaniu spójnych zespołów, które sprawnie się
komunikują i tworzą swobodne, a zarazem pobudzające środowisko. Gdy zespoły opracowują
prosty kod zamiast złożonego, mogą się otworzyć na zmiany, zamiast się ich obawiać.
Poznaj zespół twórców CircuitTrak
Praca nocą i w weekendy jest źródłem problemów
XP działa na korzyść i zespołu, i kodu
Programowanie iteracyjne pomaga być na bieżąco ze zmianami
Odwaga i szacunek odpędzają strach
Zespoły tworzą lepszy kod, kiedy wszyscy ze sobą współpracują
Najlepsze zespoły siedzą razem
Zespoły XP cenią sobie komunikację
Zespoły pracują najlepiej, gdy wszyscy są zrelaksowani
Klinika Naukowa: pytania typu „które NIE jest?”
Zespoły XP są otwarte na zmiany
Częste zgłaszanie uwag pozwala zminimalizować zmiany
Złe doświadczenia powodują racjonalną obawę przed zmianą
Praktyki XP pozwalają gromadzić informacje zwrotne o kodzie
Zespoły XP stosują szybką automatyzację kompilacji
Ciągła integracja pozwala uniknąć przykrych niespodzianek
Cykl tygodniowy zaczyna się od pisania testów
Zespoły zwinne gromadzą informacje z projektów i testów
Programowanie w parach
Konserwacja złożonego kodu jest naprawdę trudna
Gdy prostota jest w cenie, kod może na tym jedynie zyskać
Prostota jest fundamentalną zasadą metodyk zwinnych
Każdy zespół zaciąga dług techniczny
Zespoły XP „spłacają” dług techniczny w każdym cyklu tygodniowym
Projektowanie przyrostowe wymaga prostego kodu
178
180
181
182
184
190
192
194
196
200
204
205
206
208
210
211
212
214
216
223
224
225
226
227
228
Plany zajęć
Trenerzy
Uczestnictwo
Moje konto
Plany zajęć Trenerzy UczestnictwoPlany zajęć
Trenerzy
Uczestnictwo
Moje konto
Pakiet
plików
binarnych
Pliki
z kodem
źródłowym
xiv
Poleć książkęKup książkęSpis treści
6
Lean i Kanban
Walka z marnotrawstwem i zarządzanie obiegiem pracy
Zespoły zwinne wiedzą, że niemal zawsze mogą jakoś usprawnić swój tryb pracy.
Pracownicy stosujący zasady szczupłej produkcji (ang. lean production) potrafią bez trudu
odkryć, że robią coś, co nie pomaga im w dostarczeniu wartości. W takich sytuacjach eliminują
marnotrawstwo, które ich spowalnia. Wiele zespołów ze szczupłym nastawieniem stosuje
metodykę Kanban w ramach ustalania limitów prac w toku i tworzenia systemów ciągnionych,
aby dopilnować, by pracownicy nie zajmowali się zadaniami, które niewiele wnoszą w rozwój
produktu. Już wkrótce dowiesz się, jak traktowanie procesu rozwoju oprogramowania jako
spójnego systemu pomoże Ci w tworzeniu lepszego oprogramowania!
246
248
249
250
254
256
258
260
264
267
270
272
273
Kłopoty z Analizatorem Odbiorców 2.5
Szczupła produkcja jest nastawieniem (a nie metodyką)
Zasady podejścia Lean pomagają spojrzeć na wszystko inaczej
Więcej zasad Lean
Narzędzia myślowe, których jeszcze nie widziałeś
Więcej narzędzi myślowych Lean
Rozmowa przy biurku
Klasyfikacja rodzajów marnotrawstwa ułatwia jego dostrzeżenie
Mapy strumienia wartości pozwalają dostrzec marnotrawstwo
Łapanie zbyt wielu srok za ogon
Anatomia opcji
Myślenie systemowe pomaga zespołom szczupłym spojrzeć na całość
Niektóre „ulepszenia” się nie sprawdziły
Zespoły Lean za pomocą systemów ciągnionych pilnują,
274
by zawsze wykonywać najbardziej wartościowe zadania
Klinika Naukowa: najmniejsze zło
278
Kanban usprawnia procesy poprzez wykorzystanie systemu ciągnionego 280
281
Używaj tablic kanbanowych do wizualizacji obiegu pracy
282
Jak wykorzystać metodę Kanban do usprawnienia procesu roboczego
284
Zespół określa przepływ pracy
Rozmowa przy biurku
287
291
Zespół dostarcza produkty częściej
292
Kumulacyjny diagram przepływu pomaga w zarządzaniu
293
Zespoły kanbanowe dyskutują o swoich politykach
Sprzężenie zwrotne pokazuje skuteczność
294
295
Teraz cały zespół wspólnie wymyśla sposoby na sprawniejszą pracę!
xv
...ale czuje się
przytłoczony
wszystkimi
pozostałymi
funkcjami, którymi
jeszcze musi się
zająć.
Aktualizacja algorytmu
analitycznego
Zmiany w raporcie mapowania
Naprawienie błędów współbieżności
Zmiany w bazie kodu
Ulepszone UI funkcji mapowania
Ulepszenia usługi statystyk
Aktualizacja UI
Modyfikacja profilera odbiorców
Z m i a n y f o r m a t ó w p l i k ó w
Poleć książkęKup książkę7
Przygotowanie do egzaminu PMI-ACP®
Sprawdź swoją wiedzę
Podczas lektury ostatnich sześciu rozdziałów musiałeś sobie przyswoić całkiem
sporo wiedzy!
Poznałeś wartości i zasady Manifestu programowania zwinnego. Dowiedziałeś się, jak pomagają one
w rozwijaniu zwinnego nastawienia zespołu. Zobaczyłeś, jak zespoły używają Scruma do zarządzania
projektami, odkryłeś, jak wygląda zaawansowana inżynieria w XP, i rozeznałeś się w tym, jak zespoły
doskonalą własne procesy przy użyciu Lean i Kanbana. Czas to wszystko podsumować i utrwalić
najważniejsze informacje. Egzamin PMI-ACP® wymaga jednak nie tylko znajomości narzędzi,
technik i pojęć zwinnych. Aby zdać egzamin wzorowo, będziesz się musiał jeszcze dowiedzieć, jak
wykorzystać je w prawdziwym świecie. Spójrzmy zatem świeżym okiem na te pojęcia, wspomagając
się pełnym zestawem ćwiczeń, łamigłówek i pytań próbnych (a także nowym materiałem),
skonstruowanych tak, aby łatwiej Ci było przygotować się do egzaminu PMI-ACP®.
Certyfikacja PMI-ACP® jest wartościowa…
Egzamin PMI-ACP® oparty jest na oficjalnym sylabusie
„Jesteś specjalistą w zakresie podejść zwinnych…”
Maraton dla umysłu
Dziedzina 1. Zwinne zasady i nastawienie
Dziedzina 1. — pytania egzaminacyjne
Dziedzina 2. Dostawa oparta na wartości
Zespoły zwinne posługują się wartością dla klienta
w priorytetyzacji wymagań
Obliczenia wartości pomagają określić, które projekty należy realizować
Dziedzina 2. — pytania egzaminacyjne
Dziedzina 3. Zaangażowanie interesariuszy
Dziedzina 4. Wydajność zespołu
Dziedzina 3. — pytania egzaminacyjne
Dziedzina 4. — pytania egzaminacyjne
Dziedzina 5. Planowanie adaptacyjne
Dostosowuj swój styl przywództwa do rozwoju zespołu
Kilka dodatkowych narzędzi i technik na koniec
Dziedzina 6. Wykrywanie i rozwiązywanie problemów
Dziedzina 7. Ciągłe doskonalenie
Dziedzina 5. — pytania egzaminacyjne
Dziedzina 6. — pytania egzaminacyjne
Dziedzina 7. — pytania egzaminacyjne
Czy jesteś gotów na egzamin końcowy?
308
309
310
313
314
316
322
325
326
330
336
337
338
339
348
349
351
360
361
372
373
374
376
PMI-ACP®
Examination
Content Outline
Revised December
2014
Pełna implementacja
Wymagania
podstawowe
k
cja
sfa
y
t
a
S
nie
ole
w
o
d
a
z
Nie
Czynniki
ekscytacji
Brak implementacji
xvi
Spis treściPoleć książkęKup książkę8
Odpowiedzialność profesjonalisty
Podejmowanie słusznych decyzji
Nie wystarczy znać się na rzeczy. Trzeba umieć podejmować słuszne decyzje,
aby radzić sobie w pracy.
Wszystkie osoby, które uzyskują certyfikację PMI-ACP, zgadzają się na przestrzeganie Kodeksu
etyki i profesjonalnego postępowania PMI. Kodeks pomaga w podejmowaniu decyzji
etycznych, które nie są szczególnie dobrze omówione we właściwym korpusie wiedzy, ale mogą
się pojawić na egzaminie PMI-ACP®. Wiadomości z tego zakresu są w większości dość łatwe do
przyswojenia, więc wystarczy krótki ich przegląd, żebyś je sobie bez problemu utrwalił.
Właściwe postępowanie
Główne założenia
Kasa do kieszeni?
Może klasa biznesowa?
Nowe oprogramowanie
Droga na skróty
Niskie ceny czy czyste rzeki?
Nie jesteśmy święci
378
378
380
381
382
383
384
385
Świetnie!
Wreszcie będzie mnie
stać na coś fajnego.
A gdyby tak gdzieś
wyjechać? Ibizo,
nadciągam!
Nigdy bym nie przyjęła
takiego podarunku. Dobrze
wykonana praca jest nagrodą
samą w sobie!
Przepraszam,
nie mogę przyjąć
takiego podarunku,
ale doceniam ten gest.
xvii
Spis treściPoleć książkęKup książkę9
Praktyka czyni mistrza
Próbny egzamin PMI-ACP®
Pewnie nie sądziłeś, że zajdziesz aż tak daleko!
To była długa podróż, ale w końcu jesteś gotowy na powtórzenie wiadomości i przygotowanie się do
egzaminu. Przyswoiłeś sobie dużo nowej wiedzy o podejściach zwinnych i przyszła pora, by sprawdzić,
ile z tych informacji zostało Ci w głowie. Dlatego właśnie przygotowaliśmy ten pełnoprawny, składający
się ze 120 pytań egzamin próbny PMI-ACP®. Opieraliśmy się na tym samym sylabusie PMI-ACP®,
którego używają eksperci z PMI; nasz egzamin wygląda więc tak samo jak ten właściwy, który przyjdzie
Ci zdawać. Czas zatem wysilić szare komórki. Weź głęboki oddech, zakasaj rękawy i do dzieła!
Zanim sprawdzisz odpowiedzi…
423
449
Skorowidz
S
xviii
Spis treściPoleć książkęKup książkę1. Czym jest metodyka zwinna?
Założenia i praktyka
Załóżmy zatem,
że projekt zrealizujemy
bezbłędnie,
i zapiszmy to w planie.
Znakomita
myśl, szefie!
Zwinność jest dziś modna jak nigdy dotąd! Naszej branży udało się po raz pierwszy odkryć
praktyczny, zrównoważony sposób rozwiązywania problemów, z którymi musiały się męczyć
całe pokolenia zespołów programistycznych. Zespoły zwinne posługują się jasnymi, prostymi
praktykami, które sprawdziły się już w codziennej pracy nad rzeczywistymi projektami. Ale zaraz...
Jeśli metodyka zwinna (ang. agile) jest tak wspaniała, to dlaczego nie korzystają z niej wszyscy?
Wygląda na to, że w prawdziwym świecie te praktyki, które sprawdzają się w jednych zespołach,
innym sprawiają trudności, a o takich rozbieżnościach decydują różnice w nastawieniu.
Przygotuj się więc na zupełnie inny sposób myślenia o swoich projektach!
to jest nowy rozdział�
1
Poleć książkęKup książkęTa premia chyba nam jednak nie skapnie
Nowe możliwości brzmią nęcąco…
Poznaj Kate. Kate jest menedżerką projektu w cieszącym się powodzeniem start-upie w Dolinie Krzemowej.
Jej firma tworzy oprogramowanie, które daje serwisom streamingowym z filmami i muzyką oraz radiom
internetowym możliwość analizowania danych o odbiorcach na żywo i proponowania im treści dostosowanych
do ich gustów. Zespół Kate ma teraz szansę na stworzenie czegoś niezwykle korzystnego dla firmy.
Odezwę
się do zespołu
w sprawie wprowadzenia
tych zaawansowanych funkcji
analizy danych odbiorców
w kolejnym wydaniu.
Kate jest menedżerką
projektu w zespole
programistycznym.
Dzięki, Kate. Jeśli
zespół zrobi to szybko, nasz
główny klient wykupi pięćdziesiąt
dodatkowych licencji i wszyscy
dostaniemy premię!
Ben jest właścicielem
produktu. Do jego obowiązków
należy komunikowanie się
z klientami, poznawanie ich
potrzeb i wymyślanie nowych
funkcji, z których będą
chętnie korzystać.
2
Rozdział 1.
Poleć książkęKup książkę…ale nie wszystko idzie zgodnie z planem
Rozmowa Kate z zespołem projektowym nie poszła tak dobrze, jak Kate się spodziewała.
Co teraz powie Benowi?
Czym jest metodyka zwinna?
To brzmi jak
niezła okazja, żeby
zadowolić naszych
klientów.
Mike jest głównym
programistą
i architektem.
Kate: Jeśli uda nam się wprowadzić te nowe, zaawansowane funkcje analizy
danych odbiorców w kolejnym wydaniu, to wszyscy dostaniemy sporą premię.
Mike: Rzeczywiście brzmi to jak niezła gratka.
Kate: Świetnie! Czyli mogę na was liczyć?
Mike: Zaraz, chwila! Jasne, to brzmi nieźle — tylko że nic takiego się nie
stanie.
Kate: Co?! Mike, nawet sobie tak nie żartuj.
Mike: Gdybyśmy wiedzieli o tym pomyśle cztery miesiące temu, kiedy
projektowaliśmy usługę analizy danych odbiorców, to nie byłoby problemu.
Sęk w tym, że teraz musielibyśmy wyciąć spory kawał kodu i zastąpić go…
Aj, nawet nie chce mi się rozwodzić o technikaliach.
Kate: I bardzo dobrze, bo mało mnie to interesuje.
Mike: Dobrze, czyli skończyliśmy tę rozmowę? Naprawdę muszę wracać
do pracy.
jesteś tutaj�
3
Poleć książkęKup książkęSpotkania na stojąco trwają krócej
Metodyka zwinna na ratunek!
Kate czytała ostatnio o zwinnym programowaniu i sądzi, że ta metodyka może pomóc we
wprowadzeniu pożądanych funkcji do kolejnego wydania. Metodyka zwinna zdobyła niemałą
popularność wśród zespołów programistycznych, ponieważ te, które już się przekonały do
„zwinności”, często się chwalą znakomitymi wynikami. Ich oprogramowanie jest sprawniejsze,
co ma znaczenie zarówno dla nich samych, jak i dla użytkowników. Co więcej, zespołom
efektywnie stosującym metodykę zwinną po prostu przyjemniej się pracuje! Wszyscy są
o wiele bardziej wyluzowani, a środowisko pracy jest przyjaźniejsze.
Dlaczego zatem zwinne wytwarzanie zyskało taką popularność? Oto kilka powodów:
Zespołom zwinnym łatwiej przychodzi dotrzymywanie terminów.
Można sprawnie zredukować liczbę defektów oprogramowania.
Konserwacja kodu jest łatwiejsza — dodawanie, rozszerzanie i modyfikowanie
nie sprawia już problemów.
Użytkownicy są o wiele bardziej zadowoleni, co ułatwia życie wszystkim
zainteresowanym.
Największym plusem efektywnych zespołów zwinnych jest to, że pracownikom
żyje się lepiej, ponieważ kończą pracę o rozsądnej porze i rzadko muszą pracować
w weekendy (co jest dla programisty nie lada gratką!).
W trakcie codziennego stand-upu wszyscy
członkowie zespołu stoją. Dzięki temu
spotkanie jest krótkie, rzeczowe i przebiega
w swobodnej atmosferze.
Codzienne spotkania to dobry punkt wyjścia
Jedną z najbardziej standardowych praktyk zwinnych
wykorzystywanych przez zespoły jest codzienny stand-up,
czyli spotkanie, podczas którego członkowie zespołu rozmawiają
o tym, nad czym pracują i z jakimi wyzwaniami się to wiąże.
Dzięki temu, że wszyscy muszą w trakcie spotkania stać, nie
jest ono nadmiernie przeciągane. Wprowadzenie codziennego
spotkania do pracy nad projektami okazało się pomocne
dla wielu zespołów i często jest to pierwszy krok na drodze
do wdrożenia metodyki zwinnej.
4
Rozdział 1.
Ale czy ten koleś rzeczywiście słucha,
co jego współpracownicy mają do
powiedzenia?
Poleć książkęKup książkęCzym jest metodyka zwinna?
Kate próbuje przeprowadzić codzienny stand-up
Ku zdumieniu Kate nie wszyscy członkowie zespołu Mike’a podzielają jej zainteresowanie
tą nową praktyką. Co więcej, jeden z programistów jest oburzony propozycją
wprowadzenia kolejnego zebrania i nie podoba mu się wizja odpowiadania codziennie
na natrętne pytania dotyczące jego pracy.
Nowe funkcje są bardzo ważne.
Zorganizujmy codzienne spotkania, żebyście mogli
na bieżąco mówić mi o postępach. To świetna praktyka
zwinna, która przyda się nam wszystkim!
Już i tak mamy za dużo
zebrań! Jeśli nie wierzysz, że
potrafimy wykonać swoją pracę,
to może od razu odezwij się
do innego zespołu.
Kate sądzi, że Mike wraz ze swoim
zespołem zachowuje się irracjonalnie
— może jednak mają oni w jakimś
sensie rację? A co Ty o tym sądzisz?
Wysil
szare komórki
Co tu się dzieje? Czy Mike zachowuje się irracjonalnie? Czy Kate jest zbyt wymagająca?
Dlaczego ta prosta, powszechnie akceptowana praktyka stała się przyczyną konfliktu?
jesteś tutaj�
5
Poleć książkęKup książkęNastawienie a metodyka
Różni członkowie zespołu mają różne podejścia
Kate natrafiła na problemy z wdrażaniem metodyki zwinnej już na samym początku. Nie jest w tym jednak
odosobniona.
Prawda jest taka, że wiele zespołów zwyczajnie nie odniosło takich sukcesów z wykorzystaniem metodyki
zwinnej, jakich się spodziewano. Czy wiedziałeś, że ponad połowa firm zajmujących się produkcją
oprogramowania eksperymentowała z metodykami zwinnymi? Pomimo opowieści o sukcesach — których
jest niemało! — wiele zespołów wypróbowuje metodykę zwinną, ale uzyskuje mało zadowalające rezultaty.
W rzeczywistości ludzie często czują się nabici w butelkę! Metodyka zwinna zdawała się obiecywać im
olbrzymie korzyści, ale wdrożenie jej w ramach ich własnych projektów nie przynosiło odpowiednich efektów.
Kate mierzy się z taką właśnie sytuacją. Samodzielnie opracowała plan i teraz chce otrzymywać aktualne
dane od zespołu. Zaczęła wobec tego od zaciągania niechętnych członków zespołu na codzienne stand-upy.
Oczywiście jest w stanie wepchnąć ich na siłę do sali, ale co z tego? Kate przejmuje się tym, że ludzie nie
działają zgodnie z jej planem, więc zaczyna się koncentrować na wyciąganiu aktualnych danych od każdego
z pracowników. Mike wraz z innymi programistami chce natomiast, żeby spotkanie skończyło się szybko
i żeby wszyscy mogli wrócić do „prawdziwej” pracy.
Dowiaduję się
o problemach, kiedy jest
już za późno, żeby coś
z tym zrobić.
W trakcie mało skutecznego codziennego spotkania,
które Kate zarządziła, każdy z uczestników wyłącza
się, gdy inny coś mówi, a wszyscy starają się powiedzieć
jak najmniej. Kate udaje się wprawdzie zdobyć jakieś
przydatne informacje, ale ceną tego jest konflikt i ogólne
wrażenie nudy, przy czym żaden z uczestników spotkania
nie jest zainteresowany nawiązaniem współpracy.
Kiedy jesteśmy ciągani
po spotkaniach, nie mamy czasu
na pisanie kodu.
Jeśli mamy dwie
osoby, to każda
z nich może
postrzegać tę
samą praktykę
bardzo odmiennie.
Jeżeli obie nie mają
poczucia, że jakoś
na tym korzystają,
współpraca może
się okazać mało
skuteczna.
6
Rozdział 1.
Poleć książkęKup książkęCzym jest metodyka zwinna?
Czy nie tak właśnie wyglądają
projekty rozwoju oprogramowania? Coś,
co prezentuje się dobrze w podręczniku, niekoniecznie
musi się sprawdzać w praktyce. Nie da się z tym
niczego zrobić, prawda?
A właśnie że się da! Właściwe nastawienie sprawia,
że takie praktyki są skuteczniejsze.
Powiedzmy sobie jasno: sposób, w jaki Kate prowadzi stand-upy, jest dość standardowy.
Choć nie jest to optymalne rozwiązanie, codzienne spotkania przeprowadzane w ten
sposób mimo wszystko przynoszą jakieś rezultaty. Kate dowiaduje się, co jest nie tak z jej
planem, a zespół Mike’a na dłuższą metę na tym korzysta, ponieważ może dzięki temu
rozwiązywać ewentualne problemy na wcześniejszym etapie prac. Same spotkania nie
zajmują dużo czasu, więc — tak czy inaczej — warto je organizować.
Istnieje jednak spora różnica między zespołem zwinnym, który jedynie wykonuje swoje
obowiązki, a takim, który uzyskuje świetne wyniki. Decyduje o niej nastawienie, z jakim
zespół podchodzi do każdego projektu. Może się to wydawać nieprawdopodobne,
ale nastawienie osób zaangażowanych w stosowanie danej praktyki wpływa na jej
efektywność!
Nastawienie każdego z członków
zespołu wobec praktyki takiej jak
codzienny stand-up istotnie wpływa na
jej efektywność. Spotkanie takie może
jednak być wystarczająco skuteczne,
nawet jeśli jest nudne i nikt nie jest
w nie zaangażowany.
jesteś tutaj�
7
Poleć książkęKup książkęNastawienie przede wszystkim
Praktyki stosuje się sprawniej dzięki odpowiedniemu nastawieniu
Co by się stało, gdyby Kate i Mike mieli inne nastawienie? Co by było, gdyby każdy członek zespołu miał
zupełnie inne podejście do codziennego stand-upu?
Co by się na przykład stało, gdyby Kate miała poczucie, że wszyscy członkowie zespołu współpracują przy
planowaniu projektu? W takiej sytuacji byłaby ona skłonna rzeczywiście wysłuchać każdego programisty.
Gdyby Kate zmieniła swoje nastawienie do stand-upu, przestałaby zwracać uwagę na to, jak bardzo praktyka
odbiega od jej planów, i nie skupiałaby się na ciągłym poprawianiu innych. Zaczęłaby się jednocześnie
bardziej koncentrować na zrozumieniu planu będącego owocem wspólnej pracy, a jej zadaniem byłoby
pomaganie całemu zespołowi w efektywniejszym wykonywaniu obowiązków.
Jest to takie podejście do planowania, z jakim Kate nigdy nie miała styczności w ramach nauki zarządzania
projektami, bardzo odmienne od tego, które było jej znane. Zawsze uczono ją, że jej zadaniem jest
opracowanie planu projektu i narzucenie go zespołowi. Dano jej do dyspozycji narzędzia
pozwalające na sprawdzenie tego, jak dokładnie zespół przestrzega jej planu,
jak również sztywne procesy służące do wprowadzania zmian w sposobie
działania zespołu.
Nie znam
Teraz wszystko wygląda inaczej. Kate zrozumiała, że sprawne
przeprowadzenie codziennego stand-upu wymaga włożenia pewnego
wysiłku w nawiązanie współpracy z zespołem, tak aby wszyscy jego
członkowie mogli wspólnie sformułować najlepsze podejście do projektu.
Dzięki temu spotkanie stanie się dla całego zespołu sposobnością
do współdziałania i upewnienia się, czy wszyscy podejmują właściwe decyzje
i czy projekt rozwija się we właściwym kierunku.
wszystkich odpowiedzi.
Potrzebujemy takich spotkań,
aby móc zaplanować projekt
razem!
Kate bardzo się irytowała, kiedy trafiała
na zmiany wprowadzone do jej planu
projektowego, ponieważ na ogół było
wtedy już za późno, żeby skierować
projekt na właściwe tory.
Ponieważ wprowadzono codzienny stand-up
do planu dnia, cały zespół codziennie
pomaga Kate w wykrywaniu takich zmian,
tak aby można było poczynić właściwe kroki
odpowiednio wcześnie. Takie rozwiązanie
jest o wiele sprawniejsze!
8
Rozdział 1.
Poleć książkęKup książkęCzym jest metodyka zwinna?
Czyli codzienny stand-up polega
na tym, że słuchasz, co ja i mój zespół mamy
do powiedzenia, i rzeczywiście dostosowujesz
do tego przebieg realizacji projektu?
Co by było, gdyby Mike doszedł do wniosku, że takie spotkanie nie polega
jedynie na informowaniu o stanie prac, tylko na omawianiu przebiegu projektu
i wymyślaniu sposobów na usprawnienie pracy? Taki codzienny stand-up
prawdopodobnie stałby się dla niego ważnym punktem dnia.
Dobry programista niemal zawsze ma wyrobione zdanie nie tylko na temat
własnego kodu, ale także na temat ogólnego kierunku rozwoju całego projektu.
Codzienny stand-up jest dla niego okazją, aby upewnić się, czy projekt
realizowany jest rozsądnie i wydajnie. Mike wie, że jeśli cały projekt jest
sprawnie realizowany, to jego kod będzie miał na dłuższą metę większą wartość
dla zespołu. Wie też, że jeśli zgłosi na spotkaniu problem związany z planem,
wszyscy go wysłuchają, a dzięki temu realizacja projektu będzie efektywniejsza.
Wszystko działa najlepiej, kiedy Mike (wraz z resztą zespołu) jest świadom
tego, że codzienne spotkanie pomaga w rozplanowaniu prac na następny dzień,
a każdy członek zespołu uczestniczy w planowaniu.
To ma sens! Planowanie
przebiega o wiele sprawniej, kiedy
wszyscy członkowie zespołu biorą w nim
udział. Tyle tylko, że chyba wszyscy
uczestnicy muszą być zaangażowani
w rozmowę przez cały czas, żeby to
mogło zadziałać.
Wysil
szare komórki
Jak zmienić nastawienie całego zespołu lub poszczególnych jego członków? Czy przychodzą
Ci do głowy jakieś przykłady zmiany czyjegoś nastawienia — może nawet Twojego własnego
— z którymi zetknąłeś się w pracy nad własnymi projektami?
jesteś tutaj�
9
Poleć książkęKup książkęPraktyka nie zawsze czyni mistrza
Czym właściwie jest ta cała metodyka zwinna?
Metodyki zwinne są zoptymalizowane pod kątem ułatwienia rozwiązywania konkretnych problemów,
z jakimi zwykle borykają się zespoły programistyczne, a jednocześnie odznaczają się one pewną
prostotą, dzięki której wdrożenie ich jest stosunkowo łatwe.
Takie metodyki odnoszą się do wszystkich obszarów tradycyjnej produkcji oprogramowania, w tym
do zarządzania projektem, projektowania oprogramowania i formułowania jego architektury oraz
usprawniania procesów. Każda z nich składa się z ustandaryzowanych praktyk, zoptymalizowanych
pod kątem ułatwienia ich wdrażania.
Poświęciłam tyle czasu na
wymyślenie własnego planu,
ale zespół ciągle go zmienia. Na codziennych
spotkaniach będę mogła dopilnować, żeby
członkowie zespołu robili wszystko to,
co im powiem.
Nastawienie kontra metodyka
Wytwarzanie zwinne wiąże się jednak również z pewnym nastawieniem, co jest zupełnie nowym
pojęciem dla wielu osób, które wcześniej nie miały z nim styczności. Wychodzi na to, że nastawienie
każdego członka zespołu do stosowanych praktyk może znacząco wpłynąć na efektywność całego
zespołu. Nastawienie zwinne skupia się na tym, aby ułatwić ludziom dzielenie się informacjami,
co pomaga im w podejmowaniu ważnych decyzji projektowych (i nie muszą zdawać się przy tym na
szefa lub menedżera projektu). Polega to na pozostawieniu decyzyjności dotyczącej planowania,
projektowania i ulepszania procesów całemu zespołowi. Aby wszystkim łatwiej było przyjąć skuteczne
nastawienie, każda metodyka zwinna ma własny zestaw wartości, którymi członkowie zespołu mogą
się kierować.
Jeśli wszyscy będziemy
wspólnie pracować nad planowaniem
projektu, to będziemy mogli wprowadzać
korekty na bieżąco w trakcie
codziennych spotkań.
Wysil
szare komórki
Co się dzieje, kiedy jeden z członków zespołu wyłącza się w trakcie
codziennego stand-upu i nie słucha tego, co mówią inni?
10
Rozdział 1.Poleć książkęKup książkęZaostrz ołówek
Oto kilka problemów, na które Kate, Ben i Mike zwrócili uwagę w trakcie codziennego
stand-upu. Obok nich widnieją nazwy różnych praktyk, które są często wykorzystywane
przez zespoły zwinne. Nie martw się, jeśli po raz pierwszy stykasz się z niektórymi z nich
— przeczytasz o nich więcej w dalszej części książki, dlatego tutaj zamieszczone zostały
jedynie krótkie opisy. Sprawdź, czy możesz dopasować poszczególne problemy
do praktyk ułatwiających ich rozwiązanie.
”
Zmarnowaliśmy bardzo dużo
czasu na przekopywanie się
przez kod spaghetti, żeby
znaleźć ten błąd!”.
Retrospektywa jest spotkaniem, podczas którego
wszyscy dyskutują o przebiegu końcowego etapu
projektu i wyciągają wnioski.
Dobra, omówiliśmy historyjki
”
użytkowników. Zastanówmy się
teraz, jak składają się one w całość,
żebyśmy mogli rozplanować kolejne
tygodnie pracy”.
Historyjka użytkownika jest sposobem na wyrażenie
jednej, konkretnej potrzeby użytkownika, zazwyczaj
w formie kilku zdań zapisanych na karteczce
samoprzylepnej lub fiszce.
Przy każdym nowym wydaniu
ciągle mamy te same problemy”.
”
Właśnie przeprowadziłem
”
demonstrację nowej funkcji dla
jednego z naszych użytkowników.
Powiedział, że wcale nie rozwiązuje
ona problemu, jaki miał”.
Tablica zadań jest narzędziem do planowania.
Korzystanie z niej polega na przyklejaniu karteczek
z historyjkami do tablicy i układaniu ich w kolumny
na podstawie ich statusu.
Wykres spalania jest aktualizowanym codziennie
wykresem liniowym, wskazującym ilość pracy, jaką
trzeba jeszcze wykonać, by zrealizować projekt,
„spalającą się” do zera, kiedy następuje zakończenie
wszystkich zadań.
”
Myślałam, że zdążymy zaktualizować
kod bazy danych z piosenkami do
piątku. Teraz mi mówicie, że potrwa
to jeszcze trzy tygodnie?”.
Programiści rozwiązują problemy z kodem poprzez
jego ciągłą refaktoryzację, czyli poprawianie struktury
bez zmiany zachowania.
Nie przejmuj się, jeśli nie zetknąłeś się jeszcze z powyższymi praktykami.
Więcej na ich temat przeczytasz w kolejnych rozdziałach.
11
jesteś tutaj�Czym jest metodyka zwinna?Poleć książkęKup książkęMetodyka postępowania
Scrum jest najpopularniejszym podejściem do wytwarzania zwinnego
Zespoły mogą stosować różnorakie metodyki zwinne, a jest ich co niemiara. Przez lata przeprowadzono jednak wiele
badań, z których wynika, że najczęściej korzysta się ze Scruma, czyli ram postępowania koncentrujących się
na zarządzaniu projektem i rozwoju produktu.
Kiedy zespół korzysta ze Scruma, każdy projekt przebiega według
jednakowego wzorca. W projekcie scrumowym występują trzy główne
role: Właściciel Produktu (jest nim Ben), który pracuje z zespołem
nad utrzymaniem Rejestru Produktu, Scrum Master (dosł. Mistrz
Młyna), który zajmuje się pomaganiem zespołowi w pokonywaniu
różnych przeszkód, oraz członkowie zespołu programistycznego
(czyli wszyscy pozostali). Projekt podzielony jest na sprinty, czyli
cykle o jednakowym czasie trwania (często dwutygodniowym lub
miesięcznym), które przebiegają zgodnie ze wzorcem Scruma.
Na początku sprintu zespół przeprowadza planowanie sprintu,
aby określić, które funkcje z rejestru produktu zostaną w ramach
niego opracowane. Zespół przez cały czas trwania sprintu pracuje
nad wszystkimi funkcjami, które zawarto w Rejestrze Sprintu.
Zespół każdego dnia urządza krótkie spotkanie, zwane codziennym
Scrumem. Pod koniec sprintu działające oprogramowanie zostaje
zademonstrowane Właścicielowi Produktu i interesariuszom w ramach
przeglądu sprintu, a zespół urządza retrospektywę, aby omówić
wnioski, jakie wyciągnięto w trakcie pracy.
Metodykę Scrum omówimy szczegółowo w rozdziałach 3. i 4.
Dowiesz się, w jaki sposób Scrum pomaga w tworzeniu lepszego programowania i sprawniejszej realizacji projektów,
a także wykorzystasz go do zbadania pojęć i koncepcji istotnych dla zespołów stosujących metodykę zwinną.
XP i Lean/Kanban
Choć Scrum jest najpopularniejszą metodyką zwinną, wiele zespołów korzysta z innych podejść. Drugą metodyką
pod względem popularności jest XP, które koncentruje się na rozwoju oprogramowania i programowaniu, a często
używane jest razem ze Scrumem. Inne zespoły stosują metodyki Lean i Kanban —dają one możliwość zorientowania
się, jak wytworzyć oprogramowanie teraz, a ulepszyć je w przyszłości. Więcej o podejściach XP i Lean/Kanban
przeczytasz w rozdziałach 5. i 6.
S p o ko j n i e
Za dużo nowych pojęć?
Nowe pojęcia są w tej książce oznaczone pogrubionym pismem, kiedy pojawiają
się po raz pierwszy. Na tej stronie pojawiło się ich niemało, więc jeżeli stykasz się
z niektórymi z nich pierwszy raz, nie przejmuj się! Zapoznanie się teraz z nowymi
pojęciami w odpowiednim kontekście pomoże Ci, kiedy później będziesz czytał ich bardziej szczegółowe
omówienie. Jest to jeden ze stałych elementów serii Rusz głową!, dzięki którym nauka jest łatwiejsza!
12
Rozdział 1.
Poleć książkęKup książkęCzym jest metodyka zwinna?
Zaostrz ołówek
Rozwiązanie
Zespoły mogą uniknąć popełniania ciągle tych samych błędów, wracając
do projektu i omawiając to, co poszło dobrze, oraz to, co można usprawnić.
”
Zmarnowaliśmy bardzo dużo
czasu na przekopywanie się
przez kod spaghetti, żeby
znaleźć ten błąd!”.
Retrospektywa jest spotkaniem, podczas którego
wszyscy dyskutują o przebiegu końcowego etapu
projektu i wyciągają wnioski.
Tablica zadań jest świetnym sposobem
na przedstawienie wszystkim członkom
zespołu tego samego oglądu projektu.
Dobra, omówiliśmy historyjki
”
użytkowników. Zastanówmy się
teraz, jak składają się one
w całość, żebyśmy mogli
rozplanować kolejne
tygodnie pracy”.
Historyjka użytkownika jest sposobem na wyrażenie
jednej, konkretnej potrzeby użytkownika, zazwyczaj
w formie kilku zdań zapisanych na karteczce
samoprzylepnej lub fiszce.
Przy każdym nowym wydaniu
ciągle mamy te same problemy”.
”
”
Właśnie przeprowadziłem
demonstrację nowej funkcji dla
jednego z naszych użytkowników.
Powiedział, że wcale nie rozwiązuje
ona problemu, jaki miał”.
Kiedy wszyscy członkowie zespołu rozumieją
użytkowników i znają ich potrzeby, o wiele
sprawniej idzie im tworzenie oprogramowania,
które odpowiada użytkownikom.
Tablica zadań jest narzędziem do planowania.
Korzystanie z niej polega na przyklejaniu karteczek
z historyjkami do tablicy i układaniu ich w kolumny
na podstawie ich statusu.
Wykres spalania jest aktualizowanym codziennie
wykresem liniowym, wskazującym ilość pracy, jaką
trzeba jeszcze wykonać, by zrealizować projekt,
„spalającą się” do zera, kiedy następuje zakończenie
wszystkich zadań.
To jest praktyka zaczerpnięta z XP. Niektórzy
menedżerowie projektu podczas pierwszej
styczności z praktykami zwinnymi są zaskoczeni,
że dotyczą one samego kodu, a nie planowania
i realizacji projektu.
”
Myślałam, że zdążymy zaktualizować
kod bazy danych z piosenkami do
piątku. Teraz mi mówicie, że potrwa
to jeszcze trzy tygodnie?”.
Programiści rozwiązują problemy z kodem poprzez
jego ciągłą refaktoryzację, czyli poprawianie struktury
bez zmiany zachowania.
jesteś tutaj�
13
Poleć książkęKup książkęPodejście zwinne to nie tylko zmiana nazewnictwa
Nie istnieją
głupie pytania
P: Wygląda na to, że Scrum, XP
i Lean/Kanban bardzo się od siebie
różnią. Jak to możliwe, że wszystkie
one są metodykami zwinnymi?
O: Scrum, XP i Lean/Kanban
koncentrują się na bardzo różnych
obszarach. Scrum skupia się głównie
na zarządzaniu projektem: na
przedmiocie prac i dostosowaniu
go do potrzeb użytkowników oraz
interesariuszy. XP koncentruje się na
rozwoju oprogramowania: tworzeniu
wysokiej jakości kodu, który jest dobrze
zaprojektowany i łatwy w utrzymaniu.
Lean/Kanban jest połączeniem podejścia
Lean z metodą Kanban, którego zespoły
używają w celu ciągłego doskonalenia
sposobu wytwarzania oprogramowania.
Innymi słowy, Scrum, XP i Lean/Kanban
skupiają się na trzech różnych obszarach
wytwarzania oprogramowania: zarządzaniu
projektem, projektowaniu i architekturze oraz
doskonaleniu procesów. Nic więc dziwnego,
że ich praktyki różnią się od siebie.
W następnym rozdziale przeczytasz zaś
o tym, co je łączy: wspólnych wartościach
i zasadach, które pomagają zespołom
przyjąć odpowiednie nastawienie do
stosowania metodyki zwinnej.
P: Czy nie mówimy tutaj
o rzeczach, które dobrze znam,
tyle tylko, że teraz są one oznaczone
nowymi etykietkami? Te sprinty
scrumowe to po prostu kamienie
milowe i fazy projektu, prawda?
O: Przy pierwszym zetknięciu się
z metodologią zwinną taką jak Scrum
powszechne jest doszukiwanie się znajomo
wyglądających elementów — i bardzo
dobrze! Jeśli pracujesz już od jakiegoś
czasu w zespole programistycznym, wiele
aspektów metodyki zwinnej powinno
wydać Ci się znajomych. Twój zespół
w końcu zajmuje się tworzeniem czegoś,
a poza tym pewnie wiele rzeczy chcecie
nadal robić tak samo jak dotąd.
Łatwo jednak przyjąć błędne założenie,
że znajomo wyglądający element metodyki
zwinnej jest dokładnie tym czymś,
czego już używasz. Przykładowo sprinty
scrumowe nie są tym samym co fazy
projektu. Istnieje wiele różnic pomiędzy
fazami i kamieniami w tradycyjnym
zarządzaniu projektem a sprintami
w Scrumie.
Przy standardowym planowaniu projektu
wszystkie fazy projektu są wyznaczane
na samym początku; w Scrumie
szczegółowo planuje się natomiast
jedynie następny sprint. Ta różnica może
się wydać nieco dziwna dla zespołu
przyzwyczajonego do tradycyjnego
zarządzania projektem.
Już wkrótce dowiesz się o wiele więcej
o tym, jak działa planowanie w Scrumie
oraz jak odbiega ono od podejść, do
których jesteś przyzwyczajony. Na razie
zachowaj otwarty umysł i staraj się
zwracać uwagę na momenty, w których
myślisz sobie: „Przecież ja już to wszystko
wiem!”.
CeLNe SPoSTrzeżeNiA
Wiele zespołów wdrażających metodykę zwinną zaczyna
od prowadzenia codziennych stand-upów, czyli spotkań
całego zespołu, podczas których wszyscy stoją, żeby
rozmowa się nie przedłużała.
Podejścia zwinne są nie tylko zestawami metod
i metodyk, ale też wymagają przyjęcia pewnego
nastawienia przez wszystkich członków zespołu.
Codzienny stand-up jest skuteczniejszy, kiedy wszyscy
członkowie zespołu mają takie samo nastawienie
— kiedy wszyscy się wzajemnie słuchają i wspólnie dążą
do tego, żeby projekt rozwijał się prawidłowo.
Każda metodyka zwinna cechuje się pewnymi
wartościami, które pomagają zespołowi przyjąć
odpowiednie nastawienie.
Kiedy członkowie zespołu przestrzegają wspólnych zasad
i wartości, wykorzystywana przez nich metoda staje się
o wiele efektywniejsza.
14
Rozdział 1.
Scrum, metodyka koncentrująca się na zarządzaniu
projektem i rozwoju produktu, jest najczęściej
stosowanym podejściem zwinnym.
W projekcie scrumowym zespół dzieli pracę na sprinty,
czyli cykle o równej długości (często są to okresy
miesięczne) oparte na wzorcu Scruma.
Każdy sprint zaczyna się od sesji planowania sprintu,
określającej, jakie prace mają zostać wykonane.
W trakcie sprintu zespół pracuje nad projektem
i codziennie organizuje krótkie spotkanie, nazywane
codziennym Scrumem.
Pod koniec sprintu zespół urządza przegląd sprintu
z udziałem interesariuszy, aby zademonstrować działające
oprogramowanie.
Na zakończenie sprintu zespół organizuje retrospektywę,
aby omówić przebieg sprintu i możliwości poprawy dla
całego zespołu.
Poleć książkęKup książkęCzym jest metodyka zwinna?
Nie lekceważ znaczenia nastawienia
Wielu ludzi — zwłaszcza zatwardziałych programistów — przewraca oczami, kiedy tylko słyszy pojęcia takie
Obejr zyj to!
jak nastawienie, wartości i zasady. Największą skłonność do wyłączania się w takich momentach mają koderzy, którzy wolą
siedzieć sami w swojej kanciapie i do nikogo się nie odzywać. Jeśli sam zaczynasz tak reagować, to postaraj się jednak dać
tym pojęciom szansę. Bądź co bądź niemało świetnego oprogramowania powstało dzięki zastosowaniu tej metodyki, więc coś
musi być na rzeczy… prawda?
Zaostrz ołówek
Które z poniższych scenariuszy są przykładami zastosowania praktyk, a które wykorzystania zasad?
Nie martw się, jeśli pierwszy raz stykasz się z niektórymi z tych praktyk — postaraj się wywnioskować
właściwe odpowiedzi z kontekstu. (Takie podejście przydaje się zresztą na egzaminach certyfikacyjnych!).
1. Kate wie, że najskuteczniejszym sposobem na przekazywanie swojemu zespołowi ważnych informacji o projekcie
jest rozmowa twarzą w twarz.
c
Zasada
c
Praktyka
2. Mike i jego zespół wiedzą, że użytkownicy prawdopodobnie zmienią później swoje zdanie, a wprowadzanie zmian
może się okazać katastrofalne dla kodu, wobec czego zespół zapobiegawczo posługuje się projektowaniem
przyrostowym, aby wytworzony kod można było z łatwością zmienić na późniejszym etapie.
c
Zasada
c
Praktyka
3. Ben używa person do modelowania typowych użytkowników, ponieważ wie, że im lepiej zespół ich rozumie,
tym sprawniej będzie sobie radzić z tworzeniem oprogramowania.
c
Zasada
c
Praktyka
4. Mike zawsze pilnuje, by jego zespół pracował nad czymś, co będzie mógł później zaprezentować Kate i Benowi,
ponieważ wie, że działające oprogramowanie świadczy o postępach poczynionych przez zespół.
c
Zasada
c
Praktyka
5. Kate chce usprawnić sposób, w jaki zespół wytwarza oprogramowanie, więc zachęca go do wspólnego doskonalenia
się i eksperymentalnego rozwoju, wymyślając zmiany, jakie może on wprowadzić do swoich procesów, a także
używając danych do stwierdzenia, czy zmiany te rzeczywiście okazały się korzystne.
c
Zasada
c
Praktyka
6. Mike i jego zespół aktywnie ustosunkowują się do zmian, tworząc kod, który będzie można łatwo zmienić
na późniejszym etapie.
Zasada
c
c
Praktyka
Odpowiedzi na s. 20
jesteś tutaj�
15
Poleć książkęKup książkęWiększa widoczność to lepsze wyniki (prawda?)
Nigdy dotąd nam się tak
dobrze nie współpracowało!
Ten codzienny stand-up zmienił
wszystko!
Kate: Ten projekt idzie nam dużo lepiej niż wcześniejsze. A wszystko dzięki temu,
że codziennie urządzamy jedno krótkie spotkanie!
Mike: Nie powiedziałbym.
Kate: A możesz przestać być takim malkontentem?
Mike: Serio mówię. Chyba nie myślisz, że nikt przed tobą nie wpadł na to, żeby
rozwiązywać nasze problemy z projektami poprzez urządzanie dodatkowych spotkań?
Kate: E… No…
Mike: No dobra, udało nam się uzyskać naprawdę niezłe wyniki, więc będę z tobą
szczery. Kiedy zaczęłaś prowadzić te codzienne stand-upy, prawie cały zespół był
niezadowolony z tego pomysłu.
Kate: Naprawdę?
Mike: Nie pamiętasz, jak przez pierwsze półtora tygodnia większość z nas po prostu
gapiła się w swoje telefony?
Kate: No tak, wtedy rzeczywiście niewiele z tego wynikało. Też muszę szczerze
powiedzieć, że myślałam wówczas o odwołaniu tego wszystkiego.
Mike: W końcu jednak jedna z programistek zwróciła uwagę na poważny problem
z architekturą. Wszyscy jej wysłuchali, bo jest naprawdę dobra w tym, co robi, i wszyscy
szanują jej zdanie.
Kate: Rzeczywiście. Musieliśmy wprowadzić większą zmianę, więc wycięłam dwie funkcje
z kolejnego wydania, żebyśmy z tym wszystkim zdążyli.
Mike: Tak! I to właśnie okazało się naprawdę istotne. Zazwyczaj, kiedy wykrywamy takie
problemy, musimy pracować po nocach, żeby sobie z nimi jakoś poradzić. Tak jak wtedy,
kiedy dowiedzieliśmy się, że algorytm analizy danych o słuchaczach zawierał poważny błąd.
Kate: Jeju, to było straszne. Zwykle dowiaduję się o takich problemach po tym, kiedy
już obiecam dostarczenie czegoś, czego nie możemy zapewnić. Tym razem wykryliśmy
problem wcześnie i mogłam razem z Benem wpłynąć na oczekiwania użytkowników,
a wam dać czas na wymyślenie nowego rozwiązania.
Mike: A my na pewno będziemy informować o takich problemach, kiedy tylko się pojawią.
Kate: Czekaj, co? Takie problemy zdarzają się często?!
Mike: Żartujesz? Nigdy jeszcze nie realizowałem projektu, w którym nie trafiłbym
przynajmniej raz na taką niespodziankę w trakcie kodowania. Tak wygląda realizacja
projektów programistycznych w prawdziwym świecie.
Kate właśnie uświadomiła
sobie, że realizacja
projektów programistycznych
jest o wiele bardziej złożona
i chaotyczna w praktyce
niż na papierze. Wcześniej
mogła opracowywać plany
samodzielnie i narzucać je
zespołowi, a kiedy coś szło
nie tak, mogła zakładać, że
to z winy zespołu, a nie jej.
Jednakże ostatni projekt był o wiele
bardziej udany od poprzednich.
Kate musiała dołożyć starań, żeby
poradzić sobie z problemami, ale
w zamian uzyskała lepsze wyniki!
16
Rozdział 1.
Poleć książkęKup książkęCzym jest metodyka zwinna?
Krzyżówka
Rozwiąż krzyżówkę i zapoznaj się z poniższymi terminami dotyczącymi metodyk zwinnych!
Ile poprawnych odpowiedzi podasz bez przeglądania tego rozdziału?
Poziomo
3. Ma duże znaczenie dla wdrażania praktyk
5. Narzędzie lub technika stosowane przez zespół
6. Zespoły XP robią to w celu ciągłego doskonalenia struktury kodu
9. Scrum lub XP
10. Jedna z metodyk, stosowana często w połączeniu z Kanbanem
12. Spotkanie, na którym zespół omawia wnioski wyciągnięte z pracy
13. Metodyka koncentrująca się na doskonaleniu procesu
14. Na jego doskonaleniu koncentruje się Kanban
16. Pracuje wspólnie nad projektem
18. Codzienny _________ bywa przydatny, ale sprawdza się najlepiej,
kiedy wszyscy członkowie zespołu mają właściwe nastawienie
20. Jego Właściciel w zespole scrumowym zarządza rejestrem
Pionowo
1. Obok wartości pomagają zespołom przyjąć odpowiednie nastawienie
do stosowania metodyki zwinnej
2. _________ spalania — wskazuje ilość pracy, jaka pozostała
4. Wykres wskazujący ilość pracy, jaką trzeba jeszcze wykonać,
do wykonania
by zrealizować projekt
5. _________ przyrostowe — praktyka XP, w ramach której zespół
rozwija bazę kodu przyrostowo wraz z upływem czasu
7. _________ Produktu — zarządza rejestrem w zespole scrumowym
8. Zespoły scrumowe robią to wspólnie na początku prac nad projektem
9. Scrum _________ pomaga zespołowi w pokonywaniu przeszkód
i we wdrożeniu metodyki Scruma
11. Cecha takich metodyk jak Scrum czy XP
12. Znajdują się w nim funkcje, których jeszcze nie stworzono
15. Chronologiczna jednostka podziału projektu scrumowego
17. Ramy działania koncentrujące się na zarządzaniu projektem i rozwoju
19. Metodyka koncentrująca się na kodzie i projektowaniu
produktu
oprogramowania
jesteś tutaj�
17
Poleć książkęKup książkęCertyfikacja PMI-ACP pomoże Ci wyćwiczyć zwinność
Certyfikacja Agile Certified Practitioner (PMI-ACP)® została przygotowana przez Project
Management Institute w odpowiedzi na potrzeby menedżerów projektów, którzy coraz
częściej muszą pracować z metodami, metodykami, praktykami i technikami zwinnymi.
Podobnie jak w przypadku certyfikacji PMP, PMI stworzyło egzamin odnoszący się do
zadań, narzędzi i praktyk stosowanych na co dzień przez zespoły zwinne.
Certyfikacja PMI-ACP
przeznaczona jest dla
wszystkich osób pracujących
w zespołach zwinnych lub
w organizacjach przechodzących
na metodyki zwinne.
Pani doktor pomoże
Ci zadbać o kondycję
i przygotować się do
egzaminu.
Jeśli zamierzasz podejść
do egzaminu, przygotujesz się do niego,
odpowiadając na pytania próbne, które pomogą Ci
powtórzyć materiał z każdego rozdziału.
egzamin sprawdza praktyczną wiedzę o wytwarzaniu zwinnym.
Egzamin PMI-ACP odzwierciedla sposób, w jaki zespoły rzeczywiście pracują.
Obejmuje on najczęściej stosowane metody i metodyki, takie jak Scrum, XP
i Lean/Kanban. Pytania egzaminacyjne nawiązują do zadań, które zespoły
wykonują na co dzień.
Niniejsza książka ma za zadanie przede wszystkim przekazać Ci wiedzę
o podejściach zwinnych właśnie dlatego, że zrozumienie metod, metodyk,
praktyk, wartości i koncepcji zwinnych jest najskuteczniejszym sposobem
przygotowania się do egzaminu PMI-ACP.
Poza przedstawieniem Ci szerokiego omówienia metodyk zwinnych zajmiemy
się też konkretnie materiałami egzaminacyjnymi. Książka ta prezentuje pełny
zakres egzaminacji PMI-ACP. Znajduje się w niej wiele pytań próbnych,
wskazówek testowych i ćwiczeń przygotowujących, w tym pełny egzamin
próbny, dobrze odzwierciedlający ten właściwy.
TRENING
UMYSŁU
Nawet jeśli nie zamierzasz
zdawać egzaminu PMI-ACP, zawarte
w tej książce pytania próbne dadzą Ci
możliwość spojrzenia na materiał z innej
strony. To świetny sposób na skuteczne
przyswojenie sobie wiedzy!
18
Poleć książkęKup książkęrozdziały 2. – 7. kończą się zestawami próbnych pytań egzaminacyjnych.
znajdziesz w nich też podrozdziały „Klinika naukowa”, w których omówimy
różne rodzaje pytań, z jakimi zetkniesz się na egzaminie.
Umiejętność odróżnienia różnych typów pytań na egzaminie jest przydatna, ponieważ widok
czegoś znajomego pomoże Ci się odprężyć, a tym samym szybciej udzielać odpowiedzi. Poniższy
przykład ukazuje pytanie typu „suche fakty”. Na takie pytanie należy odpowiedzieć wskazaniem
jakiejś prostej informacji, ale należy pamiętać o uważnym przeczytaniu wszystkich odpowiedzi!
Często bowiem pojawiają się odpowiedzi, które wydają się poprawne, ale wcale takie nie są.
39. Czego zespoły używają do analizowania postępów prac
nad projektem?
A. Refaktoryzacji
Niektóre odpowiedzi są w oczywisty
sposób błędne. Refaktoryzacja
dotyczy ulepszania kodu,
a nie oceny postępów.
Pytania próbne
dostarczą Ci
wskazówek i pomogą
opracować strategię…
B. Retrospektyw
Niektóre odpowiedzi bywają mylące!
Retrospektywa pomaga zespołowi lepiej
zrozumieć projekt, ale nie pozwala na śledzenie
postępów, jako że obejmuje ona przede
wszystkim tę część pracy, którą już wykonano.
C. Wykresów spalania
Poprawna odpowiedź! Wykres spalania
jest narzędziem ukazującym dotychczasowe
postępy prac oraz ilość pracy, którą trzeba
jeszcze wykonać.
D. Ciągłej integracji
Nie spotkałeś się jeszcze z tym terminem — jest to praktyka stosowana przez
zespoły XP. W niektórych pytaniach egzaminacyjnych trafisz na niezrozumiałe
odpowiedzi. Wszystko w porządku! Odpręż się i skoncentruj na pozostałych.
W tym przypadku jedna z nich jest poprawna. Jeśli jednak zdarzy się tak,
że żadna z innych odpowiedzi nie będzie trafna, to będziesz mógł je kolejno
eliminować i podjąć racjonalną próbę odgadnięcia poprawnej!
…A PONADTO W PODROZDZIAŁACH „KLINIKA
NAUKOWA” POMOŻEMY CI SIĘ PRZYGOTOWAĆ
DO EGZAMINU PMI-ACP, OMAWIAJĄC RÓŻNE
RODZAJE PYTAŃ, A TAKŻE DAJĄC CI OKAZJĘ
DO SAMODZIELNEGO NAPISANIA WŁASNYCH!
19
Poleć książkęKup książkęZaostrz ołówek. Rozwiązanie
Zaostrz ołówek
Rozwiązanie
Jest to jedna z zasad metodyk zwinnych:
rozmowa twarzą w twarz jest najskuteczniejszym
sposobem na przekazywanie informacji zespołowi
programistycznemu, jak również w jego obrębie.
1. Kate wie, że najskuteczniejszym sposobem na przekazywanie swojemu zespołowi ważnych informacji o projekcie
jest rozmowa twarzą w twarz.
c
Zasada
c
Praktyka
Projektowanie przyrostowe jest praktyką XP, w ramach
której zespół rozwija bazę kodu przyrostowo wraz
z upływem czasu.
2. Mike i jego zespół wiedzą, że użytkownicy prawdopodobnie zmienią później swoje zdanie, a wprowadzanie zmian
może się okazać katastrofalne dla kodu, wobec czego zespół zapobiegawczo posługuje się projektowaniem
przyrostowym, aby wytworzony kod można było z łatwością zmienić na późniejszym etapie.
c
Zasada
Stosowanie person jest praktyką polegającą na
tworzeniu fikcyjnych użytkowników z własnymi
imionami (i często też fikcyjnymi zdjęciami
portretowymi) w celu lepszego zrozumienia
ludzi, którzy będą korzystać z oprogramowania.
c
Praktyka
3. Ben używa person do modelowania typowych użytkowników, ponieważ wie, że im lepiej zespół ich rozumie,
tym sprawniej będzie sobie radzić z tworzeniem oprogramowania.
c
Zasada
c
Praktyka
Istotna zasada głosi, że działające oprogramowanie
jest główną miarą postępu realizacji projektu, jako
że jest to najskuteczniejszy sposób na oszacowanie,
co właściwie udało się zespołowi osiągnąć.
4. Mike zawsze pilnuje, by jego zespół pracował nad czymś, co będzie mógł później zaprezentować Kate i Benowi,
ponieważ wie, że działające oprogramowanie świadczy o postępach poczynionych przez zespół.
c
Zasada
c
Praktyka
5. Kate chce usprawnić sposób, w jaki zespół wytwarza oprogramowanie, więc zachęca go do wspólnego doskonalenia
się i eksperymentalnego rozwoju, wymyślając zmiany, jakie może on wprowadzić do swoich procesów, a także
używając danych do stwierdzenia, czy zmiany te rzeczywiście okazały się korzystne.
c
Zasada
Jest to jedna z fundamentalnych praktyk Kanbana.
Zespół posługuje się metodą naukową, aby określić,
czy jego ulepszenia sprawdzają się w praktyce.
c
Praktyka
6. Mike i jego zespół aktywnie ustosunkowują się do zmian, tworząc kod, który będzie można łatwo zmienić
na późniejszym etapie.
c
c
Zasada
Istotną wartością dla wszystkich skutecznych zespołów XP jest
aktywne ustosunkowywanie się do zmian, w odróżnieniu od unikania
ich lub opierania się im.
Praktyka
20
Rozdział 1.
Poleć książkęKup książkęCzym jest metodyka zwinna?
3
N
A
S
T
1
Z
A
S
A
D
Y
W
I
E
N
I
E
K
Z
T
Y
K
A
C
J
A
A
R
R
2
W
Y
K
R
E
S
F
E
A
12
R
E
J
E
S
T
R
6
R
8
10
P
L
A
N
O
W
A
N
I
E
4
S
P
A
L
A
N
I
E
5
P
R
O
J
E
K
T
O
W
A
N
I
E
K
T
T
R
13
K
A
16
Z
18
S
T
A
N
D
7
W
Ł
A
Ś
C
I
C
I
E
L
51
S
P
R
I
N
T
E
T
O
D
Y
K
9
M
A
S
T
E
R
Y
A
C
E
11
Z
W
I
N
N
O
Ś
Ć
S
P
E
K
B
A
N
P
Ó
Ł
41
P
R
19
20
X
P
R
O
D
U
K
P
17
S
C
R
U
M
Hej, popatrz! W rozwiązaniu
”Zaostrz ołówek” na poprzedniej
stronie znajdują się dopiski
z przydatnymi objaśnieniami! Jestem
pewien, że pomogą Ci w nauce.
jesteś tutaj�
21
Poleć książkęKup książkę22
Rozdział 1.
Poleć książkęKup książkęSkorowidz
A
adaptacja, 93, 95, 99
analiza
Kano, 325
pre-mortem, 351
sytuacji, 155
Analizator Odbiorców, 246, 266, 289, 293
anatomia opcji, 270
API, 205
artefakty, 76, 79, 112, 114
automatyzacja kompilacji, 210
B
basen, 315, 317
bezpieczeństwo, 428
bramka zatwierdzania ryzyka, 363
C
certyfikacja PMI-ACP®, 18, 307–376, 391
CFD, cumulative flow diagrams, 292, 344
ciągła integracja, 211, 219, 239, 241, 329
ciągłe doskonalenie, 361
CircuitTrak, 178
codzienne
Scrumy, 74, 78, 95, 99,
Pobierz darmowy fragment (pdf)