An Introduction to Scrum

Download Report

Transcript An Introduction to Scrum

Wprowadzenie
do Scrum
<twoje imię nazwisko>
<data>
Mountain Goat Software,
LLC
Wprowadzenie do Scrum
Prezentowane przez
<ty>
<data>
Mountain Goat Software,
LLC
Przegrywamy sztafetę
Podejście do rozwoju produktu podobne do
biegu sztafetowego ... może powodować
konflikty z celami maksymalnej szybkości i
elastyczności. Zamiast tego podejście
całościowe, "rugby" - w którym zespół stara
się osiągać cele jako całość, przekazując
piłkę tam i z powrotem - może lepiej służyć
współczesnym wymaganiom konkurencyjności."
Hirotaka Takeuchi and Ikujiro Nonaka, “The
New New Product Development Game”,
Harvard Business Review, January 1986.
Mountain Goat Software,
LLC
Scrum w 100 słowach
• Scrum to zwinny proces, który pozwala nam skupić się na
•
•
•
dostarczaniu najwyższej wartości biznesowej w najkrótszym
czasie.
Pozwala szybko i wielokrotnie weryfikować działające
oprogramowanie (co dwa tygodnie do miesiąca).
To biznes ustala priorytety. Zespoły samodzielnie organizują się,
aby ustalić najlepsze sposoby na dostarczenie funkcjonalności
o najwyższym priorytecie.
Co dwa tygodnie do miesiąca każdy może zobaczyć działające
oprogramowanie i zdecydować, czy wydać je takie, jakie jest,
czy też nadal rozwijać je podczas kolejnego sprintu.
Mountain Goat Software,
LLC
•
•
Pochodzenie Scrum
Jeff Sutherland
•
•
Ken Schwaber
•
Prezes ADM
•
Wraz z Sutherlandem zaprezentował
Scrum jako metodykę - OOPSLA 95
Autor 3 książek o Scrumie
•
•
•
Poczatkowe scrumy w Easel Corp w 1993
Firma IDX zespoły 500+ osobowe
Mike Beedle
•
Wzorce Scrum na PLOPD4
Ken Schwaber and Mike Cohn
•
Współtworzyli Scrum Alliance w 2002,
początkowo z Agile Alliance
Mountain Goat Software,
LLC
Scrum jest stosowany przez:
•Microsoft
•Yahoo
•Google
•Electronic Arts
•High Moon Studios
•Lockheed Martin
•Philips
•Siemens
•Nokia
•Capital One
•BBC
•Intuit
Mountain Goat Software,
LLC
•Intuit
•Nielsen Media
•First American Real Estate
•BMC Software
•Ipswitch
•John Deere
•Lexis Nexis
•Sabre
•Salesforce.com
•Time Warner
•Turner Broadcasting
•Oce
Scrum jest stosowany w:
•
•
•
•
•
•
•
•
•
Oprogramowaniu
komercyjnym
Rozwoju na własne potrzeby
Programach na zamówienie
Projektach o ustalonej cenie
Aplikacjach finansowych
Aplikacjach z certyfikatem
ISO 9001
Systemach wbudowanych
Systemach z wymaganiami
99,999% uptime 24x7
Joint Strike Fighter
Mountain Goat Software,
LLC
• Rozwóju gier wideo
• Systemach krytycznych dla życia
• Oprogramowaniu do sterowania
satelitami
• Stronach internetowych
• Tabletach
• Telefonach komórkowych
• Aplikacjach dostawców
•
sieciowych (ISV)
Rozwoju niektórych z
największych istniejących
aplikacji
Charakterystyka
•
•
•
•
•
•
Samoorganizujące się zespoły
Postęp prac nad produktem następuje w
miesięcznych „sprintach”
Wymagania są gromadzone w postaci listy
rejestru produktu - “product backlog”
Brak narzuconych praktyk inżynierskich
Ustalone reguły w celu stworzenia zwinnego
środowiska projektowego
Jeden z wielu „zwinnych procesów”
Mountain Goat Software,
LLC
Manifest Agile
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
Źródło: www.agilemanifesto.org,
polskie tłumaczenie pl.wikipedia.org
Mountain Goat Software,
LLC
Poziom zakłóceń projektu
Mountain Goat Software,
LLC
Anarchia
Źródło: Strategic Management and
Organizational Dynamics by Ralph
Stacey in Agile Software Development
with Scrum by Ken Schwaber and Mike
Beedle.
Proste
Technologia
Nieprzewidywalna
Proste do uzgodnienia
Skomplikowane
Przewidywalna
Wymagania
Trudne do uzgodnienia
Scrum
24 godziny
Sprint
2-4 tygodnie
Cel Sprint-u
Rejestr sprintu
(Sprint Backlog)
Return
Gift wrap
Cancel
Rejestr Produktowy
(Product Backlog)
Mountain Goat Software,
LLC
Przyrost
funkcjonalności
Podsumowanie
Rysunek dostępny pod adresem
www.mountaingoatsoftware.com/scrum
Mountain Goat Software,
LLC
Sprints
• Postęp projektu w serii „sprintów”
•
Analogiczne do iteracji w Extreme Programming
• Typowy czas trwania to 2–4 tygodnie
• Stały czas trwania prowadzi do lepszego
•
rytmu
Produkt jest projektowany, programowany
i testowany podczas sprintu
Mountain Goat Software,
LLC
Rozwój sekwencyjny a
nakładający się
Wymagania
Projekt
Kodowanie
Test
Zamiast robić każdą
rzecz po kolei
…w scrumie robimy
wszystkiego trochę
Źródło: “The New New Product Development Game” by
Takeuchi
and Software,
Nonaka. Harvard Business Review, January 1986.
Mountain
Goat
LLC
Żadnych zmian podczas sprintu
Zmiana
• Długość sprintów powinna uwzględniać to,
na jaki czas możemy wstrzymać się od
wprowadzania zmian
Mountain Goat Software,
LLC
Ramy Scrum
Role
•Właściciel produktu
•Mistrz (ScrumMaster)
•Zespół
Rytuały
•Planowanie sprintu
•Przegląd sprintu
•Retrospektywa
•Codzienny scrum
Artefakty
•Rejestr produktowy
•Rejestr sprintu
•Wykres wypalania
Mountain Goat Software,
LLC
Scrum framework
Role
•Właściciel produktu
•Mistrz (ScrumMaster)
•Zespół
Rytuały
•Planowanie sprintu
•Przegląd sprintu
•Retrospektywa
•Codzienny scrum
Artefakty
•Rejestr produktowy
•Rejestr sprintu
•Wykres wypalania
Mountain Goat Software,
LLC
Właściciel produktu
(Product owner)
• Definiuje funkcjonalności produktu
• Decyduje o dacie wydania i zawartości
• Jest odpowiedzialny za dochodowość/
•
•
•
zwrot z inwestycji (ROI) dla produktu
Priorytetyzuje funkcjonalności według ich
wartości rynkowej.
Dostosowuje priorytety w iteracjach
Akceptuje wykonanie pracy
Mountain Goat Software,
LLC
Mistrz - The ScrumMaster
•
•
•
•
•
•
Reprezentuje management w projekcie
Odpowiada za wdrażanie praktyk i wartości
Scrum
Usuwa przeszkody
Czuwa nad produktywnością zespołu
Ułatwia współpracę pomiędzy funkcjami
Chroni zespół przed zewnętrznymi
ingerencjami
Mountain Goat Software,
LLC
Zespół - The team
•
•
•
Zwykle 5-9 osób
Wielofunkcyjny
•
Programisci, testerzy, projektanci user
experience itd.
Członkowie pracują na cały etat
•
Mogą być wyjątki (np. administrator baz danych)
Mountain Goat Software,
LLC
Zespół - The team
•
•
Samoorganizujacy się
•
Idealnie bez tytułów lecz wyjątkowo są one
dopuszczalne
Skład zespołu może się zmieniać tylko
pomiędzy sprintami
Mountain Goat Software,
LLC
Scrum - ramy
Role
•Właściciel produktu
•Mistrz (ScrumMaster)
•Zespół
Rytuały
•Planowanie sprintu
•Przegląd sprintu
•Retrospektywa
•Codzienny scrum
Artefakty
•Rejestr produktowy
•Rejestr sprintu
•Wykres wypalania
Mountain Goat Software,
LLC
Wydajność
zespołu
Spotkanie planistyczne
Ustalenie priorytetów
Rejestr
produktowy
•
•
Warunki
biznesowe
Właściwy
produkt
Technologia
Analiza i szacowanie rejestru
produktu
Wybranie celu sprintu
Cel
sprintu
Planowanie sprintu
• Plan osiągnięcia celu sprintu
• Przygotowanie rejestru sprintu
•
Mountain Goat Software,
LLC
(zadań) z rejestru produktu
(opowieści użytkownika/
funkcjonalności)
Estymacja rejestru produktu (h)
Rejestr
sprintu
Planowanie sprintu
• Zespół wybiera pozycje z rejestru produktu, do
•
•
których wykonania może się zobowiązać
Zostaje utworzony rejestr sprintu
•
•
Zadania zostają zidentyfikowane i każde z nich zostaje
estymowane (1-16 godzin)
Planowanie wykonuje cały zespół a nie ScrumMaster
Uwzględniony jest projekt całościowy
Jako osoba
wybierająca się na
wakacje chciałbym
zobaczyć zdjęcia
hoteli.
Mountain Goat Software,
LLC
Warstwa funkcjonalna (8h)
Interfejs użytkownika (4h)
Testy jednostkowe (4h)
Wykonanie klasy foo (6h)
Testy wydajnościowe (4h)
Codzienny scrum
• Parametry
•
•
•
Codziennie
15-minut
Na stojaco
• Nie służy do rozwiazywania problemów
•
•
Zapraszamy cały świat
Mówić mogą tylko członkowie zespołu,
ScrumMaster i właściciel produktu
• Pomaga w unikaniu dodatkowych spotkań
Mountain Goat Software,
LLC
Każdy odpowiada na 3 pytania
Co robiłeś wczoraj?
Co będziesz robić dzisiaj?
Czy coś utrudnia pracę?
1
2
3
• Odpowiedzi nie są raportem dla
ScrumMastera
•
Są deklaracją przed innymi członkami zespołu
Mountain Goat Software,
LLC
Przegląd sprintu
• Zespół prezentuje co osiągnął w sprincie
• Zazwyczaj ma postać demo nowych
funkcji lub architektury
• Nieformalny
•
•
Zasada: 2 godziny
przygotowań
Brak slajdów
• Uczestniczy cały zespół
• Zapraszamy cały świat
Mountain Goat Software,
LLC
Retrospektywa
• Okresowo, weryfikacja, co działa, a co nie
• Zwykle 15-30 minut
• Po każdym sprincie
• Uczestniczy cały zespół
•
•
•
•
ScrumMaster
Właściciel produktu
Zespół
Mogą być klienci oraz inni uczestnicy
Mountain Goat Software,
LLC
Start / Stop / Kontynuacja
• Cały zespół przedstawia i omawia co
chciałby:
Zacząć robić
Przestać robić
To tylko jeden
ze sposobów
przeprowadzenia
retrospektywy
sprintu
Mountain Goat Software,
LLC
Kontynuować
Scrum framework
Roles
•Właściciel produktu
•Mistrz (Scrum Master)
•Zespół
Rytuały
•Planowanie sprintu
•Przegląd sprintu
•Retrospektywa
•Codzienny scrum
Artefakty
•Rejestr produktowy
•Rejestr sprintu
•Wykres wypalania
Mountain Goat Software,
LLC
Rejestr produktu
• Wymagania
• Lista wszystkich
To jest rejestr
produktu
Mountain Goat Software,
LLC
pożądanych prac w
projekcie
• Idealnie-zapisane w taki
sposób, aby każda pozycja
przedstawiała wartość dla
użytkownika lub klienta
• Priorytety ustala właściciel
produktu
• Korekta priorytetów na
początku każdego sprintu
Przykładowy rejestr produktu
Pozycja
Estymata
Gość może wykonać rezerwację.
3
Jako gość chcę mieć możliwość
anulowania rezerwacji.
5
Jako gość chcę zmienić datę rezerwacji.
3
Jako pracownik hotelu chcę mieć
możliwość uruchomienia raportu
RevPAR (revenue-per-available-room)
8
Poprawiona obsługa wyjątków
8
...
30
...
50
Mountain Goat Software,
LLC
Cel sprintu
• Krótkie zdanie informujące, na jakiej pracy
skupimy się podczas kolejnego sprintu
Nauki przyrodnicze
Aplikacja bazodanowa
Wykonanie podstawowych
funkcjonalności do badań DNA
Możliwość uruchamiania aplikacji
na bazie SQL Server oprócz
Oracle
Usługi finansowe
Wsparcie dla większej liczby
finansowych wskaźników
technicznych niż ma firma ABC
Mountain Goat Software,
LLC
Zarządzanie rejestrem sprintu
•
•
Członkowie zespołu sami wybierają prace, które
chcą wykonać
•
Praca nie jest przydzielana odgórnie
Praca pozostała do wykonywania jest
aktualizowana codziennie
Mountain Goat Software,
LLC
Zarządzanie rejestrem sprintu
•
•
•
•
Każdy członek zespołu może dodawać, usuwać
lub zmieniać rejestr sprintu
Pojawiają się prace do wykonania
Jeżeli praca jest niejasna, zdefiniuj pozycję
rejestru z większym planowanym czasem, a
następnie podziel go na mniejsze fragmenty
Aktualizuj rejestr pozostałej pracy w miarę jak
coraz więcej jest wiadome
Mountain Goat Software,
LLC
Rejestr sprintu
Zadanie
Interfejs użytkownika
Środkowa warstwa
Test środkowej warstwa
Napisanie pomocy online
Napisanie klasy foo
Dodaj log błędów
Mountain Goat Software,
LLC
Pon. Wt.
Śr. Czw. Pt.
8
4
8
16
12
10
4
8
16
16
11
8
8
8
8
8
8
4
12
8
Godziny
Wykres wypalania sprintu
Mountain Goat Software,
LLC
Zadanie
Pon. Wt.
Interfejs użytkownika
Środkowa warstwa
Test środkowej warstwa
Napisanie pomocy online
8
16
8
12
4
12
16
Śr. Czw. Pt.
8
10
16
7
11
50
Godziny
40
30
20
10
0
Mon
Mountain Goat Software,
LLC
Tue
Wed
Thu
Fri
8
Skalowalność
•
•
•
Typowy zespół składa się z 7 ± 2 osób
•
Skalowalność poprzez zespoły zespołów
Czynniki podczas skalowania
•
•
•
•
Typ aplikacji
Rozmiar zespołu
Rozproszenie zespołu
Czas trwania projektu
Scrum był stosowany w projektach, w których
uczestniczyło ponad 500 osób
Mountain Goat Software,
LLC
Skalowanie poprzez „Scrum
scrumów” (scrum of scrums)
Mountain Goat Software,
LLC
„Scrum scrumów scrumów”
(scrum of scrums of scrums)
Mountain Goat Software,
LLC
Co dalej
•
•
•
•
www.mountaingoatsoftware.com/scrum
www.scrumalliance.org
www.controlchaos.com
[email protected]
Mountain Goat Software,
LLC
Literatura o Scrum
•
•
•
•
Agile and Iterative Development: A Manager’s Guide by
Craig Larman
Agile Estimating and Planning by Mike Cohn
Agile Project Management with Scrum by Ken Schwaber
Agile Retrospectives by Esther Derby and Diana Larsen
Mountain Goat Software,
LLC
Literatura o Scrum
•
•
•
•
•
Agile Software Development Ecosystems by Jim Highsmith
Agile Software Development with Scrum by Ken Schwaber
and
Mike Beedle
Scrum and The Enterprise by Ken Schwaber
Succeeding with Agile by Mike Cohn
User Stories Applied for Agile Software Development by
Mike Cohn
Mountain Goat Software,
LLC
Copyright
• Dozwolone jest:
•
• Kopiowanie, dystrybucja, wyświetlanie i użytkowanie
• Tworzenie remiksów i adaptacji
Pod następującymi warunkami
• Uznanie Autorstwa. Należy umieścić informację o twórcy w
sposób opisany przez twórcę lub właściciela (ale nie w
sposób, który sugerowałby uznanie dla Ciebie lub
wykorzystania pracy).
• Nic w tej licencji nie umniejsza ani nie
ogranicza praw moralnych twórcy
•
Więcej informacji znajduje się pod adresem
http://creativecommons.org/licenses/by/3.0/
Mountain Goat Software,
LLC
Kontakt
Autor prezentacji: Mike Cohn
[email protected]
www.mountaingoatsoftware.com
(720) 890-6110 (office)
Polskie tłumaczenie:
Piotr Osiński
http://pl.linkedin.com/in/piotrosinski
Mountain Goat Software,
LLC