Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Agile - metodyki zwinne (ver. 2014-04-29)

5 684 vues

Publié le

Agile - metodyki zwinne.
Spis treści:
1. Wstęp do metodyk zwinnych – manifest i zasady Agile.
2. Dostarczanie oparte na wartości – ocena, planowanie, dostarczanie, weryfikowanie i monitorowanie wartości.
3. Zaangażowanie interesariuszy – współpraca i komunikacja, przywództwo (rozdział w opracowaniu).
4. Wydajność zespołów – co to jest, od czego zależy i jak ją poprawiać.
5. Planowanie adaptacyjne – koncepcje planowania, estymacja, planowanie zwinne.
6. Problemy – jakość, wykrywanie, zapobieganie i rozwiązywanie problemów.
7. Ciągłe doskonalenie – retrospekcje i udoskonalanie procesów.
8. Opis najpopularniejszych metodyk – SCRUM.

Publié dans : Logiciels
  • Soyez le premier à commenter

Agile - metodyki zwinne (ver. 2014-04-29)

  1. 1. 1. Metodyki zwinne Wprowadzenie – manifest i zasady Agile
  2. 2. Metodyki zwinne Spis treści 1. Wstęp do metodyk zwinnych – manifest i zasady Agile 2. Dostarczanie oparte na wartości – ocena, planowanie, dostarczanie, weryfikowanie i monitorowanie wartości 3. Zaangażowanie interesariuszy – współpraca i komunikacja, przywództwo 4. Wydajność zespołów – co to jest, od czego zależy i jak ją poprawiać 5. Planowanie adaptacyjne – koncepcje planowania, estymacja, planowanie zwinne 6. Problemy – jakość, wykrywanie, zapobieganie i rozwiązywanie problemów 7. Ciągłe doskonalenie – retrospekcje i udoskonalanie procesów 8. Opis najpopularniejszych metodyk – SCRUM 2014-04-29Łukasz Rzepecki 2
  3. 3. Metodyki zwinne Projekty pracownika wiedzy • Rewolucia przemysłowa (XVIII – XX w.) – jest źródłem większości idei zarządzania projektami - 3. rewolucja przemysłowa – naukowo-techniczna (formalnie trwa do dziś): wykresy Gantt’a, WBS  PMI – PMBOK (1983 r.) • Rewolucja informacyjna (od 2. połowy XX w.) – bazuje na tzw. pracownikach wiedzy: - specjaliści w danej dziedzinie - wymagana wiedza a nie tylko umiejętności - komunikowanie się i transfer wiedzy ważniejsze od “instrukcji” 2014-04-29Łukasz Rzepecki 3
  4. 4. Metodyki zwinne Praca przemysłowa vs praca wiedzy 2014-04-29Łukasz Rzepecki 4
  5. 5. Metodyki zwinne Praca przemysłowa vs praca wiedzy Praca przemysłowa Praca wiedzy Efekty pracy są widoczne Pracy nie widać Praca jest ciągła i taka sama Praca jest zmienna Nacisk na wykonywanie czynności Nacisk na tworzenie/zmienianie rzeczy Mała decyzyjność (struktury i procedury) Częste podejmowanie różnych decyzji Skupienie się na właściwych odpowiedziach Skupienie się na właściwych pytaniach Zdefiniowanie zadania Zrozumienie zadania Zarządzanie i kontrola Większa autonomia Ważniejsza ilość Ważniejsza jakość Sztywne standardy Innowacje Wydajność zgodna ze standardami Ciągła nauka i doskonalenie Pracownik kosztem Pracownik zasobem 2014-04-29Łukasz Rzepecki 5
  6. 6. Metodyki zwinne Zarządzanie projektami wiedzy • Próbowano stosować te same koncepcje i techniki z pracy przemysłowej do projektów pracowników wiedzy - Praca do wykonania często nie była tak dobrze określona jak w branży przemysłowej - Prowadziło to do niepowodzeń i frustracji • W odpowiedzi powstały koncepcje zwinnych metodyk zarządzania • Przez lata wytworzyło się wiele różnych koncepcji – pionierem branża informatyczna 2014-04-29Łukasz Rzepecki 6
  7. 7. Metodyki zwinne Manifest Agile (2001 r.) • Wytwarzając oprogramowanie i pomagając innym w tym zakresie, odkrywamy lepsze sposoby wykonywania tej pracy. W wyniku tych doświadczeń przedkładamy: - Ludzie i interakcje ponad procesy i narzędzia - Działające oprogramowanie ponad obszerną dokumentację - Współpraca z klientem ponad formalne ustalenia - Reagowanie na zmiany ponad podążanie za planem • Doceniamy to, co wymieniono po prawej stronie, jednak bardziej cenimy to, co po lewej • Deklaracja współzależności (DOI) – poszerza manifest o zastosowania w innych projektach niż IT 2014-04-29Łukasz Rzepecki 7
  8. 8. Metodyki zwinne Zasady Agile • Zadowolenie klienta poprzez szybkie dostarczanie użytecznego oprogramowania • Otwartość na zmiany, nawet w późnym etapie projektu • Działające oprogramowanie dostarczane jest często (tygodnie, nie miesiące) • Działające oprogramowanie jest głównym wskaźnikiem postępu • Regularność (stały rytm) i ciągłość pracy • Bliska, codzienna współpraca pomiędzy biznesem a zespołem • Komunikacja face-to-face jest najlepszą formą komunikacji (kolokacja) • Projekty tworzą zmotywowane jednostki, którym należy zaufać • Ciągła uwaga na doskonałość technologiczną i dobry design • Kluczowa jest prostota – sztuka maksymalizowania ilości pracy nie wykonanej • Samoorganizujące się zespoły • Regularna adaptacja do zmieniających się okoliczności 2014-04-29Łukasz Rzepecki 8
  9. 9. Metodyki zwinne Poziom skomplikowania projektów 2014-04-29Łukasz Rzepecki 9 Agile Waterfall
  10. 10. Metodyki zwinne Trójkąt ograniczeń 2014-04-29Łukasz Rzepecki 10 4 podstawowe ograniczenia każdego projektu: Zmieniając jeden z parametrów należy zmienić pozostałe, w przeciwnym razie nie dotrzymamy parametru środkowego
  11. 11. Metodyki zwinne Macierz kompromisów projektowych Parametr Ustalony (dokładnie 1) Optymalizowany ( dokładnie 1) Negocjowany (pozostałe 2) Czas X Budżet X Zakres X Jakość X Kluczowy parametr, nie podlegający żadnym negocjacjom w trakcie trwania projektu Np. realizując projekt jak najszybciej, najtaniej, jak najwięcej prac lub dbając o jakość. Te dwa parametry mogą się zmieniać o określonych granicach 2014-04-29Łukasz Rzepecki 11
  12. 12. Metodyki zwinne Kiedy stosować Agile • Klasyka Agile: - “Ruchomy cel”, np. prace badawcze - Nieznany/niedookreślony efekt końcowy • Kiedy faktycznie stosować Agile: - Cel jest znany i może być bardzo dobrze określony - …ale wiemy, że na pewno ulegnie zmianie ;) - Kiedy rezultat projektu jest bardzo trudny/kosztowny do modyfikacji (vs łatwy/możliwy do zmiany po koszcie zbliżonym do pierwotnego) • np. budowa domu, mostu, software pudełkowy 2014-04-29Łukasz Rzepecki 12
  13. 13. Metodyki zwinne Sukces realizacji projektów – duże/małe 2014-04-29Łukasz Rzepecki 13 The Standish Group: Chaos Manifesto 2013 – Think Big, Act Small • od 1985 r. • 50k projektów • 60% US, 25% EU • połowa Fortune 1000 • 20% firmy małe
  14. 14. Metodyki zwinne Sukces realizacji projektów małych 2014-04-29Łukasz Rzepecki 14 The Standish Group: Chaos Manifesto 2013 – Think Big, Act Small • od 1985 r. • 50k projektów • 60% US, 25% EU • połowa Fortune 1000 • 20% firmy małe
  15. 15. Metodyki zwinne Rodzaje metodyk zwinnych 2014-04-29Łukasz Rzepecki 15
  16. 16. Metodyki zwinne Rodzaje metodyk zwinnych • Extreme Programming (XP) - Daje techniki wytwarzania oprogramowania - Jest bardzo mało zarządzania - Trzeba łączyć ją z metodykami zarządzania • Lean - Główną zasadą jest eliminacja strat – „Wartością jest to, co klient uzna za wartościowe” - Przykładem myślenia Lean jest twierdzenie, że nie należy wykonywać wszystkich analiz na początku, bo zajdą zmiany - Może być stosowany na poziomie wytwarzania i organizacji • Scrum - Zapewnia znakomite podejście oparte na zespole - Porządkuje (priorytetyzuje) pracę - Potrzebuje dodatkowego podejścia na poziomie zarządzania projektem (np. DSDM Atern) - Często łączony z XP (Scrum zapewnia zarządzanie zespołem, a XP techniki wytwarzania) 2014-04-29Łukasz Rzepecki 16
  17. 17. Metodyki zwinne Rodzaje metodyk zwinnych • DSDM Atern (Dynamic Systems Development Method) - Najstarsza na świecie metodyka Agile, powstała w 1995 roku (PRINCE2 powstał w 1996!) - Jako jedyna w pełni opisuje zarządzanie projektami Agile - Jest w ciągłym rozwoju, a DSDM Atern jest jej najnowszą wersją • Agile Project Management - Na początku projektu tworzony jest plan wysokiego poziomu oparty o zarys wymagań i rozwiązanie widziane „z lotu ptaka” - Projekt jest realizowany w sposób iteracyjny i przyrostowy - Kolejny przyrost jest budowany w oparciu o produkt wytworzony w poprzedniej iteracji - Szczegółowy plan każdego kroku jest tworzony przez zespół, a nie Kierownika Projektu 2014-04-29Łukasz Rzepecki 17
  18. 18. Metodyki zwinne Metodyki zwinne i ich zasady • SCRUM – Transparency, Inspection, Adaptation • Extreme Programming (XP) – Simplicity, Communication, Feedback, Courage, Respect • Lean Software Development – Eliminate waste, Empower the team, Deliver fast, Optimize the whole, Build quality in, Defer decisions, Amplify learning • Kanban Development – Visualize the workflow, Limit WIP, Manage flow, Make process policies explicit, Improve collaboratively • Dynamic Systems Development Method (DSDM) • Crystal • Lean Startup 2014-04-29Łukasz Rzepecki 18
  19. 19. 2. Dostarczanie oparte na wartości Ocena, planowanie, dostarczanie i weryfikowanie
  20. 20. Metodyki zwinne Dostarczanie oparte na wartości • Value-Driven Delivery – to kluczowy komponent każdej metodyki zwinnej • Powodem realizacji każdego projektu jest wygenerowanie jakiejś wartości biznesowej • Ryzyka projektowe (zagrożenia), to anty-wartości • Maksymalizacja wartości wymaga redukcji ryzyka • Szybkie dostarczanie wartościowych elementów: - eliminuje ryzyko porażki - buduje zaufanie sponsora projektu (udowadnia możliwość realizacji projektu) - angażuje zespół 2014-04-29Łukasz Rzepecki 20
  21. 21. Metodyki zwinne Tematyka • Ocena wartości • Planowanie wartości • Dostarczanie wartości • Weryfikowanie wartości • Śledzenie i raportowanie wartości 2014-04-29Łukasz Rzepecki 21
  22. 22. Ocena wartości ROI, NPV, IRR
  23. 23. Metodyki zwinne Ocena wartości • Projekty biznesowe najlepiej oceniać za pomocą narzędzi finansowych, takich jak: - ROI – zwrot z inwestycji - NPV – bierząca wartość netto - IRR – wewnętrzna stopa zwrotu • W niektórych przypadkach, gdy projekt nie generuje bezpośrednio przychodów, można oszacować koszty nie zrealizowania projektu • W ostateczności projekt można uznać za niezbędny i nie szacować jego wartości 2014-04-29Łukasz Rzepecki 23
  24. 24. Metodyki zwinne Wskaźniki finansowe • Zwrot z inwestycji (ROI) - ROI = 0, gdy przychody z projektu pokrywają jego koszty - To suma wygenerowanych przychodów minus koszty (należy uwzględnić infalcję i ew. koszty oprocentowania pożyczek) • Wartość bieżąca netto (NPV) - Wartość pieniądza w czasie zmienia się (pieniądze w przyszłości będą mniej warte niż obecnie) - NPV określa aktualną wartość przyszłych przychodów - Pozwala określić bliższy prawdzie czas zwrotu i wartość inwestycji • Wewnętrzna stopa zwrotu (IRR) - Oznacza stopę dyskonta, przy jakiej NPV=0 - Projekt jest opłacalny gdy IRR > oprocentowanie 2014-04-29Łukasz Rzepecki 24
  25. 25. Planowanie wartości Straty (strumień wartości), mapa drogowa, ryzyko
  26. 26. Metodyki zwinne Planowanie wartości • Karta projektu - Powinna zawierać odpowiedź na W5H: What, Why, Who, When, How – z naciskiem na How - Jak zamiany będą zatwierdzane i porządkowane w backlogu po zatwierdzeniu? - Mniejsze znaczenie ma co będzie wykonane, bardziej jak • Mapowanie strumienia wartości - Ilustruje przepływ informacji wymaganych do zrealizowania procesu - Pomaga ustalić miejsca strat – marnowania czasu i opóźnień - Efektywność procesu = czas przynoszący realną wartość / łączny czas pracy w danym procesie 2014-04-29Łukasz Rzepecki 26
  27. 27. Metodyki zwinne Mapowanie strumienia wartości 2014-04-29Łukasz Rzepecki 27
  28. 28. Metodyki zwinne Straty - rodzaje • Częściowo wykonana praca • Dodatkowy proces • Dodatkowe funkcjonalności • Przełączanie sie między zadaniami • Oczekiwanie • Ruch • Wady 2014-04-29Łukasz Rzepecki 28
  29. 29. Metodyki zwinne Straty – typowe w IT • Kod oczekujący na testy • Wymagania czekające na implementację • Tworzenie nigdy nie używanej dokumentacji • Nadmiarowe, niepotrzebne akceptacje • “Wodotryski” i zbędne features w kodzie • Technologiczne nice-to-haves • Praca przy wielu projektach równocześnie (switching) • Czekanie na ocenę/przegląd prototypów/dokumentów • Czekanie na zatwierdzenie dokumentów • Komunikacja przy zespołach rozproszonych • Błędy w specyfikacji wymagań wymagające naprawy • Wady w oprogramowaniu 2014-04-29Łukasz Rzepecki 29
  30. 30. Metodyki zwinne Porządkowanie wg wartości dla klienta • Aby projekt przynosił jak najszybciej wartość dla klienta niezbędne jest poznanie co to dla niego oznacza – zaangażowanie klienta • Każda metodyka zwinna ma swój odpowiednik, np.: - Scrum – product backlog - FDD – feature list - DSDM – prioritized requirements list • Modele porządkowania: - Priorytet wysoki/średni/niski – mało efektywne - MoSCoW – Must/Schould/Could have, Would like to have but not… - Monopoly Money – rozdział budżetu na wymagania przez sponsora - Metoda 100 punktów – każdy interesariusz ma dowolność w głosach - Analiza Kano – Exciters/Satisfiers/Dissatisfiers/Indifferent - Model porządkowania wymagań – ocena 1-9 korzyści z posiadania danej funkcjonalności, straty za jej nie posiadanie (klient) oraz kosztu i ryzyka (zespół), następnie wg ustalonych wag porządkuje się wymagania 2014-04-29Łukasz Rzepecki 30
  31. 31. Metodyki zwinne Lista rankingowa • Bardzo prosta ale skuteczna metoda sortowania wymagań wg kolejności oznaczającej wartość dla klienta - Eliminuje stratę czasu na zastanawianie się nad porządkowaniem • Lista może określać po których wymaganiach następuje wydanie oraz które aktualnie się nie mieszczą w budżecie (pod kreską, na później) • Pomaga zarządzać zmianą, klient decyduje w którym miejscu na liście umieścić daną zmianę • Nowe wymagania umieszczone wyżej spychają pod kreskę nie mieszczące się w budżecie • Używa się jednej listy work-to-be-done bez rozdziału na źródło (tzn. oryginalny backlog + zmiany + błędy + nowe) 2014-04-29Łukasz Rzepecki 31
  32. 32. Metodyki zwinne Mapa drogowa projektu • To wizualny przegląd planu wydań produktu • Story Maps – pomagają wybrać i zgrupować wymagania do poszczególnych wydań: - Backbone – niezbędna funkcjonalność, która musi być - Walking skeleton – najprostszy system, który będzie działał - Dodatowe funkcjonalności – wszystkie pozostałe, posortowanie wg ważności (mniej/bardziej opcjonalne) 2014-04-29Łukasz Rzepecki 32
  33. 33. Metodyki zwinne Story Map #1 2014-04-29Łukasz Rzepecki 33
  34. 34. Metodyki zwinne Story Map #2 2014-04-29Łukasz Rzepecki 34
  35. 35. Metodyki zwinne Zarządzanie ryzykiem • Ryzyko - to zdarzenie lub okoliczności które mogą się wydarzyć i wpłynąć na projekt – ryzyka mogą być zarówno negatywne (zagrożenia) jak i pozytywne (możliwości) • Ryzykiem należy zarządzać i analogicznie do jak najszybszego dostarczania wartości w projekcie należy również jak najszybciej identyfikować i przeciwdziałać ryzykom zagrażającym projektowi • Wymagania mogą mieć określony poziom ryzyka – te o wyższym ryzyku powinno się realizować wcześniej • Backlog powinien zawierać również akcje zapobiegające zidentyfikowanym ryzykom (poziom ryzyka można określić jako wartość/wpływ x prawdopodobieństwo) 2014-04-29Łukasz Rzepecki 35
  36. 36. Metodyki zwinne Zarządanie ryzykiem 2014-04-29Łukasz Rzepecki 36
  37. 37. Kontraktowanie Modele zawierania umów na projekty zwinne
  38. 38. Metodyki zwinne Kontraktowanie • Projekty zwinne, w odróżnieniu od tradycyjnych, starają się określić dostępne zasoby i czas oraz pozostawić elastyczną funkcjonalność, starając się dostarczyć produkt o jak najlepszej możliwej jakości • Idea możliwości nie dostarczenia pełnej funkcjonalności czy też braku dokładnej wyceny całego projektu może być przez niektórych nie do zaakceptowania • Szczegółowy kosztorys wymaga opracowania wnikliwej analizy i rzetelnej specyfikacji, co również jest procesem czasochłonnym i kosztownym • Kontrakt i tak musi zawierać metody na nieprzewidziane przypadki: zmiany zarówno uzasadnione jak i nieprzewidziane, problemy techniczne, możliwość niepowodzenia – w metodykach zwinnych współpraca z klientem (zaufanie) jest ważniejsza od negocjowania umów 2014-04-29Łukasz Rzepecki 38
  39. 39. Metodyki zwinne Kontraktowanie • W zwinnych metodykach ważniejsze jest skupienie się na dostarczeniu jak najszybciej wartościowego produktu niż debaty jak będą negocjowane zmiany i jakie tak na prawdę są kryteria akceptacyjne • Wymagają również od biznesu większego zaangażowania się w trakcie poszczególnych iteracji - Ciągłe ponowne porządkowanie wymagań - Szacowanie wartości żądanych zmian w stosunku do pozostałej pracy • Typy kontraktów zwinnych: - DSDM – zapłata za spełnienie testów a nie wykonanie specyfikacji - Pieniądze za nic, Zmiany za darmo - Stała cena uzależniona od wyników - Pakiety o stałej wartości 2014-04-29Łukasz Rzepecki 39
  40. 40. Metodyki zwinne Metodyki zwinne vs klasyczne 2014-04-29Łukasz Rzepecki 40
  41. 41. Metodyki zwinne Money for Nothing and Change for Free • Na starcie projektu określona jest stała cena (fixed-price) za pracę do wykonania oraz stawka za wszelkie prace dodatkowe • Klauzula “zmiany za darmo” - Jeśli klient jest zaangażowany, PO może porządkować backlog i dokonywać zmian, o ile całkowita praca się nie zwiększa (wymagania o mniejszej ważności są zdejmowane lub upraszczane) • Klauzula “pieniądze za nic” - Opcja wcześniejszego zakończenia kontraktu w dowolnym momencie przez klienta, kiedy uzna, że produkt spełnia jego oczekiwania - Klient płaci np. 20% pozostałej, niewykonanej wartości kontraktu • Klient może korzystać z tych zapisów tylko jeśli współpracuje aktywnie z zespołem w trakcie każdej iteracji • Brak współpracy oznacza, że klauzule tracą ważność - Każda zamiana będzie traktowana jak praca dodatkowa - Klient musi zapłacić za (a dostawca wykonać) cały kontrakt 2014-04-29Łukasz Rzepecki 41
  42. 42. Metodyki zwinne Money for Nothing and Change for Free 2014-04-29Łukasz Rzepecki 42
  43. 43. Metodyki zwinne Stała cena uzależniona od wyników • Kontrakt typu fixed-price, w którym obie strony dzielą się ryzykiem – potencjalnymi zyskami i kosztami • Ustala się różną stawkę godzinową w zależności od szybkości zakończenia projektu: - Wcześniej – dostawca przepracuje mniej ale po wyższej stawce godzinowej (klient sumarycznie zapłaci mniej) - Na czas – jak w standardowym kontrakcie - Później – dostawca przepracuje więcej ale po niższej stawce (klient zapłaci więcej) • Jeśli projekt się wydłuży to obie strony tracą pieniądze i będą niezadowolone – wykonawca przeznaczy więcej zasobów po niższej stawce a klient musi zapłacić więcej 2014-04-29Łukasz Rzepecki 43
  44. 44. Metodyki zwinne Pakiety o stałej cenie • Ustalenie stałej ceny za poszczególne fragmenty projektu • Łagodzi ryzyko niedoszacowania i przeszacowania poprzez zawężanie zakresu pracy i kosztów do poszczególnych modułów • Dostawca ma prawo reestymować pozostałe pakiety, gdy pojawiają się nowe informacje lub nowe ryzyka • Dostawca nie musi wliczać dużego marginesu w budżecie na ryzyko, gdyż jest ono podzielone na mniejsze pakiety • Klient może również wprowadzać zmiany do nierozpoczętych pakietów i ew. zmieniać priorytety lub zakres prac 2014-04-29Łukasz Rzepecki 44
  45. 45. Monitorowanie i raportowanie wartości Narzędzia
  46. 46. Metodyki zwinne Narzędzia • Klasyczne harmonogramy (Gantt) - Są skomplikowane i nieprzyjazne – nieczytelne, trudne do zmiany - Ograniczają liczbę osób, które mają na nie wpływ - Zwykle PM aktualizuje harmonogram sam dla siebie - Narzucają sposób i dokładność raportowania • Narzędzia zwinne (np. tablice zadań i Kanban) - Nie zapewniają integralności danych i udokumentowania przebiegu prac – ale czy to kiedykolwiek było potrzebne? - W niektórych środowiskach niezbędne jest prowadzenie równolegle sformalizowanej dokumentacji - Są zrozumiałe przez wszystkich i dostępne dla wszystkich - Ułatwiają prace grupową i wymianę informacji, są przyjazne 2014-04-29Łukasz Rzepecki 46
  47. 47. Metodyki zwinne Limitowanie WIP • Duże poziomy “pracy w toku” powodują szereg problemów: - Konsumują zainwestowane pieniądze i nie przynoszą żadnych korzyści (zwrotu z inwestycji) - Ukrywają wąskie gardła i problemy z wydajnością (gdy wszystko jest w toku nie wydać gdzie jest faktycznie problem – na jakim etapie pracy a wszyscy są zajęci) - Zwiększają ryzoko konieczności wykonania dużej części pracy od nowa (np. zmiany wpływające na dużą liczbę WIP) • Celem metodyk zwinnych jest eliminowanie WIP • Jedną z metod jest stosowanie tablic Kanban, które limitują ilość pracy w projekcie na różnych etapach • Celem jest optymizacja przepustowości w projekcie a nie wykorzystania zasobów! • Prawo Little – czas realizacji zadań jest proporcjonalny do rozmiaru kolejki zadań w toku 2014-04-29Łukasz Rzepecki 47
  48. 48. Metodyki zwinne WIP – Kanban #1 2014-04-29Łukasz Rzepecki 48
  49. 49. Metodyki zwinne WIP – Kanban #2 2014-04-29Łukasz Rzepecki 49
  50. 50. Metodyki zwinne Weryfikowanie wartości • Rezultaty projektów IT są nieuchwytne, nienamacalne • Bardzo często odbiorca informacji inaczej ją interpretuje (występuje luka semantyczna) - Istotne jest zidentyfikowanie luki jak najwcześniej aby wyeliminować ryzyko wykonywania pracy od nowa • W weryfikowaniu wartości dla klienta pomocne jest porządkowanie co iterację pozostałych wymagań – daje to obraz co jest istotne dla klienta i jaka wg niego jest definicja sukcesu • Częste demonstracje wykonanych funkcjonalności są kluczowe w projektach IT - Dopiero wtedy pojawiają się prawdziwe wymagania: IKIWISI (I’ll Know It When I See It) - Eliminują lukę semantyczną 2014-04-29Łukasz Rzepecki 50
  51. 51. Metodyki zwinne Model luk wg ParasuramanaModel luk wg Parasuramana 2014-04-29Łukasz Rzepecki 51
  52. 52. Metodyki zwinne Analiza luk jakości Analiza luk jakości – przykład dla fi rmy  opracowującej projekty 2014-04-29Łukasz Rzepecki 52 Jaka jest luka jakości gdy specyfikacja powstaje wiele miesięcy przed realizacją projektu i/lub tworzy ją wręcz inny podmiot niż wykonawca (np. SIWZ)?
  53. 53. Metodyki zwinne Prawo Little’a 2014-04-29Łukasz Rzepecki 53
  54. 54. Metodyki zwinne Wartość wypracowana (Earned Value) • Krzywa-S – pokazuje wydatki w projekcie (np. nakład pracy w czasie) ale nie postęp wykonania projektu • Wykres Gantta pokazuje postęp w harmonogramie ale nie stopień wykorzystania budżetu • Wartość wypracowana (EV) – zaakceptowane prace - Umożliwia porównanie bieżącej wydajności (zrealizowanej pracy) do zaplanowanej, w określonym punkcie czasu - Kluczowa jest jakość wstępnego planu (wartość wymagań) - Uwaga! W projektach zwinnych plany się zmieniają i utrudniają wykorzystanie metody EV do weryfikowania wydajności pracy ale jest to dobre narzędzie do wizualizacji i prognozowania 2014-04-29Łukasz Rzepecki 54
  55. 55. Metodyki zwinne Earned Value 2014-04-29Łukasz Rzepecki 55
  56. 56. Metodyki zwinne Wykres skumulowanych przepływów (CFD) • Wykres warstwowy pokazujący na jednym wykresie całkowitą pracę w projekcie, na którą składają się: - Praca pozostała do wykonania (backlog produktu) - Praca w toku (WIP) - Praca zakończona (EV) • Wykres pomaga też oszacować długość cyklu realizacji zadań poprzez analizę wartości pracy w toku (zgodnie z prawem Little są to wartości proporcjonalne) 2014-04-29Łukasz Rzepecki 56
  57. 57. Metodyki zwinne CFD 2014-04-29Łukasz Rzepecki 57
  58. 58. Metodyki zwinne Wąskie gardła i teoria ograniczeń • Wykres CFD pracy w toku można podzielić na poszczególne aktywności i uszeregować warstwy wg kolejności działań • Jeśli któryś z obszarów się rozszerza, to znaczy, że wąskie gardło jest w warstwie poniżej • Umożliwia to wykrycie problemu w skali całej organizacji bez drobiazgowego analizowania każdego obszaru 2014-04-29Łukasz Rzepecki 58
  59. 59. Metodyki zwinne CFD – wąskie gardło 2014-04-29Łukasz Rzepecki 59
  60. 60. Metodyki zwinne Wykres spalania ryzyka • Na początku projektu tworzy się listę ryzyk, analogicznie do product backloga • Zaangażowani powinni być wszyscy interesariusze i zespół • Dla każdego ryzyka określa się: - Koszt jego wystąpienia (wartość finansowa lub w skali punktowej, np. mały 1 – duży 3) - Prawdopodobieństwo wystąpienia (procentowo lub również w skali, np. 0-3) - Sumarycznie każde ryzyko ma określoną wartość (np. 0-9) • Co iterację lub ustalony okres czasu (np. miesięcznie) dokonuje się weryfikacji ryzyk i rysuje wykres spalania ryzyka – analogicznie jak burndown chart dla wymagań 2014-04-29Łukasz Rzepecki 60
  61. 61. Metodyki zwinne Wykres spalania ryzyka 2014-04-29Łukasz Rzepecki 61
  62. 62. 3. Zaangażowanie interesariuszy Współpraca i komunikacja, przywództwo Rozdział w opracowaniu
  63. 63. Metodyki zwinne Interesariusze projektu • To wszystkie osoby i grupy, na które będą miały wpływ na projekt oraz których projekt będzie dotyczył • W projektach pracownika wiedzy rezultaty prac są często nienamacalne i nieuchwytne – prowadzi to do powstawania luki semantycznej w zrozumieniu przez wykonawcę intencji klienta • Zasady angażowania interesariuszy: - Istotne jest zidentyfikowanie odpowiednich interesariuszy, którzy pomogą w zrozumieniu wymagań i celów - Zaangażowanie powinno być widoczne i monitorowane - Aktywne zarządzanie zainteresowaniem – świętowanie postępów - Częste dyskusje co oznacza “done” – eliminacja luki - Eksponowanie progresu (dema) i możliwości oraz limitów zespołu - Dyskutowanie estymat i prognoz – prawdziwa wydajność projektu 2014-04-29Łukasz Rzepecki 63
  64. 64. Metodyki zwinne Wspólne zrozumienie Eliminowanie luki semantycznej poprzez: • Makiety – szybki sposób na wizualizację produktu i zrozumienie przez wszystkich interesariuszy produktu • Personas – przykładowi interesariusze projektu, np. różni użytkownicy (opis, wartości dla nich, zainteresowania) • Historyjki, backlog - Często mają formę “Jako <Rola> Chcę <Funkcjonalność> Aby <Korzyść>” (ważne kto i dlaczego) lub Given, When, Then - Powinny być INVEST, tzn. Independent, Negotiable, Valuable, Estimatable, Small, Testable - Obejmują Pionowy zakres funkcjonalny - Mogą być grupowane pionowo w Features a te w Epics jak również poziomo w Themes oraz planowane w Story Maps 2014-04-29Łukasz Rzepecki 64
  65. 65. Metodyki zwinne Komunikacja z interesariuszami 2014-04-29Łukasz Rzepecki 65
  66. 66. Metodyki zwinne Radiatory informacji • Radiatory • Burn Down, Burn Up, CFD • Velocity 2014-04-29Łukasz Rzepecki 66
  67. 67. Metodyki zwinne Krytyczne umiejętności miękkie • Negocjowanie • Aktywne słuchanie - Wewnętrzne - Skupione - Globalne • Efektywne spotkania • Rozwiązywanie konfliktów • Partycypacyjne metody podejmowania decyzji 2014-04-29Łukasz Rzepecki 67
  68. 68. 4. Wydajność zespołów Co to jest, od czego zależy i jak ją poprawiać
  69. 69. Metodyki zwinne Tematyka • Wydajność zespołów - Przywództwo adaptacyjne - Inteligencja emocjonalna - Budowanie umocowanych i wydajnych zespołów • Praktyka - Codzienne standupy - Przestrzeń pracy - Narzędzia - Coaching i mentoring - Burza mózgów - Zespoły rozproszone 2014-04-29Łukasz Rzepecki 69
  70. 70. Wydajność zespołów Na czym polega i od czego zależy wydajność zespołów
  71. 71. Metodyki zwinne Ludzie i interakcje ponad procesy i narzędzia • COCOMO (I, II) – popularny model estymacji oprogramowania • 7 czynników mających wpływ na koszt, a w nich: - Czynniki ludzkie – 33% - Produkt – 10% - Procesy i narzędzia – 3% • Wpływ czynników ludzkich jest 10x większy niż wpływ stosowanych (lub nie) procesów i narzędzi • Sprawny zespół jakoś sobie poradzi bez żadnych procesów i narzędzi, najlepsze T&T nic nie poradzą w sytuacji niedoświadczonego i niezgranego zespołu 2014-04-29Łukasz Rzepecki 71
  72. 72. Metodyki zwinne Przywództwo adaptacyjne Formowanie się zespołów zwykle obejmuje cykl: • Formowanie (forming) – grupa uczy się o sobie - Kierowanie (directing) – co jest do zrobienia, pomoc w problemach • Burza (storming) – wewnętrzna rywalizacja w pseudozespole - Coaching – główny cel, to rozwiązywanie konfliktów • Normowanie (norming) – potencjalny zespół, uczy się sprawnej współpracy ze sobą - Wsparcie (supporting) – zespół pracuje wg własnych reguł, rola wspierająca, egzekfowanie reguł zespołu, stawianie wysokich celów • Sprawne działanie (performing) – zespół pracujący jak jeden, autonomiczny, umocowany, samozarządzający i regulujący się - Delegowanie (delegating) – lider stawia zespołowi wyzwania a nie zadania, problemy do rozwiązania wewnętrznie przez zespół 2014-04-29Łukasz Rzepecki 72
  73. 73. Metodyki zwinne Formowanie się zespołów 2014-04-29Łukasz Rzepecki 73
  74. 74. Metodyki zwinne Inteligencja emocjonalna • To zdolność do zaóważania (identyfikowania), oceny (szacowania) i wpływania na emocje: własne, innych, grup • Dobra metoda na elastyczne zarządzanie i przywództwo zmiennymi zespołami Etapy: • Samoświadomość (self: recognize) - Zrozumienie własnych emocji (co mnie denerwuje, frustruje, cieszy, zadowala itp.) i umiejętność ich prawidłowej oceny - Pewność siebie - mamy wpływ na własne emocje i na to jak na nie reagujemy (np. czy pozwalamy aby coś nas dalej denerwowało czy jakoś zareagujemy) 2014-04-29Łukasz Rzepecki 74
  75. 75. Metodyki zwinne Inteligencja emocjonalna • Samokontrola (self: regulate) - Sumienność - Zdolność adaptacji - Motywacja • Nastrój i zachowanie liderów wpływa na wszystkich innych! • Świadomość społeczna (others: recognize) - Empatia - rozumienie otoczenia (np. kiedy jakieś problemy mają człokowie zespołu) • Umiejętności społeczne (others: regulate) - Wpływanie, inspirowanie, przewodzenie i rozwijanie innych tak aby pomóc w ich pracy i współpracy zespołowej 2014-04-29Łukasz Rzepecki 75
  76. 76. Metodyki zwinne Empowerment Samo-organizujące się zespoły: • Wykorzystanie wiedzy zespołu jak najlepiej wykonać daną pracę i naturalnej zdolniści ludzi do rozwiązywania złożonych problemów • Przedstawianie celów a nie zadań wraz ze sposobem ich wykonania (to zespoł jest ekspertem) • Pozwolenie zespołom na własną organizację codziennej pracy (w ramach podstawowych reguł panujących w organizacji) • Delegowanie odpowiedzialności za sukces projektu na zespół w celu osiągnięcia założonych celów (downward serving) • Celem lidera jest ochrona przed czynnikami zewnętrznymi, eliminowanie przeszkód, komunikowanie wizji, wsparcie… 2014-04-29Łukasz Rzepecki 76
  77. 77. Metodyki zwinne Empowerment Samo-zarządzające się zespoły: • Zespół wytwarza wewnętrzne normy i podejmuje lokalne decyzje (technologia, priorytety, estymacje) • Zespól ma duża dowolność – ale w granicach sprintu! • Złe decyzje (np. technologiczne, złe estymaty) są dyskutowane na retrospekcji w celu zapobiegnięcia podobnym sytuacjom w przyszłych sprintach • Samoorganizacja i samozarządzanie to tylko cele! • Na początku projektu żaden zespół taki nie jest, może to być długoterminowym celem zespołu postawionym w fazie normowania się zespołu. 2014-04-29Łukasz Rzepecki 77
  78. 78. Metodyki zwinne Budowanie wydajnych zespołów • Zespół powinien być niewielki (do 12 osób) co ułatwia budowanie wzajemnych relacji i bezpośrednią komunikację • Członkowie zespołu powinni mieć komplementarne umiejętności i rozpowszechniać je w zespole (umożliwienie zamiany ról, wykonywanie różnych zadań) • Cele członków zespołu powinny być spójne (zrównane) z celami projektu - Indywidualne zobowiązanie do osiągnięcia wspólnego celu - Świadomość każdego jak cele postawione grupie będą mierzalne i w jaki sposób będą realizowane przez zespół - Wzajemna odpowiedzialność członków zespołu za rezultaty 2014-04-29Łukasz Rzepecki 78
  79. 79. Metodyki zwinne Motywowanie zespołów • Wynagrodzenie jest za pojawianie się w pracy • Produktywność w pracy każdego jest inna i zależy w istotnym stopniu od zmotywowania i zaangażowania • Etapy produktywności: - Podważanie i opór (-) - Pasywna zgodność (0) - Aktywne uczestnictwo (+) - Oddanie i poświęcenie (++) - Pasja i wprowadzanie innowacji (+++) • Kluczowe jest zrównanie celów indywidualnych członków zespołu z celami projektu 2014-04-29Łukasz Rzepecki 79
  80. 80. Metodyki zwinne Wspólne cele 2014-04-29Łukasz Rzepecki 80
  81. 81. Metodyki zwinne Motywowanie zespołów • Zrozumienie zarówno osobistych czynników motywujących (i demotywujących) poszczególne osoby jak i cały zespół (np. poprzez rozmowy 1-1) • W większości projektów jest możliwość zaspokojenia niektórych celów osobistych, choćby tymczasowo • Wyjaśnienie przez kogoś z wysokiego szczebla organizacji dlaczego projekt jest ważny dla firmy, jakie są związane z nim nadzieje (wizja) istotnie może wpłynąć na zaangażowanie • Istotne jest świętowanie sukcesów zespołów • Ew. nagrody dla całych zespołów a nie indywidualne 2014-04-29Łukasz Rzepecki 81
  82. 82. Praktyka W jaki sposób funkcjonują wydajne zespoły
  83. 83. Metodyki zwinne Codzienne stand-upy • To kluczowy element w praktykach zwinnych • Krótkie (max. 10-15 min.) codzienne spotkanie mające na celu wyeliminowanie konieczności innych spotkań • To spotkania zespołu dla zespołu (nie dla kierownictwa) • Każdy członek zespołu po kolei odpowiada na 3 pytania: - Co zrobiłem od poprzedniego spotkania? - Co planuję zakończyć dzisiaj? - Czy są jakieś blokady lub zależności utrudniające pracę? • Wszelkie rozpoczynające się dyskusję (np. jak coś rozwiązać, sprawy techniczne) należy odłożyc na bok (np. indywidualna rozmowa zaangażowanych osób po stand- upie) 2014-04-29Łukasz Rzepecki 83
  84. 84. Metodyki zwinne Coaching i mentoring • Pomaga zespołom utrzymać kierunek działań, przezwyciężać problemy i ciągle polepszać umiejętności • Powinien być realizowany równolegle indywidualne i z całym zespołem • Coaching zespołowy ma miejsce głównie na granicach sprintu (planowanie, przegląd/demo, retrospekcja) • Coaching indywidualny głównie w trakcie sprintu - Spotkania 1-1 umożliwiające prywatną rozmowę na temat ew. problemów i skarg – szczere z pozytywnym nastawieniem i poszanowaniem do zgłaszanych uwag 2014-04-29Łukasz Rzepecki 84
  85. 85. Metodyki zwinne Coaching i mentoring Pomocne działania: • Spotkanie się w pół drogi – nie naciskać do osiągnięcia bezpośrednio punktu końcowego (“bo tak ma być”) ale wymyślać rozwiązania pośrednie • Zagwarantowanie poufności – poprzez jej dochowanie • Współpraca z innymi lidierami – mająca na celu rozwiązywanie problemów między zespołami i spójną komunikację w organizacji • Pozytywne traktowanie – nawet jeśli kogoś nie lubimy należy to odłożyć na bok aby pomóc danej osobie 2014-04-29Łukasz Rzepecki 85
  86. 86. Metodyki zwinne Burza mózgów Pomagają zidentyfikowac różne możliwości, rozwiązywać problemy, znajdywać drogi do ulepszeń: • Quiet writing – każdy członek zespołu w określonym czasie spisuje pomysły indywidualne, eliminuje wpływ i oddziaływanie innych • Round-Robin – każdy po kolei zgłasza pomysł, zesół musi być komfortowy z dzieleniem się pomysłami przed sobą • Free-for-All – każdy kto chce zgłasza spontanicznie nowy pomysł, stymuluje dyskusję, zespołowe wetowanie i rozwijanie pomysłów 2014-04-29Łukasz Rzepecki 86
  87. 87. Metodyki zwinne Burza mózgów Pomysły należy następnie uporządkować: • MoSCoW – technika oparta o wartość: - Must have - Should have - Could have - Would like to have, but not this time • Głosowanie – każdy dostaje określoną liczbę głosów (dla każdego w wysokości ok. 20% z liczby pomysłów) i przydziela pomysłom głosy wg własnego uznania (można przydzielić więcej niż 1 głos dla danego pomysłu) 2014-04-29Łukasz Rzepecki 87
  88. 88. Metodyki zwinne Przestrzeń pracy • Metodyki zwinne rekomendują interakcje face-to-face oraz kolokowanie całych zespołów we wspólnym miejscu pracy, co poprawia pracę grupową i dzielenie się informacjami • Caves and common – otwarta przestrzeń pracy oraz miejsca na prywatne rozmowy lub tymczasową pracę w odizolowaniu umożliwiającą skupienie się i koncentrację • Komunikacja osmotyczna – to użyteczne informacje przepływające mimowolnie między członkami zespołu podczas zwykłych konwersacji • Milcząca wiedza (tacit knowledge) – niepisana wiedza ale funkcjonująca w zespole/firmie (na głośno zadane pytanie ktoś z otoczenia prawdopodobnie będzie znał odpowiedź) 2014-04-29Łukasz Rzepecki 88
  89. 89. Metodyki zwinne Zespoły rozproszone • To standard, nie wyjątek (ok. połowa zespołów zwinnych jest rozproszona – tzn. przynajmniej 1 osoba pracuje zdalnie) • Niezbędne znalezienie substytutów dla korzyści z współpracy face-to-face, komunikacji osmotycznej i milczącej wiedzy oraz lepszych relacji w zespole • Wykorzystanie narzędzi komunikacji on-line • Przynajmniej pierwsze spotkanie powinno obejmować cały zespół • Problem - osoby poza zasięgiem wzroku łatwiej ignorować, mają mniejszy wpływ i poważanie 2014-04-29Łukasz Rzepecki 89
  90. 90. Metodyki zwinne Narzędzia • Low-Tech, High-Touch - Wykorzystanie realnych namacalnych i prostych przedmiotów polepsza komunikację i pracę grupową - Niechęć do korzystania ze skomplikowanych narzędzi - Najczęściej wykorzystywane: tablica z zadaniami (to do, doing, accepted), user stories zapisane na karteczkach, karty do planning pokera • Narzędzia on-line - Pomocne przy pracy w zespołach rozproszonych - Np. wirtualna tablica, strony wiki, webowe systemy zarządzania 2014-04-29Łukasz Rzepecki 90
  91. 91. 5. Planowanie adaptacyjne Koncepcje planowania, estymacja, planowanie zwinne
  92. 92. Metodyki zwinne Tematyka – narzędzia i techniki • Koncepcje planowania - Timeboxing - Stopniowe doprecyzowanie - Proces na miarę - Minimalna funkcjonalność nadająca się do sprzedaży (MMF) • Estymacja - Wideband Delphi, Planning Poker - Czas idealny - Szacowanie porównawcze, Story Points - Estymacja przez podobieństwo • Planowanie zwinne - Planowanie iteracji i wydań 2014-04-29Łukasz Rzepecki 92
  93. 93. Metodyki zwinne Tematyka – wiedza i umiejętności • Koncepcje planowania - Analiza oparta o wartość - Dekompozycja i porządkowanie oparte o wartość - Gry Agile • Estymacja - Szacowanie czasu, budżetu i kosztów - Zasady kosztorysowania • Planowanie zwinne - Karta projektu 2014-04-29Łukasz Rzepecki 93
  94. 94. Koncepcje planowania Timeboxing, analiza oparta o wartość, gry Agile
  95. 95. Metodyki zwinne “Mapa nie jest terytorium” (A. Korzybski) • Celem metod zwinnych jest eliminacja pracy nie przynoszącej bezpośrednio wartości biznesowej • Planowanie z tego punktu widzenia jest trwonieniem czasu (waste – odpad) • Celem każdej metodyki jest eliminacja odpadów • Z punktu widzenia wydajności najlepiej byłoby zaplanować projekt w całości raz i do tematu nie wracać • Jest to nieefektywne dla projektów angażujących w większości tzw. pracowników wiedzy (knowledge worker) • Powinno się zaplanować replanning i zaakceptować, że wstępny plan na pewno będzie zawierał wady 2014-04-29Łukasz Rzepecki 95
  96. 96. Metodyki zwinne Timeboxing • Dzielenie czasu pracy na krótkie etapy o stałej długości • Zespół bierze do wykonania w iteracji tyle pracy ile uważa, że będzie w stanie wykonać (zwykle na 2 tygodnie) • Niewykonana praca wraca na koniec iteracji do backloga • Pomaga w ocenie rezultatów, zbierania informacji zwrotnych, kontrolowaniu kosztów i ryzyka • Architectural spike – okres czasu dedykowany na PoC • Narzędzie służące motywowaniu i skupieniu się na zakańczaniu pracy • Ludzie mają skłonność do rozpraszania się i wykonywania wielu rzeczy naraz nieefektywnie – analogicznie w projektach • Pomaga walczyć z prawem Parkinsona (praca zajmie cały przydzielony czas) i syndromem studenta (praca na deadline) 2014-04-29Łukasz Rzepecki 96
  97. 97. Metodyki zwinne Stopniowe doprecyzownie (progressive elabor.) • Proces uszczegółowania gdy pojawiają się nowe informacje i detale • Na początku projektu planuje i estymuje się wstępnie pracę do wykonania • Szczegółowo planuje się tylko najbliższe iterację, kolejne zawierają coraz mniej detali • Poziom czasu poświęconego na fazy projektu: - Wstępne planowanie – 10-15% - Wydanie wersji (iteracje) – 80-85% - Zamknięcie – 5% 2014-04-29Łukasz Rzepecki 97
  98. 98. Metodyki zwinne Dopasowanie procesu (process tailoring) • Ma na celu indywidualne dopasowanie procesów do aktualnej sytuacji w projekcie i w organizacji • Zmiany następują w efekcie retrospekcji w projekcie • Spotkanie na koniec iteracji z zespołem i biznesem mające na celu odpowiedź na 3 pytania: - Co idzie dobrze? - Które obszary wymagają ulepszenia? - Co powinno być realizowane w inny sposób? • Problemy są rozwiązywane poprzez burzę mózgów • Rozwiązania są testowane i analizowane przez kilka iteracji a następnie wdrażane na stałe lub zmieniane 2014-04-29Łukasz Rzepecki 98
  99. 99. Metodyki zwinne Minimally Marketable Feature (MMF) • Każde wydanie oprogramowania powinno być sensowne, użyteczne i wartościowe dla klienta • MMF oznacza rozwiązanie kompletne na tyle aby było użyteczne dla klientów/użytkowników ale na tyle małe, że nie reprezentuje całego projektu • Udostępnia biznesowi korzyści zanim cały projekt będzie gotowy • Umożliwia szybszy zwrot z inwestycji podczas gdy zespół kontynuuje rozwijanie kolejnych funkcjonalności • Np. ołówek: MMF – pozostawia ślad na papierze, dodatkowa funkcjonalność – gumka do mazania itp. 2014-04-29Łukasz Rzepecki 99
  100. 100. Metodyki zwinne Analiza oparta o wartość • Na każdym etapie projektu zadajemy pytania: - Jaka jest wartość biznesowa danej funkcjonalności? - Które funkcjonalności mają najwyższą wartość biznesową? • Następnie porządkujemy pracę tak aby dostarczyć w pierwszej kolejności funkcjonalności o najwyższej wartości biznesowej • Należy wziąść pod uwagę również koszt ich wytworzenia (element o wartości 5 ale kosztujący 4 ma niższą wartość biznesową od elementu o wartości 3 kosztującego 1) • Uwaga na zależności – realizacja zadań o niskiej wartości może być niezbędna, żeby zrealizować te o wyższej 2014-04-29Łukasz Rzepecki 100
  101. 101. Metodyki zwinne Dekompozycja i porządk. oparte o wartość • To proces wydobywania wymagań od biznesu, porządkowania oraz włączania w proces produkcyjny • Kick off – powinien obejmować wysiłek na zdefiniowanie wizji projektu na wysokim poziomie oraz wyrównanie wśród wszystkich interesariuszy wspólnej misji, celów i kryteriów sukcesu (tak samo rozumianych) • Warsztaty – mają na celu wyodrębnienie z wizji potencjalnych wymagań (candidate feature list) • Lista jest następnie porządkowana wg wartości biznesowej i ryzyk oraz poddana iteracyjnemu procesowi realizacji • Następuje dalsze stopniowe doprecyzowanie wymagań 2014-04-29Łukasz Rzepecki 101
  102. 102. Metodyki zwinne Dekompozycja i porządk. oparte o wartość • W metodykach zwinnych nie doprecyzowuje się dokładnie wymagań z góry, są “gruboziarniste” – doprecyzowanie następuje w trakcie postępu projektu • Pomaga to utrzymać projekt zbalansowany, bez nadmiernego (niepotrzebnego) wykonania w niektórych obszarach • Opóźnia się decyzje o detalach implementacji do ostatniej chwili (last responsible moment) – nie wykonuje się funkcjonalności, które mogą (prawie na pewno) się zmienić w wyniku nowych informacji lub zmian • Zmiany wprowadzane wcześniej kosztują mniej 2014-04-29Łukasz Rzepecki 102
  103. 103. Metodyki zwinne Gry Agile Remember the Future • Badania wykazały, że jest istotna różnica gdy poprosi się o odpowiedź na pytanie “Co system powinien robić?” (zwykle następuje generowanie kompletnej listy potencjalnie niepotrzebnych funkcjonalności) od poproszenia o wyobrażenie sobie punktu w przyszłości – po releasie zakończonym z sukcesem – i “przypomnienie sobie” co zostało wykonane w ramach projektu • Każdy interesariusz przez 20 minut spisuje na karteczkach wymagania, dzieki którym udało się zrealizowac projekt • Kolejne 20 minut wspólnie grupują i wyjaśniają sobie wymagania oraz eliminują duplikaty 2014-04-29Łukasz Rzepecki 103
  104. 104. Metodyki zwinne Gry Agile Prune the Product Tree • Gra pomaga w zrozumieniu porządkowania i zdefiniowania kolejności prac • Wykorzystanie burzy mózgów w celu narysowania drzewa wymagań i funkcjonalności oraz zależności • Pień reprezentuje to co wiemy lub zostało już wykonane • Gałęzie to nowe funkcjonalności lub wymagające zaprojektowania • Wymagania zależne umieszcza się dalej na gałęzi lub wyżej drzewa 2014-04-29Łukasz Rzepecki 104
  105. 105. Metodyki zwinne Gry Agile Speedboat • Gra pomaga w wyodrębnieniu ryzyk i możliwości • Niektórzy potrzebują możliwości i sposobu na wyartykułowanie swoich wątpliwości przed przystąpieniem do pracy • Kiedy ich obawy zostaną zaóważone i “zapisane” będą mogli z mniejszym obciążeniem przystąpić do dalszej pracy i lepiej współpracować 2014-04-29Łukasz Rzepecki 105
  106. 106. Metodyki zwinne Gry Agile 2014-04-29Łukasz Rzepecki 106
  107. 107. Estymacja Zasady i metody
  108. 108. Metodyki zwinne Estymacja • Jest niezbędna do szacowania rozmiaru i akceptowania projektów, ustalania pracy możliwej do wykonania w ramach wydania bądź iteracji, wyliczeń ROI/IRR/NPV • Powinna być określana jako przedziały uwzględniające niepewność • Wstępne szacunki są najmniej dokładne, należy reestymować projekt (czas i koszt) cały czas w jego trakcie • Nie powinna się tym zajmować tylko 1 osoba lecz cały zespół, który jest/będzie zaangażowany w pracę 2014-04-29Łukasz Rzepecki 108
  109. 109. Metodyki zwinne Wideband Delphi • Metoda iteracyjna, adaptacyjna oparta o zespół ekspertów • Każdy członek zespołu estymuje anonimowo - Eliminacja skłonności do zgadzania się z liderem i przyjmowania opinii innych zamiast własnych ocen danego problemu • Sesja zaczyna się od podziału całego projektu na fragmenty (estymowane osobno), specyfikuje się problem, przyjmuje założenia i ograniczenia projektu (w tym minimalne) • Definiuje się wspólne jednostki estymacji i kryteria zakończenia procesu wyceny (np. różnice w wycenach max. +/- 20%) • Iteracja zaczyna się od dyskusji nt. złożoności problemu • Każdy na kartce zapisuje zadania i ich estymaty wg uznania • Na koniec iteracji sumy estymat są zapisywane na tablicy (bez wskazywania autorów) • Jeśli są zbyt duże różnice robi się kolejną iterację • Na koniec tworzy się wspólną główną listę zadań z wszystkich 2014-04-29Łukasz Rzepecki 109
  110. 110. Metodyki zwinne Planning Poker • Rozwinięcie poprzedniej metody • Oparta na kartach z wartościami (często liczby Fibonacciego: 1, 2, 3, 5, 8, 13, 21, 34) wyrażającymi czasochłonność mh/md lub inne jednostki np. Story Points • Wymagania są czytane kolejno i każdy jednocześnie głosuje • Przyjmuje się wycenę większości, drobne różnice się pomija, jeśli ktoś miał zdecydowanie odmienne zdanie jest dyskutowane a głosowanie jest powtarzane aż do osiągnięcia konsensusu przez zespół 2014-04-29Łukasz Rzepecki 110
  111. 111. Metodyki zwinne Czas idealny • Zwykle praca w ciągu dnia jest rozpraszana i przerywana przez inne aktywności, nie związane bezpośrednio z wykonaniem zadania (spotkania, e- maile, kawa itp.) • Szacowanie wg czasu idealnego zakłada pominięcie wszelkich rozpraszających czynników, tzn. pracę skupioną wyłącznie nad danym zadaniem i przy założeniu, że nie ma żadnych innych przeszkód do jego wykonania 2014-04-29Łukasz Rzepecki 111
  112. 112. Metodyki zwinne Szacowanie porównawcze, Story Points • Pomaga rozwiązać problem ludzi z dokładnym szacowaniem całkowitego czasu pracy jak również zwalczyć niechęć do skomplikowanego procesu wycen • Łatwiej jest opisywać zjawiska przez porównanie do innych znanych (np. coś jest 2x większe od…) niż określać je dokładnie • Bazuje na pracy już wykonanej przez zespół w projekcie (porównanie do estymat zakończonych zadań) • Pozwala łatwiej pogodzić się z niewłaściwymi estymacjami (jeśli wycena nie była w godzinach to przekroczony czas pracy nie informuje wprost, że estymacja była błędna) • Zmiana wyceny może nastąpić zawsze gdy tak uzna zespół, w szczególności gdy pojawiają się nowe informacje 2014-04-29Łukasz Rzepecki 112
  113. 113. Metodyki zwinne Szacowanie porównawcze, Story Points • Definicja SP wychodzi z zespołu projektowego, to on ustala co oznacza 1SP (np. stworzenie prostego ekranu aplikacji lub 1 dzień idealny), SP między zespołami i w różnych projektach mogą oznaczać co innego • Estymaty w SP powinny być all-inclusive (zawierać testy, refactoring itp.), nie powinno wprowadzać się mnożników • Suma estymat szczegółowych zadań/wymagań może się różnić od wstępnej ogólnej wyceny wymagania/wydania • Estymaty w SP powinny być relatywne (4x5SP = 20x1SP) a nie określać stopnia skomplikowania • Powinno się brac pod uwagę 3 aspekty: złożoność problemu, wymagany nakład pracy oraz ryzyko 2014-04-29Łukasz Rzepecki 113
  114. 114. Metodyki zwinne Estymacja przez podobieństwo (affinity est.) • Proces grupowania wymagań w kategorie/kolekcje, np. wg ich estymat • Daje możliwość łątwiejszego porównania czy w danej kategorii wymagania są faktycznie o porównywalnej wielkości • Można do tego wykorzystać tablicę podzieloną na pionowe kolumny, z których każda określa estymację lub jakiś przedział • Po wycenie nowego wymagania lub rewycenie porównuje się czy jego wielkość faktycznie wydaje się być podobna do innych w danej kolumnie – możliwość dyskusji 2014-04-29Łukasz Rzepecki 114
  115. 115. Metodyki zwinne Szacowanie czasu, budżetu i kosztów • Określenie rozmiaru projektu – np. Planning Poker, w czasie idealnym lub innych jednostkach (SP) • Skalkulowanie wymaganego nakładu pracy w godzinach/dniach/tygodniach/miesiącach roboczych – wymaga przeliczenia estymat z uwzgl. dostępności zasobów (w tym – określenie stosunku godzina robocza/idealna dla każdego z członków zespołu) • Zaplanowanie harmonogramu z uwzględnieniem wymaganych dni roboczych i rozmiaru zespołu • Wyliczenie kosztu projektu wg stawek wynagrodzeń oraz innych kosztów + rezerwa na ryzyko i niepewność 2014-04-29Łukasz Rzepecki 115
  116. 116. Metodyki zwinne Zasady kosztorysowania • Do określenia kosztu projektu należy wyliczyć koszt każdego z członków zespołu – np. roczne wynagrodzenie (koszt) / liczba tygodni w roku (52) • Do kosztu należy doliczyć inne obciążenia firmy (czynsz, sprzęt, administracja) • Powinno się unikać określania dokładnej ceny lecz podawać przedziały, na różnych etapach projektów IT inne: - Wizja – cena: 25-400% / harmonogram (czas): 60-160% - Definicja, zakres projektu – 50-200% / 80-125% - Specyfikacja wymagań, ident. historyjek – 66-150% / 85-115% - Specyfikacja projektowa, gotowy backlog – 80-125% / 90-110% - Dokładna specyfikacja, 50% wykonane – 95-105% / 98-105% 2014-04-29Łukasz Rzepecki 116
  117. 117. Planowanie zwinne Cykl życia projektu, karta projektu, planowanie iteracji i wydań
  118. 118. Metodyki zwinne Planowanie zwinne Istotnie różni się od planowania tradycyjnego: • Wersje testowe i demo ujawniają prawdziwe wymagania, które wymagają replanningu - Zamiast tworzyć szczegółowe specyfikacje lepiej zbudować prototyp aby lepiej zrozumieć problem i wykorzystać go do dalszego planowania • Planowanie zwinne, to większy wysiłek w trakcie projektu niż przed jego rozpoczęciem - Ważniejsze jest określenie ryzyk i niepewności - Uszczegóławianie w trakcie sprzyja lepszemu dopasowaniu wraz z nowymi informacjami - Zwykle planowanie zajmuje sumarycznie więcej czasu od tradyc. - Eliminuje ryzyka błędnego zaplanowania już na początku • Normą są zmiany w trakcie realizacji projektu - Podejście kierowanego pocisku zmierzającego do ruchomego celu 2014-04-29Łukasz Rzepecki 118
  119. 119. Metodyki zwinne Cykl życia projektu zwinnego 2014-04-29Łukasz Rzepecki 119
  120. 120. Metodyki zwinne Karta projektu • To pierwszy i podstatowy dokument projektowy • Odpowiada na 5 pytań (W5H): - O czym jest projekt – wizja, misja, cele - Dlaczego jest realizowany – racjonalne wyjaśnienie biznesu - Kiedy się rozpocznie i zakończy – plan - Kto będzie zaangażowany – lista interesariuszy - Gdzię będzie realizowany – fizycznie i technicznie - Jak będzie realizowany – opis podejścia, zasady realizacji • Okeślenie przez interesariuszy celów projektu w 140 zn. • Nie ma standardów – może to być zarówno 1 strona jak i skomplikowany szczegółowy dokument, ważne aby był 2014-04-29Łukasz Rzepecki 120
  121. 121. Metodyki zwinne Planowanie iteracji i wydań • Projekty zwinne dzielą się na wydania i iteracje • Wydanie to zbiór iteracji, których realizacja skutkuje dostarczeniem wartościowego produktu bieznesowi/klientowi • Wydanie może byc uzależnione od terminu (deadline, np. targi) lub osiągnięcia określonej funkcjonalności – w zależności od tego, z wykorzystaniem informacji o prędkości zespołu, szacujemy co uda się zrobić w danym czasie lub kiedy osiągniemy daną funkcjonalność • Do planowania wydań stosuje się Story Maps – podział najpierw wg zależności a później funkcjonalności 2014-04-29Łukasz Rzepecki 121
  122. 122. Metodyki zwinne Planowanie iteracji i wydań • Planowanie iteracji robi zespół wybierając wymagania o najwyższym priorytecie, które uda się zaimplementować, przetestować i dostarczyć na koniec iteracji • Istotne jest określenie głównych celów do osiągnięcia na koniec iteracji z biznesem – klientem lub Product Ownerem (w celu właściwego doboru wymagań) • W przypadku Scruma, PO powinien przyjść na planning przygotowany ze świeżo uporządkowanym backlogiem - Pierwszą połowę spotkania PO opowiada o wymaganiach, które chciałby zrealizować a zespół zobowiązuje się do wykonania określonych wymagań w ramach swoich możliwości - Przez drugą połowę spotkania zespół dzieli wymagania na zadania oraz dyskutuje jak będą realizowane – powstaje sprint backlog - Przypisywanie zadań do osób może być później i może się zmieniać 2014-04-29Łukasz Rzepecki 122
  123. 123. 6. Problemy Jakość, zapobieganie i rozwiązywanie problemów
  124. 124. Wykrywanie problemów Czas cyklu, niewykryte wady, jakość
  125. 125. Metodyki zwinne Czas cyklu • Mierzy jak długo zajmuje wykonywanie zadań (od rozpoczęcia do akceptacji) • Jest blisko związany z pojęciem pracy w toku (Work in progress – WIP) • Duża liczba WIP wiąże się z problemami: - Oznacza inwestycję w toku, z której nie ma zwrotu - Ukrywa wąskie gardła i maskuje problemy z wydajnością - Zwiększa ryzyko potencjalnych zmian – duża liczba niezaakceptowanych wymagań w toku, mogących wpływać na siebie • Długi czas cyklu zwiększa liczbę WIP – dlatego metody zwinne dążą do jego skracania i dzielenia pracy na fragmenty • Czas cyklu = WIP / przepustowość 2014-04-29Łukasz Rzepecki 125
  126. 126. Metodyki zwinne Czas cyklu • Pojęcie to jest użyteczne do analizowania wad i napraw • Można niezależnie monitorować czas cyklu naprawy wad • Im dłużej wady są nienaprawione tym są kosztowniejsze • Kluczowe jest szybkie wykrywanie problemów na jak najwcześniejszym etapie aby zredukować ryzyko wykonywania pracy od nowa: - Programowanie w parach - Continuous integration - Test-driven development - Partycypacja interesariuszy - Częste demonstracje produktu (opinie od biznesu/klienta) 2014-04-29Łukasz Rzepecki 126
  127. 127. Metodyki zwinne Niewykryte wady (escaped defects) • To wady, które nie zostały wykryte na etapie produkcji ani kontroli jakości i przedostały się do oprogramowania działającego produkcyjnie, ew. wykryte przez klienta • Są najbardziej kosztowne do naprawy • Monitorowanie liczby takich wad pojawiających się w poszczególnych wydaniach może pomóc w ich eliminacji w przyszłości 2014-04-29Łukasz Rzepecki 127
  128. 128. Metodyki zwinne Koszt zmiany 2014-04-29Łukasz Rzepecki 128
  129. 129. Metodyki zwinne Standardy jakości • Dotyczą tego co zespół będzie robił aby zapewnić jakość i właściwą wartość produktu? • Standardy mogą być spisane lub nieformalne w postaci wymagań i wytycznych, za które zespół bierze odpowiedzialność • Źródła wiedzy o standardach jakości: - Standardy formalne – spisane - Monitorowanie, audyty - Rozmowy i dyskusje - Przeglądy (dema) - Retrospekcje 2014-04-29Łukasz Rzepecki 129
  130. 130. Metodyki zwinne Standardy jakości – praktyki • Mierzenie jakości przez testy i akceptację biznesu/klienta • Testy automatyczne • Zapewnienie aby testowanie było częścią każdej iteracji • Staranie się naprawy 90% wad w następnej iteracji • Ujednolicenie rozumienia kryterów akceptacyjnych wśród developerów, biznesu i ew. osób odpowiedzialnych za jakość • Akceptacja naprawy wad nie przez developerów a biznes • Współpraca osób wykrywających wady z developerami mająca na celu umożliwienie powtórzenia błedu • Monitorowanie liczby wad, rządań zmian i wyjaśnień oraz utrzymania wskaźników w poziomach tolerancji 2014-04-29Łukasz Rzepecki 130
  131. 131. Metodyki zwinne Przyczyny problemów • Popełnianie błędów ludzkich • Działania zachowawcze – zwłaszcza w przypadku wysokiej niepewności, wykorzystanie dotychczasowej wiedzy, która nie jest najoptymalniejsza do wykonania danego zadania • Wynajdywanie nowych metod (narażonych na wady) zamiast wykorzystania gotowych, sprawdzonych, re-używalnych rozwiązań • Przyzwyczajenie – unikanie zmian gdy są konieczne • Brak konsekwencji we wdrażaniu nowych rozwiązań 2014-04-29Łukasz Rzepecki 131
  132. 132. Rozwiązywanie problemów Sposoby zapobiegania i rozwiązywania problemów
  133. 133. Metodyki zwinne Metody zapobiegania problemom • Continuous Integration – zapobieganie problemom wynikającym z częstego dołączania nowego kodu przez różnych członków zespołu do repozytorium projektu • Risk-Based Spike – krótkie ćwiczenie typu PoC mające na celu przeanalizowanie sposobu rozwiązania problemu w celu pomniejszenia ryzyka przed właściwą implementacją • Test-Driven Development (TDD) – testy są pisane przed kodem, wymaga zastanowienia się jak rozwiązanie będzie testowane i jak ma działać, testy nie przejdą dopóki napisany kod nie będzie spełniał założonych kryteriów - Red  Green  Refactor (Red  Green  Clean) 2014-04-29Łukasz Rzepecki 133
  134. 134. Metodyki zwinne Metody zapobiegania problemom • Acceptance Test-Driven Dev. (ATDD) – przeniesienie testowania z kodu na wymagania biznesowe, 4 etapy: - Discuss – omówienie wymagań, kryteriów akceptacyjnych - Distill – ustrukturyzowanie i wprowadzenie testów do narzędzia typu FIT (Frmrk For Integrated Testing) lub FitNesse - Develop – kodowanie i podpięcie kodu do testów - Demo – końcowe testy akceptacyjne i demo produktu • Częsta weryfikacja i walidacja – funkcjonuje na każdym poziomie projektów zwinnych, np. programowanie w parach/code review, testy jednostkowe, stand-upy, testy akceptacyjne, przegląd iteracji/demo itp. – każde z tych działań ma na celu jak najszybcie wykrycie i wyeliminowanie problemów 2014-04-29Łukasz Rzepecki 134
  135. 135. Metodyki zwinne Rozwiązywanie problemów 3 fazy: • Zebranie danych – mające na celu wspólny pogląd na problemy - Timeline – zaznaczenie wydarzeń (+/-/!) na linii czasu i emocji zesp. - Triple Nickels – 5 pomysłów x 5 iteracji w zespole na karteczkach • Wnioski – przeanalizowanie zebranych danych, interpretacja, zrozumienie następstw - Burza mózgów – wygenerowanie, przefiltrowanie i posortowanie - 5 pytań Dlaczego – dojście od ogółu do rdzenia/przyczyny problemu - Fishbone – diagram doprecyzowujący Five whys • Decyzje co zrobić – jasne decyzje - Short Subjects – np. Keep/Drop/Add, Zacznij/Przestań/Więcej/Mniej - SMART – Specific, Measurable, Attainable, Relevant, Timely 2014-04-29Łukasz Rzepecki 135
  136. 136. Metodyki zwinne Zaangażowanie zespołu w rozw. problemów • Zaangażowanie zespołu w rozwiązywanie problemów jest bardzo ważne: • Brak konieczności “sprzedaży” rozwiązania zespołowi • Zespół jest bliżej szczegółów i może znać lepsze rozw. • Zespół wygeneruje bardziej praktyczne rozwiązania (uniknięcie odpowiedzi “nie da się”) • Ludzie zapytani o pomoc lubią zastanawiać się i pracować nad najlepszymi rozwiązaniami oraz doceniają to • Prośba o pomoc pokazuje zaufanie a nie słabość • Wpływa na porządany sposób zachowań w organiazcji 2014-04-29Łukasz Rzepecki 136
  137. 137. 7. Ciągłe doskonalenie Retrospekcje i udoskonalanie procesów
  138. 138. Metodyki zwinne Retrospekcja • To wydarzenie odbywające się po sprincie mające na celu naukę i refleksję aby doskonalić metody działania i pracę zespołową ze sprintu na sprint a nie dopiero po projekcie (jak klasyczne lessons learned) • Typowe spotkanie składa się z kilku etapów (czas trwania dla sprintu 2-tygodniowego, to max. 2 godziny): - Przygotowanie – 5% - Zebranie informacji – 30-50% - Wnioski – 20-30% - Decyzje co zrobić – 15-20% - Zamknięcie – 10-15% 2014-04-29Łukasz Rzepecki 138
  139. 139. Metodyki zwinne Retrospekcja Przygotowanie • Ma na celu skoncentrowanie się na celach spotkania, wytworzenie przyjaznej atmosfery sprzyjającej rozmowie na problematyczne tematy, zaplanowanie tematów do dyskusji • Pomocne narzędzia: - Check-In – podsumowanie w 1-2 słowach przez każdego po kolei czego oczekuje od spotkania, głównego tematu do podjęcia lub odczuć co do retrospekcji - Focus On / Focus Off - ESVP – Explorers, Shoppers, Vacationers, Prisoners – anonimowa ankieta jakie są nastroje na spotkanie i omówienie wyników - Working agreements – praca w podgrupach nad tematyką retrospekcji 2014-04-29Łukasz Rzepecki 139
  140. 140. Metodyki zwinne Retrospekcja Zebranie informacji • Stworzenie wspólnego obrazu co się wydarzyło podczas iteracji/wydania/projektu – zebranie obserwacji, faktów, odkryć • Narzędzia (rozdz. VI): - Timeline - Triplce nickels - Color code dots - Mad, sad, glad - Locate strengths - Satisfaction histogram - Team radar - Like to like 2014-04-29Łukasz Rzepecki 140
  141. 141. Metodyki zwinne Retrospekcja Wnioski • Czas na ocenę informacji i wyciągnięcie z nich wniosków, celem jest pomoc w zrozumieniu implikacji odkryć i podjętych decyzji • Narzędzia (rozdz. VI): - Burza mózgów - Five whys - Fishbone - Prioritize with dots - Identify themes 2014-04-29Łukasz Rzepecki 141
  142. 142. Metodyki zwinne Retrospekcja Decyzje co zrobić • Zastanowienie się co można zmienić w kolejnych iteracjach i co zrobić inaczej • W tym etapie zespół identyfikuje i porządkuje działania do podjęcia, tworzy plan ew. eksperymentów, ustala mierzalne cele do osiągnięcia i spodziewane rezultaty • Narzędzia (rozdz. VI): - Short subjects - SMART goals - Retrospective planning game - Circle of questions 2014-04-29Łukasz Rzepecki 142
  143. 143. Metodyki zwinne Retrospekcja Zamknięcie • Refleksja na temat samej retrospekcji • Narzędzia: - Plus/Delta – spisanie w dwóch kolumnach pomysłów co idzie dobrze (+) i co można by zmienić (Δ) w retrospekcjach - Helped (Pomocne), Hindered (Utrudnienia), Hypothesis (Przypuszczenia) – rozmowa na temat samego procesu retrospekcji, jak go poprawić w kolejnych iteracjach - Return on Time Invested (ROTI) – czy zespół sądzi, że poświecony czas został dobrze wykorzystany - Uznania – wzajemne podziękowania za pomoc, wkład w rozwiązywanie problemów itp. 2014-04-29Łukasz Rzepecki 143
  144. 144. Metodyki zwinne Dzielenie się wiedzą • Jest kluczowe w projektach zwinnych, w środowiskach pracownika wiedzy • Odbywa się na wielu poziomach – podczas dema (zespół- klient), wiedza niepisana w środowisku f2f, poprzez komunikację osmotyczną, na stand-upach, retrospekcjach • Klutura organizacyjna powinna promować dzielenie się wiedzą, odkrycia i innowacje a nie jednostki które mają dużą wiedzę (guru) ale się nią nie dzielą (klasyczne podejście) • Najlepszym sposobem do zachęcania do pracy grupowej, wzajemnej pomocy i dzielenia się wiedzą jest mierzenie efektów o poziom wyżej – tzn. nie konkretnego pracownika ale całego zespołu, nie zespołu ale całego działu itp. 2014-04-29Łukasz Rzepecki 144
  145. 145. Metodyki zwinne Udoskonalanie procesów • Ma na celu lepsze dopasowanie metodologii do środowiska projektu • Np. Kanban zaleca modyfikowanie metodologi do własnych potrzeb ale Scrum jest mniej elastyczny • Niektórzy promują podejście “proces per projekt” • Kluczowe jest doświadczenie zespołów w realizacji kilku projektów by-the-book a dopiero później ich modyfikowanie do własnych potrzeb • Proste projekty o znanej technologii i dokładnej specyfikacji wymagań wcale nie potrzebuja metodyk zwinnych! Z drugiej strony jeśli projekt jest w stanie chaosu metodyki zwinne również nie pomogą 2014-04-29Łukasz Rzepecki 145
  146. 146. Metodyki zwinne Udoskonalanie procesów • Analiza procesu - Antywzorce: • Jeden rozwmiar dla wszystkich projektów • Nietolerancyjny • Ciężki • Upiększony • Niewypróbowany • Użyty raz - Kryteria pozytywne: • Projekt został zakończony i sprzedany • Lider nie został zwolniony • Zespół pracowałby ponownie w ten sam sposób 2014-04-29Łukasz Rzepecki 146
  147. 147. Metodyki zwinne Udoskonalanie procesów • Kryteria sukcesu - Komunikacja face-to-face - Nadmiar narzutu metodologii jest kosztowny – minimalizacja produkowanej dokumentacji - Większe zespoły wymagają cięższych metodologii - Projekty krytyczne wymagają większych rygorów metodyki - Informacje zwrotne i częsta komunikacja redukują potrzebę dostarczania częstych pośrednich rezultatów - Ważniejsza jest dyscyplina, umiejętności i zrozumienie niż procesy, formalności i dokumentacja - Wydajność można zwiększać tylko w środowiskach bez wąskich gardeł 2014-04-29Łukasz Rzepecki 147
  148. 148. Metodyki zwinne Udoskonalanie procesów • Stosowanie nowych praktyk - Nie stosować dopóki nie jest to niezbędne - Czy jest jakieś inne rozwiązanie – głównego problemu? - Czy nowe rozwiązanie faktycznie coś poprawia? - Próbować nowe praktyki w małych dawkach (kilka iteracji) - Analizować skutki uboczne – retrospekcje • Proces ciągłego doskonalenia - Analogia Plan-Develop-Evaluate-Learn do Plan-Do-Check-Act Deminga - Iteracyjne i przyrostowe tworzenie jest formą ciągłego doskonalenia a informacje zwrotne od klienta kierują zespół na finalne rozwiązanie • Samoocena – nie tylko proces i produkt ale równiez zespół wymaga oceny, jak działa i co wymaga poprawy 2014-04-29Łukasz Rzepecki 148
  149. 149. 8. Opis metodyk SCRUM, XP
  150. 150. SCRUM Zespół, zdarzenia, artefakty
  151. 151. Metodyki zwinne SCRUM • Określa ramy postępowania przy rozwiązywaniu złożonych problemów adaptacyjnych – optymalizuje elastyczność, kreatywność i produktywność • Podejście iteracyjne i przyrostowe w celu zwiększenia przewidywalności i lepszej kontroli ryzyka • Opiera się na: - Przejrzystości – wszystkie aspekty procesu muszą być widoczne, jasne i jednakowo zrozumiałe przez wszystkich (np. wspólna definicja “ukończonej” pracy – DoD) - Inspekcji – częsta weryfikacja realiacji celów sprintu - Adaptacji – jeśli któryś z aspektów projektu wykracza poza ramy, należy szybko dokonać niezbędnych korekt 2014-04-29Łukasz Rzepecki 151
  152. 152. Metodyki zwinne Zespół Scrumowy (Development Team) • Jest samo-organizujący się i międzyfunkcjonalny - Zespół sam decyduje jak najlepiej wykonać pracę - Nie jest kierowany przez nikogo z zewnątrz - Posiada wszelkie kompetencje do wykonania pracy – nie jest zależny od osób spoza zespołu • Dostarcza ukończone produkty iteracyjnie i przyrostowo - Zwiększone szanse na wczesne uzyskanie informacji zwrotnej - Nieprzerwana dostępność działającej użytecznej wersji • Zespół Scrumowy, to: - Product Owner – właściciel produktu - Zespół developerski - Scrum Master 2014-04-29Łukasz Rzepecki 152
  153. 153. Metodyki zwinne Właściciel Produktu (Product Owner) • To pojedyńcza osoba, nie komitet • Może reprezentować interesy grupy osób • Wszelkie zmiany w backlogu muszą przechodzić przez właściciela produktu • Cała organizacja musi respektować jego decyzje (treść i kolejność elementów w backlogu) • Nikt inny nie może nakazać zespołowi realizacji innych wymagań 2014-04-29Łukasz Rzepecki 153
  154. 154. Metodyki zwinne Właściciel Produktu (Product Owner) • Odpowiada za maksymalizację wartości produktu i pracy • Jest jedyną osobą zarządzającą backlogiem produktu: - Jasne artykułowanie elementów backlogu - Ustalanie kolejności elementów w sposób pozwalający osiągać założone cele i misje - Optymalizowanie wartości pracy wykonywanej przez zespół - Zapewnianie dostępności, przejrzystości oraz że jest jasny i zrozumiały przez wszystkich - Dobrze opisuje to, czym zespół będzie się zajmował w dalszej kolejności - Zapewnianie, że zespół rozumie elementy backlogu w wymaganym stopniu • Może zlecić realizację tych zadań na zespół ale właściciel produktu pozostaje za nie w pełni odpowiedzialny 2014-04-29Łukasz Rzepecki 154
  155. 155. Metodyki zwinne Zespół developerski • Złożony jest z profesjonalistów, którzy tworzą przyrost • Jest uprawniony do samodzielnego organizowania własnej pracy i zarządzania nią • Nikt (nawet Scrum Master) nie może nakazać zespołowi jak przekształcać elementy backloga w przyrosty • Nie uznaje tytułów innych niż “developer” (np. nazwa stanowiska czy ranga starszy/młodszy) ani podzespołów • Mimo, że pojedyńcze osoby mogą mieć specjalizację, to odpowiedzialność za rezultat ponosi solidarnie cały zespół • Zespołowi nie wolno podejmować działań w oparciu o to co mówią inne osoby niż właściciel produktu • Idealny rozmiar, to 3-9 osób (+ PO i SM) • Product Owner i Scrum Master mogą być członkami zespołu, jeśli jednocześnie wykonują też pracę wynikająca z backloga 2014-04-29Łukasz Rzepecki 155
  156. 156. Metodyki zwinne Scrum Master • Jest odpowiedzialny za to aby Scrum był zrozumiany i był stosowany, szczególnie gdy nie jest jeszcze w pełni przyjęty i rozumiany w danej organizacji • Wspiera właściciela produktu w technikach efektywnego zarządzania backlogiem i maksymalizowania wartości • Wspiera zespół scrumowy w rozumieniu i praktykowaniu zwinności i empirycznego podejścia rozwoju produktu • Wspomaga przebieg zdarzeń scrumowych – jeśli jest to konieczne lub zostanie o to poproszony • Coachuje zespół w zakresie samoorganizacji • Usuwa przeszkody ograniczające postęp pracy zespołu 2014-04-29Łukasz Rzepecki 156
  157. 157. Metodyki zwinne Zdarzenia w Scrumie • Są okazją do inspekcji i adaptacji – niewykonanie któregoś z nich redukuje przejrzystość i możliwość dokonania inspekcji i adaptacji, które są filarami Scruma • Wprowadzają regularność i ograniczają konieczność organizowania innych spotkań • Wszystkie zdarzenia są organiczone czasowo (timeboxing) • Zdarzenia w Scrumie: - Sprint • Planowanie sprintu (Sprint Planning) • Codzienny Scrum (Daily Scrum) • Przegląd sprintu (Sprint Review) • Retrospektywa sprintu (Sprint Retrospective) 2014-04-29Łukasz Rzepecki 157
  158. 158. Metodyki zwinne Sprint • Musi posiadać cel – opis tego co ma powstać, cel uspójnia działania zespołu • Iteracja ograniczona czasowo do maksymalnie 1 m-ca - Dłuższy czas wzmaga ryzyko zmiany definicji celów i zwiększa złożoność - Inspekcja i adaptacja są regularne • Czas trwania jest ustalany w momencie rozpoczęcia i nie może być zmieniany ale najlepiej aby miały stałą długość przez cały projekt • Wytwarza przyrost – ukończony, gotowy do użycia i potencjalnego wydania • Zakres pracy może być wyjaśniany trakcie sprintu z PO • Może również być renegocjowany z PO jeśli pojawiają się nowe informacje, np. charakter prac okazuje się inny od zaplanowanych • Nie można wprowadzać zmian zagrażających realizacji celów sprintu bądź obniżających cele jakościowe • W trakcie sprintu zespół może uczestniczyć w doskonaleniu backloga (max. 10% czasu sprintu) • Może być przerwany tylko przez PO np. jeśli zdezaktualizują się cele 2014-04-29Łukasz Rzepecki 158
  159. 159. Metodyki zwinne Planowanie sprintu • Spotkanie całego zespołu scrumowego, maksymalnie 8h dla 1- miesięcznego sprintu • Co może zostać zrobione w Sprincie? - Zespół prognozuje zakres prac, które może zrealizować - PO omawia założenia sprintu oraz elementy backloga, które temu służą - Zespół scrumowy uzgadnia cel sprinta a zespół developerski podejmuje zobowiązanie które elementy backloga wykona • W jaki sposób wybrany zakres pracy zostanie zrealizowany? - Zespół planuje w jaki sposób elementy backloga produktu zostaną przekształcone w ukończony przyrost – tworzy projekt i zadania - Wybrane elementy backloga produktu wraz ww. planem tworzą backlog sprintu • Zespół może zaprosić na spotkanie inne osoby z wiedzą techniczną lub z danej domeny 2014-04-29Łukasz Rzepecki 159
  160. 160. Metodyki zwinne Codzienny Scrum • Zdarzenie zespołu developerskiego (tylko), max. 15 minut, o stałym miejscu i porze, wygodnej dla wszystkich, za którego przebieg jest odpowiedzialny sam zespół • Scrum Master jest jednakże odpowiedzialny za to aby zdarzenie miało miejsce i trwało nie dłużej niż 15 minut • Służy synchronizacji działań, ocenie postępu prac, trendów i zaplanowaniu następnych 24 godzin (to nie tylko status) • Każdy członek zespołu udziela pozostałym informacji: - Co wykonał od poprzedniego spotkania aby pomóc zespołowi przybliżyć się do osiągnięcia cel sprintu? - Co zrobi w tym celu do następnego spotkania? (planowanie!) - Czy widzi jakiekolwiek przeszkody w realizacji celu przez zespół? • Po codziennym scrumie członkowie zespołu mogą szczegółowo omówić wybrane zagadnienia i problemy • Jest to spotkanie kluczowe dla procesu inspekcji i adaptacji 2014-04-29Łukasz Rzepecki 160
  161. 161. Metodyki zwinne Przegląd sprintu • Spotkanie całego zespołu scrumowego i kluczowych interesariuszy na zakończenie sprintu, max. 4h dla 1-miesięcznego sprintu • Celem jest inspekcja przyrostu i ew. dostosowanie backloga produktu w celu zwiększenia dostarczanej wartości • To spotkanie robocze a nie statusowe: - PO wyjaśnia, które funkcjonalności uznał za ukończone - Zespół prezentuje wykonany przyrost oraz wyjaśnia co poszło dobrze a gdzie były problemy i jak zostały rozwiązane - PO omawia aktualny backlog produktu - Uczestnicy rozważają co najlepiej wykonać w następnej kolejności aby dostarczyć maksymalną wartość - Rewiduje się czas, budżet i wprowadza ew. zmiany do backloga - PO dokonuje podsumowania całej pozostałej do wykonania pracy i porównuje ją ze stanem poprzednim (ocena możliwości realizacji celów w wyznaczonym terminie, np. wykorzystując wskaźnik prędkości pracy) - Rezultatem jest zaktualizowany backlog produktu 2014-04-29Łukasz Rzepecki 161
  162. 162. Metodyki zwinne Retrospektywa sprintu • Spotkanie zespołu scrumowego, odbywające się między przeglądem i planowaniem sprintów, max. 3h dla 1-miesięcznego sprintu • Ma na celu autoinspekcję własnych działań zespołu i opracowaniu planu usprawnień na kolejny sprint: - Sprawdzenie, co działo się w ostatnim sprincie, z uwzględnieniem ludzi, relacji, procesów i narzędzi - Co się sprawdziło a co wymaga usprawnienia - Opracowanie plananu usprawnień • np. doprecyzowanie definicji “ukończenia” 2014-04-29Łukasz Rzepecki 162
  163. 163. Metodyki zwinne Artefakty Scruma • Artefakty w Scrumie, to: - Backlog produktu - Backlog sprinta - Przyrost – suma wszystkich ukończonych elementów backloga produktu zgodnie z definicją DoD zespołu scrumowego • Musi być zachowana ich pełna przejrzystość • Są podstawą podejmowanych decyzji mających na celu optymalizację wartości i kontrolę ryzyka • Zadaniem Scrum Mastera jest dbanie o ich przejrzystość - Inspekcja - Wyłapywanie różnic między oczekiwaniami a wynikami 2014-04-29Łukasz Rzepecki 163
  164. 164. Metodyki zwinne Backlog produktu (Product Backlog) • Jedyne źródło wymagań: lista wszystkich cech, funkcji, wymagań, ulepszeń i korekt błędów • Elementy zawierają: opis, kolejność, oszacowanie, wartość • PO jest za niego odpowiedzialny ale oszacowania dokonuje wyłącznie zespół developerski • Nigdy nie jest kompletny, ewoluuje wraz z produktem i środowiskiem, dynamicznie się zmienia • Doskonalenie backloga (refinement) – ciągła praca zespołu scrumowego: przeglądanie i korygowanie - Dodawanie szczegółów, oszacowań, porządkowanie • Istnieje tak długo jak produkt • Jeśli nad jednym produktem pracuje kilka zespołów scrumowych, to korzystają z tego samego backloga • Elementy najwyżej, na najbliższy sprint, muszą być szczegółowo opisane i możliwe do realizacji w ramach sprintu - Statusy: Nieprzygotowane  Przygotowane (gotowe do realizacji, wystarczająco zrozumiałe i wystarczająco małe)  Ukończone 2014-04-29Łukasz Rzepecki 164
  165. 165. Metodyki zwinne Backlog sprintu (Sprint Backlog) • To zbiór elementów backloga produktu wybranych do realizacji na dany sprint, rozszerzony o: - Plan dostarczenia przyrostu produktu - Plan realizacji celu sprintu (praca niezbędna wg zespołu developerskiego do jego osiągnięcia) • Wystarczająco szczegółowy • Jest modyfikowany przez zespół developerski w trakcie trwania sprintu (w miarę realizacji celów i wyłaniania się nowych informacji aby je osiągnąć) - Dodatkowa praca jest dodawana do backloga sprintu z zbędne elementy usuwane – tylko zespół developerski może go zmieniać! • W miarę postępu prac aktualizowane jest oszacowanie pozostałej do wykonania pracy w sprincie (przynajmniej raz dziennie podczas codziennego scruma) • Na koniec sprintu nowy przyrost musi być ukończony i być przetestowany z poprzednimi przyrostami (muszą działać razem) 2014-04-29Łukasz Rzepecki 165
  166. 166. Metodyki zwinne Definicja ukończenia (DoD) • Każdy musi rozumieć co oznacza ukończenie elementu backloga produktu albo przyrostu produktu (pracy w kolejnym sprincie) • Zespół scrumowy musi mieć wspólne rozumienie DoD • Celem każdego sprintu jest dostarczenie gotowej do wydania funkcjonalności, zgodnie z aktualną definicją ukończenia funkcjonującą w zespole scrumowym • Konwencja, standardy i wytyczne w organizacji stanowią minimum definicji ukończenia – jeśli ich nie ma musi je wypracować sam zespół 2014-04-29Łukasz Rzepecki 166
  167. 167. Metodyki zwinne Podsumowanie Scruma • Scrum istnieje tylko w swojej pełnej postaci • Może stanowić ramy dla innych technik, metodyk i praktyk 2014-04-29Łukasz Rzepecki 167
  168. 168. Metodyki zwinne SCRUM 2014-04-29Łukasz Rzepecki 168
  169. 169. Metodyki zwinne Dziękuję 2014-04-29Łukasz Rzepecki 169

×