Agile – ale o co chodzi? Scrum, Kanban, XP Paweł Wójciak 26.11.2013 1
Cele wykładu Zapoznanie z rysem historycznym dotyczącym zarządzania projektami. Przedstawienie podstawowych informacji dotyczących najpopularniejszych metod z obszaru zwinnego zarządzania projektami. Analiza specyfiki projektów opartych o wiedzę i innowację w kontekście doboru metod zarządzania. Zachęcenie do postrzegania tworzenia oprogramowania jako rzemiosła. Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 2 2
Zarządzanie projektami – krótka historia Do ok. 1900 roku – niesformalizowane Frederic Taylor – „zarządzanie naukowe” Zastąpienie tradycyjnych metod pracy metodami opartymi na naukowym badaniu zadań, Selekcja i szkolenia pracowników w oparciu o naukowe metody jest lepsze niż pasywne pozostawienie ich, aby szkolili się sami, Zapewnienie „szczegółowych instrukcji i nadzoru każdemu pracownikowi, aby monitorować jego indywidualną wydajność”, Podział pracy, w którym kierownicy stosują naukowe metody do planowania pracy, którą faktycznie wykonują pracownicy Frederick W. Taylor 1856 - 1915 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 3
Ojcowie Zarządzania Projektami Henry Gantt (1861-1919) „Ojciec technik planowania i kontroli” System zadań i premii dla Bethlehem Steel „Work, Wages and Profits” – 1910 „Organizing for Work” - 1919 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 4
Ojcowie Zarządzania Projektami Henri Fayol (1841 – 1925) "Administration Industrielle et Générale” - 1916 Funkcje zarządzania przewidywanie organizowanie rozkazywanie koordynowanie kontrolowanie Zasady zarządzania Podział pracy - specjalizacja Autorytet (władza) – formalny i osobisty Dyscyplina Jedność rozkazodawstwa Jednolitość kierownictwa Podporządkowanie interesu osobistego interesowi ogółu Wynagrodzenie – sprawiedliwe Centralizacja (decyzyjności) Hierarchia Ład Ludzkie traktowanie personelu Stabilizacja personelu – wzrost efektywności Inicjatywa – decyzyjność motywuje Esprit des Corps – Team Sprit Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 5
Historia zarządzania - podsumowanie Tradycyjne zarządzanie wyrosło ze środowiska produkcji przemysłowej Wzrost efektywności wykonywania powtarzalnych prac Zakłada możliwość łatwego dzielenia pracy na etapy/zadania Hierarchia pomaga systematyzować strukturę dużych organizacji Dysproporcja kompetencji kadry zarządzającej i załogi wymaga podejścia „rozkazuj i kontroluj” Kierownik = dowódca Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 6
Współczesność – organizacje PM IPMA – 1967 PMI – 1969 (PMBOK 5th edition - 2013) Office of Government Commerce (OGC)/APM – PRINCE2 (:2009), ITIL (v3 – 2007, 2011) Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 7
Zarządzanie projektami w ujęciu PMBOK 5 grup procesów Inicjacja Planowanie Wykonanie Monitorowanie i kontrola Zamykanie 10 obszarów Zarządzanie integracją projektu Zarządzanie zakresem projektu Zarządzanie czasem w projekcie Zarządzanie kosztami projektu Zarządzanie jakością projektu Zarządzanie zasobami ludzkimi w projekcie Zarządzanie komunikacją w projekcie Zarządzanie ryzykiem projektu Zarządzanie dostawami w projekcie Zarządzanie interesariuszami projektu Obszary te istnieją - niezależnie od metody(ki) realizacji projektu! Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 8
Winston Royce i model Waterfall „Managing the Development of Large Software Systems” - 1970 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 9
Czego nie doczytano? „I believe in this concept, but the implementation described above is risky and invites failure” [After test results and findings] required design changes are likely to be so disruptive that the software requirements upon which the design is based and which provides the rationale for everything are violated. Either the requirements must be modified, or a substantial change in the design is required. In effect the development process has returned to the origin and one can expect up to a l00-percent overrun in schedule and/or costs Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 10
Problemy z planowaniem predykcyjnym ©2005 Paragon Innovations, Inc. Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 11
Problemy z planowaniem predykcyjnym Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 12
Planowanie w złożonym środowisku Musicie zapewnić stałą temperaturę 22⁰C w pomieszczeniu 6x12m. O 8:00 jest uruchamiany program sterujący ogrzewaniem, wentylacją, żaluzjami i Klimatyzacją z góry na cały dzień, aby utrzymać zadaną temperaturę. Pytanie: Jakie zmienne musicie wziąć pod uwagę przy programowaniu urządzeń? Ilość osób w pokoju w określonych porach, poziom ich metabolizmu i aktywności, pora roku i pogoda na zewnątrz, temperatura w sąsiednich pomieszczeniach, działające urządzenia elektryczne i gazowe, materiał z którego zbudowany jest budynek i ściany pomieszczenia, wnoszone ciepłe posiłki, obecność wentylacji grawitacyjnej… Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 13
Prostsze rozwiązanie Zastosować podejście empiryczne: Często mierzyć temperaturę Dostosowywać pracę urządzeń (ogrzewanie/chłodzenie) Zapewnić transparentność, tzn. zagwarantować, że mierzona jest faktyczna temperatura w pokoju. Tak naprawdę potrzebny jest tylko ten parametr i częste dostosowywanie! Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 14
Agile – ponieważ grawitacja działa… Potrzeby klientów zmieniają się. Grawitacja. To, co może zrealizować zespół, znane jest tylko jego członkom i zmienia się w czasie. Grawitacja. Świat i biznes zmienia się w szybkim tempie, tworząc sytuacje trudne do wcześniejszego przewidzenia. Grawitacja. Nie można powziąć zobowiązania za kogoś innego i spodziewać się maksymalnego zaangażowania. Grawitacja. Tworzenie oprogramowania jest pracą twórczą a nie wytwórczą i rządzi się innymi prawami niż fabryka. Grawitacja. Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 15
Fundamenty Agile Empiryzm Samoorganizacja Współpraca Priorytetyzacja Rytm Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 16
Agile Manifesto Podpisany w 2001 roku przez 17 osób związanych z „lekkimi metodami tworzenia oprogramowania” Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 17
Wartości Agile Scrum XP Kanban Skupienie Odwaga Otwartość Zobowiązanie Szacunek XP Prostota Komunikacja Informacja zwrotna Szacunek Odwaga Kanban Kaizen Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 18
Scrum Jeff Sutherland i Ken Schwaber (OOPSLA ‘95) Scrum (rzecz.): metoda, przy użyciu której ludzie mogą z powodzeniem rozwiązywać złożone problemy adaptacyjne, by w sposób produktywny i kreatywny wytwarzać produkty o najwyższej możliwej wartości. Scrum jest: • lekki, • łatwy do zrozumienia, • bardzo trudny do opanowania. Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 19
Scrum Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 20
Iteracyjność Sprinty to iteracje o sztywnych ramach czasowych. Cała praca związana z wydaniem nowego inkrementu produktu odbywa się w sprincie. Sprint ma stałą długość – 1 miesiąc lub mniej (rytm). Długość Sprintu zależy od akceptowalnego horyzontu planowania. Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 21
Scrum - elementy Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 22
Role i odpowiedzialności Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 23
Artefakty Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 24
Ceremonie Sprint Planning Daily Scrum Sprint Review Sprint Retrospective Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 25
Definition of „Done” Lista warunków, jakie musi spełniać produkt (i jego „ukończone” elementy) Funkcjonalność nie może posiadać „czegoś, co jeszcze trzeba dorobić” Definicja musi być przejrzysta – wszyscy zainteresowani muszą ją tak samo rozumieć Opisuje techniczną jakość produktu Powinna pomagać optymalizować utrzymalność i możliwość dalszego rozwoju (maintainability, sustainability, enhanceability) Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 26
Planowanie inkrementalne Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 27
Planowanie w oparciu o dane empiryczne Story Points – abstrakcyjna jednostka wielkości Złożoność Niepewność Praca Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 28
Planowanie w oparciu o dane empiryczne Gra w wycenę – planning poker Wariant metody delfickiej Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 29
Planowanie w oparciu o dane empiryczne Velocity – empiryczna miara postępu prac Sprint 2 Sprint 3 Sprint 4 Sprint 1 SP t Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 30
Kanban (jap.) „Tablica informacyjna” System wspierający produkcję i logistykę – Toyota 1953 Zaadaptowany do środowiska IT przez Davida J. Andersona (Agile Management for Software Engineering: Applying the Theory of Constraints for Business Results – 2003) Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 31
„The Kanban Method” Zacznij od tego, co masz Dąż do ewolucyjnych, przyrostowych zmian Respektuj obecny proces, role i stanowiska Wspieraj przywództwo na każdym szczeblu Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 32
6 zasad Kanban Wizualizacja przepływu pracy Ograniczenie „pracy w toku” (Work in progress – WIP) Optymalizacja przepływu Jasne, precyzyjne zasady System infromacji zwrotnej Poprawa dzięki współpracy, rozwój dzięki eksperymentom Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 33
Kanban D A B C E Najprostszy przykład TO DO IN PROGRESS (WIP = 1) DONE Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 34
Kanban A E F B D C Identyfikacja wąskich gardeł DEVELOPMENT (WIP = 2) TESTING (WIP = 1) DEPLOYMENT (WIP = 1) TO DO DONE In progress Done In progress Done A E F B D C Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 35
Kanban Identyfikacja „wąskich gardeł” Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 36
Interpretacja wykresu Lead time Cycle time Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 37
eXtreme Programming Stworzone przez Kenta Becka i Rona Jeffriesa w projekcie C3 (1993-1999) „Extreme Programming Explained” – 1999 Koncepcyjnie bliskie Scrumowi, ale zawiera również konkretne praktyki developerskie W praktyce – wiele elementów używanych przez zespoły Scrumowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 38
XP – 12 praktyk w grupach Pętle informacji zwrotnej Ciągły proces Gra w planowanie Programowanie Parami Test-Driven Development Klient na miejscu Ciągły proces Małe wydania Refactoring Continuous Integration Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 39
XP – 12 praktyk w grupach Wspólne zrozumienie (Przejrzystość) Metafora systemu Standard kodu Prostota projektu (KISS) Wspólny kod „Sustainable pace” 40-godzinny tydzień pracy Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 40
Warsztat - wprowadzenie Podzielcie się na zespoły wielkości 3-9 osób Pracujecie w firmie, która planuje stworzenie aplikacji która zapewni dostęp do muzyki online, zarabiając na reklamach i płacąc artystom/wytwórniom tantiemy w zależności od popularności utworów Na stworzenie pierwszej wersji aplikacji jest 4 miesiące (uwarunkowania biznesowe) Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Zadanie 1: Przygotowanie Backlogu Produktu Jest 1 grudnia, termin wydania to 30 marca Zdefiniujcie wymagania funkcjonalne i niefunkcjonalne Dla każdego elementu Backlogu użyjcie osobnej karteczki Rada: Nie próbujcie dokładnie analizować wszystkiego, wystarczy max. 20 najważniejszych elementów Czas: 15 minut Produkt: Backlog Produktu Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Zadanie 2: Porządkowanie Backlogu Produktu Nadajcie każdemu elementu wartość biznesową w skali 1-100 i zapiszcie ją w rogu karteczki Żadne dwa elementy nie mogą mieć takiej samej wartości W trakcie dyskusji możecie znaleźć nowe wymagania, połączyć lub rozbić już istniejące Posortujcie Backlog według wartości Czas: 15 minut Produkt: uporządkowany Backlog Produktu Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Zadanie 3: Szacowanie wielkości wymagań Każdy z Was otrzymuje jeden zestaw kart do planning pokera Uzgodnijcie, który element Backlogu jest średniej wielkości i nadajcie mu wartość „5” „Wielkość” uwzględnia złożoność, niepewność oraz całość prac aby wymaganie było gotowe do użycia Głosujcie, określając relatywną wielkość wymagań – w przypadku znacznej różnicy zdań przedyskutujcie przyczyny i głosujcie ponownie; wynik oszacowania zapiszcie na karteczce z wymaganiem Zsumujcie oszacowania aby określić wielkość Backlogu Produktu Czas: 15 minut Produkt: Backlog Produktu z oszacowaniem Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Zadanie 4: Precyzowanie elementów Backlogu Założenie: w dwutygodniowym Sprincie zespół może zrealizować 14 punktów Rozbijcie wymagania (tworząc w razie potrzeby nowe karty) w taki sposób, aby w pierwszych dwóch Sprintach złożoność żadnego nie przekroczyła 3 punktów a w kolejnych czterech Sprintach – 8 punktów Rada: rozbijając wymagania nie zapominajcie o ich wartości biznesowej Czas: 20 minut Produkt: Backlog Produktu o odpowiedniej granulacji Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Zadanie 5: Planowanie empiryczne Założenie: w trzech pierwszych Sprintach Velocity zespołu wyniosło: 10, 13 i 15 punktów. Odpowiedzcie na następujące pytania: Czy zrealizujecie projekt w oczekiwanym czasie? Ile Sprintów potrzebujecie na zakończenie prac? Co jest sukcesem projektu? Jak możecie zwiększyć szansę sukcesu? Czas: 10 minut Produkt: harmonogram oparty o dane empiryczne Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Lektury K. Schwaber, J. Sutherland – Scrum Guide M. Cohn – Agile Estimating and Planning M. Cohn – Succeeding with Agile: Software Development Using Scrum L. Adkins – Coaching Agile Teams: A Companion for ScrumMasters, Agile Coaches, and Project Managers in Transition D. Anderson - Kanban: Successful Evolutionary Change for Your Technology Business K. Beck – Extreme Programming Explained: Embrace Change www.scrum.org www.scrumalliance.org limitedwipsociety.ning.com www.mountaingoatsoftware.com www.extremeprogramming.org Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 47
Pytania ? Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 48