Programowanie zespołowe Dr inż. Robert Banasiak 1
Agile jest dosyć sformalizowany... Kto by pomyślał ;-) Ludzie powinni być jakoś zorganizowani Inaczej będą się włóczyć bez celu Agile zastępuje techniki z tradycyjnych metodyk innymi technikami Może ciekawszymi i zabawniejszymi? (np. programowanie w parach jest zabawne)... ale niekoniecznie mniej formalnymi 2
Nie chcemy/możemy pracować w przedziałach o określonym czasie. Ciągle wpychają nam bardzo ważne rzeczy do zrobienia. Zdolności estymacyjne zespołu są... Czy jesteśmy zbyt elastyczni jak na agile? 3
Temat 1 - Oszczędne wytwarzanie Temat 2 - Kanban w pigułce Temat 3 - Kanban przez analogię (do Scrum) 4
Czas cyklu produkcyjnego (ang. lead time) średni czas jaki potrzebny jest do przepłynięcia zadania przez proces. Czas oczekiwania (ang. queue time) Czas pomiędzy czynnościami, w którym zadania czekają na wejście do kolejnego etapu procesu Czas przetwarzania (ang. procesing time) Czas potrzebny na wytworzenie (wykonanie zadania) Czas generowania wartości (ang. Value added time) Czas związany z tymi działaniami w procesie, za które faktycznie klient płaci 5
Ciągła poprawa (ang. continuous improvement) procesu poprzez redukcję odpadów (czynności nie generujących wartości dodanej). Minimalizacja czasu cyklu produkcyjnego Czas cyklu produkcyjnego = czas generacji odpadów + czas wytworzenia wartości dodanej Lean = Zamiast minimalizować czas wytworzenia wartości dodanej zminimalizujmy czas generacji odpadów. 6
7
8
(jap. Kan - widoczny, Ban - kartka papieru) Tabliczka informacyjna, billboard Sterowanie zapasami Dążenie do eliminacji magazynów Uruchamianie produkcji w razie potrzeby System pull Karta Kanban zlecenie produkcyjne + opis zawartości pojemników 9
Adaptacja dla potrzeb wytwarzania oprogramowania Wizualny system zarządzania, który określa co i ile wyprodukować Metoda Kanban Przyrostowy proces ewolucyjnego ulepszania organizacji Limit pracy w toku (ang. Work-In-Progress - WIP) jako mechanizm detekcji problemów organizacyjnych i stymulacji współpracy 10
Wizualizacja przepływu procesu Podziel pracę na części, zapisz je na kartkach i umieść na ścianie Wykorzystaj nazwane kolumny w celu zilustrowania w którym miejscu przepływu znajduje się każdy element. 11
Ograniczanie zadań w realizacji (WIP Worki-In-Progress) Określ limity dotyczące liczby elementów, które mogą znajdować się w danym stanie przepływu. 12
Pomiary czasu cyklu produkcyjnego (ang. lead time) Optymalizuj proces dążąc do minimalizacji czasu cyklu oraz do zwiększania jego przewidywalności. 13
Obie metodyki są narzędziami procesowymi które można porównywać w celu lepszego zrozumienia ale nie oceny!! Żadne narzędzie nie jest kompletne, żadne nie jest doskonałe. 14
Scrum jest bardziej nakazowy 15
Scrum narzuca role Kanban nie definiuje żadnej roli nie znaczy, że nie powinno być ról znaczy, że nie musi być 16
Scrum wprowadza iteracje o określonym czasie trwania 17
Kanban nie narzuca iteracji Wydanie - co tydzień Planowanie co 2 tygodnie Retrospekcja co 4 tygodnie 18
Kanban nie narzuca iteracji Wydanie jeżeli jest coś gotowego Planowanie jeżeli brakuje zadań Retrospekcje co 4 tygodnie 19
Ograniczanie liczby zadań w toku Kanban Na stan przepływu Scrum Na iterację (jednostkę czasu) 20
Podejście empiryczne 21
Zmień coś -> sprawdź jak poszło -> wyciągnij wnioski -> znów coś zmień Scrum sprint (tygodnie), daily scrum (1 dzień) Kanban Czas cyklu, wąskie gardło 22
Scrum odmawia zmian w obrębie iteracji Kanban dopuszcza zmiany przy ograniczeniu WIP Czas odpowiedzi Średnio: długość sprintu/2 Czas odpowiedzi: czas potrzebny na zrobienie miejsca 23
Scrum Tablica resetowana na koniec sprintu Początek sprintu Środek sprintu Koniec sprintu Kanban Tablica jest trwała 24
Scrum nakazuje interdyscyplinarność zespołów Kanban interdyscyplinane zespoły są opcjonalne 25
Scrum dzieli prace na mniejsze części Rejestr sprintu jest wypełniany elementami, które zespół ocenia jako realizowalne w jego zakresie. Scrum wymaga określenia priorytetów dla pozycji rejestru 26
Kanban zachęca do dzielenia pracy na mniejsze części W Kanban nie ma reguły mówiącej o potrzebie dopasowania elementu do zakresu czasowego. Kanban nie narzuca schematu priorytetyzacji 27
Scrum wymaga szacowania oraz określania szybkości (ang. velocity) zespołu 28
Kanban nie wymaga szacowania Jeżeli przewidywalność jest potrzebna Można mierzyć szybkość jak w Scrum Można dzielić pracę na części o podobny rozmiarze... 29
Product backlog = team backlog Zespół może obsługiwać wiele projektów nawet w zakresie tego samego sprintu 30
Wiele produktów może przepływać przez tablicę 31
Są harmonogramowane w systemie pull Zasada zarządzania JIT (lean) Bazują na ciągłym, empirycznym procesie optymalizacji Zasada Kaizen (lean) Przedkładają odpowiedź na zmianę ponad podążanie za ustalonym planem Manifest Agile 32
Scrum narzuca istnienie codziennych krótkich spotkań (Daily Scrum) Zorientowane na ludzi Kanban nie wymaga Ale zazwyczaj jakaś forma jest stosowana Zorientowane na tablicę 33
Scrum narzuca burndown charts 34
Kanban nie narzuca żadnego typu wykresu Ale nie zabrania np.cumulative Flow diagram 35
Większość organizacji chce dostarczać produkty szybciej czyli redukować czas cyklu Co to oznacza? Zwiększyć liczbę pracowników? Ciężej pracować (w nadgodzinach)? Zazwyczaj najskuteczniejszym sposobem jest wygładzenie przepływu i ograniczenie zadań do pojemności. Diagramy typu Cumulative Flow mogą pokazać dlaczego tak się dzieje. 36
Przede wszystkim minimalizacja kolejek (oczekiwania). 37
Elementy XP w Scrum Przypadki użycia w Scrum Ograniczenie rozmiaru kolejki (Kanban) w Scrum 38
4 osobowy zespół, początkowe WIP = 1 39
WIP = 8 40
Problem z serwerem integracyjnym 41
42
Programista mógłby zacząć nowe zadanie ale limit go ogranicza co powoduje, że skupi się on na pomocy w zadaniach, które blokują kolumne Done (Deploy) 43
Brak kolejek (magazynów przedprodukcyjnych) Kiedy tylko zespół jest gotowy do wykonania kolejnego zadania prosi właściciela produktu o zadanie o najwyższym priorytecie 44
45
46
47
48
49
50
51
52
53
54
55
56
Wizualizację przepływu procesu Masz proces? Określ jego kroki (zadanie, kolejka) Ograniczanie WIP W którym miejscu piętrzą się nieukończone zadania? Wybierz limity dla WIP, oznacz kroki procesu limitami. Zarządzaj przepływem Kontroluj czas cyklu 57
Zaimplementuj pętlę zwrotną Regularnie przeglądaj proces i przepływy Utrzymuj jawność reguł procesu Ułatw ludziom wykonywanie odpowiednich zadań w odpowiedni sposób. Ulepszaj współpracując Wykorzystaj metryki i modele w celu ciągłego ulepszania 58
Kaizen 1. Problemy stwarzają możliwości. 2. Pytaj 5 razy Dlaczego? 3. Bierz pomysły od wszystkich. 4. Myśl nad rozwiązaniami możliwymi do wdrożenia. 5. Odrzucaj ustalony stan rzeczy. 6. Wymówki, że czegoś się nie da zrobić, są zbędne. 7. Wybieraj proste rozwiązania, nie czekając na te idealne. 8. Użyj sprytu zamiast pieniędzy. 9. Pomyłki koryguj na bieżąco. 10. Ulepszanie nie ma końca. 59
http://www.slideshare.net/agileee/henrikkniberg-agile-at-home "The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time." [1] Tom Cargill, Bell Labs 60
Kanban and Scrum - making the most of both, Henrik Kniberg & Mattias Skarin http://www.slideshare.net/agileee/nickoostvogels-5-arguments-against-kanban http://www.slideshare.net/abdulqadirmaster /jit-in-toyota http://www.systems2win.com/c/time_definiti ons.htm 61