Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Scrum w 59 minut. Podstawy Scruma.

Tomek Włodarek
March 21, 2012
190

Scrum w 59 minut. Podstawy Scruma.

Oprócz genezy i podstaw Scruma zarysowane są również potencjalne zagrożenia i problemy związane z jego wdrażaniem.

Tomek Włodarek

March 21, 2012
Tweet

Transcript

  1. Tomasz Włodarek PST, PSM, PSPO, CSM, CSPO, CSP, itp. itd.

    J Obecnie: niezależny konsultant, trener, coach Wcześniej: Senior Project Manager, Sabre Holdings, Kraków Product Team Manager, Motorola, Kraków (Senior) Software Engineer, Motorola, Kraków Game Developer, Game Co-Author, Optimus Nexus, Gdańsk Pełny profil zawodowy: www.linkedin.com/in/wlodarek www.poddrzewem.pl [email protected]
  2. Kocham te ostateczne, nieprzekraczalne terminy. Uwielbiam świst jaki wydają gdy

    mijamy je na pełnym gazie. –Douglas Adams *http://pl.wikipedia.org/wiki/Douglas_Adams © 2006–2011 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  3. Odjazd autobusu 17:00, kolejne przystanki 24:15, 26:15, … Przyjazd na

    miejsce 31:15 Oddać software na czas (prawie) każdy głupi potrafi. –Przysłowie indiańskie ” “ © 2006–2011 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  4. W zmaganiach między tobą a rzeczywistością, rzeczywistość zdaje się mieć

    przewagę. –Przysłowie indiańskie ” “ Jeśli nazwiemy psi ogon łapą, ile łap ma pies? Cztery. Nazwanie ogona łapą nie powoduje, że pies zaczyna biegać szybciej. –Abraham Lincoln © 2006–2011 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  5. Zwinność (agility) oznacza (1) zdolność łatwego i szybkiego poruszania się;

    lekkość, zwrotność, bystrość; (2) zdolność do szybkiego myślenia i wyciągania wniosków; (3) elastyczność i potencjał – w sferze umiejętności i możliwości – do szybkiego i sprawnego dostosowywania się do zachodzących zmian, a także... ...odwagę bycia wystarczająco szczerym by przyznać, iż budowanie oprogramowania jest procesem złożonym, który nie może zostać perfekcyjnie zaplanowany ze względu na zmieniające się otoczenie, potrzeby, wymagania i założenia.
  6. Dlaczego warto rozważać zwinne podejście Stan bieżący §  Opóźnienia w

    realizacji projektów, długie cykle produkcyjne, późna kapitalizacja. Innowacja staje się imitacją §  Planowanie i utrzymanie planu wydaje się zabierać zbyt dużo czasu §  Odstępstwo od planu jest kosztowne, wprowadzanie zmian w trakcie realizacji projektu jest trudne §  Jakość tworzonego oprogramowania się pogarsza, faza stabilizacji przed wydaniem się wydłuża §  Produkty stają się coraz droższe w utrzymaniu i rozwijaniu §  Niezadowoleni, zrażeni współpracą klienci/odbiorcy §  Marsze śmierci* obniżają morale, rośnie frustracja, występuje przerzucanie się odpowiedzialnością i szukanie kozłów ofiarnych *Edward Yourdon, Marsz ku klęsce, WNT 2007 Agile §  Umiejętność dokonywania szybkiej zmiany, łatwość jej realizowania §  Zwiększona produktywność i jakość §  Wczesna eliminacja ryzyka §  Wczesne uzyskiwanie wartości §  Zwiększona świadomość odnośnie aktualnego stanu prac (umiejscowienie w cyklu produkcyjnym) §  Ograniczone marnotrawstwo §  Odchudzone (lean) produkty, szybciej i precyzyjniej zdobywające rynek §  Poprawa relacji z klientami/odbiorcami §  Zaangażowani i zmotywowani pracownicy §  Obniżone całkowite koszty realizacji (produkcji, wdrożenia i utrzymania oprogramowania) © 2006–2011 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Wszystkie prawa zastrzeżone.
  7. Wszyscy docenią Scruma, bowiem opisuje on dokładnie to, co robimy,

    gdy zostaniemy przyparci do muru. –Jim Coplien (The Scrum Guide, Ken Schwaber, Jeff Sutherland) Paradoksalnie, dopiero kiedy jest naprawdę tragicznie postępujemy właściwie – zbieramy zespół i odwołując się do nadrzędnego celu prosimy o inicjatywę, pomoc i zaangażowanie, deklarując pełne wsparcie. © 2006–2011 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  8. © 2006–2011 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany

    na licencji Creative Commons (by-nc-nd). ...podejście holistyczne – „rugby” – charakteryzuje się tym, że cały zespół, wspólnie próbuje pokonać cały dystans, wielokrotnie przekazując sobie piłkę. –Hirotaka Takeuchi, Ikujiro Nonaka The New New Product Development Game (1986) ” “
  9. Scrum w pigułce © 2006–2011 Tomasz Włodarek. Pragmatyczne metody wytwarzania

    oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd). •  Ustal datę prezentacji •  Stwórz produkt do zaprezentowania •  Przedstaw go odbiorcy, uzyskaj informację zwrotną i wykorzystaj ją w toku dalszego rozwoju •  Powtarzaj ten cykl regularnie i często, jak najczęściej
  10. 2–4 tygodnie Scrum Role (Scrum Team) Product Owner Zespół Deweloperski

    Scrum Master Narzędzia (Artifacts) Przyrost Product Backlog Sprint Backlog Definition of Done (DoD) Wykres spalania (Burndown Chart) Zdarzenia (Events) Sprint Sprint Planning (1) i (2) Codzienny Scrum (Daily Scrum) Sprint Review Retrospektywa (Retrospective) Wstępne planowanie (1) Product Owner uczestniczy w przygotowaniu wizji produktu, roadmappingu, wstępnym budżetowaniu (2) Product Owner przygotowuje założenia wydania i wraz z Zespołem tworzy zręby Product Backlogu. Ustala kolejność realizacji od kątem osiąganej wartości. Sprint Planning (4h + 4h) (1) Product Backlog jest omawiany, w ten sposób uzgadniany jest zakres i cel pojedynczego Sprintu (2) Zespół przygotowuje Sprint Backlog, czyli szczegółowy zakres i plan prac na bieżący Sprint Realizacja Sprintu Zespół realizuje Przyrost, zgodnie z ustalonymi standardami (DoD), poddając przebieg prac codziennej ocenie (Daily Scrum); ilość pozostałej do wykonania pracy oceniana jest na podstawie wykresu spalania Sprint Review (4h) Produkt poddawany jest wspólnej (angażującej interesariuszy i odbiorców) inspekcji (feedback loop) Na jej podstawie modyfikuje się plany rozwoju produktu (Product Backlog) a Product Owner ustala kolejność prac na kolejne Sprinty Scrum Master stoi na straży przejrzystości (nazywania rzeczy takimi jakie są), przestrzegania reguł i efektywności wykorzystania Scruma Sprint Retrospective (3h) Zespół Scrumowy poddaje kontroli i korekcie efektywność swoich działań © 2006–2011 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  11. Scrum jest narzędziem umożliwiającym osiągnięcie zwinności Scrum: (1) narzędzie wykorzystywane

    do osiągnięcia zwinności (2) metoda, dzieki której ludzie mogą rozwiązywać złożone problemy, by w sposób produktywny i kreatywny wytwarzać produkty o najwyższej możliwej wartości. §  proste reguły i wszechobecne ograniczenia czasowe (time–boxed containers) pozwalają zapanować nad chaosem §  samoorganizacja pozwala zyskać synergię §  tworzenie gotowego produktu z każdym krokiem pozwala lepiej rozpoznawać rzeczywistość Najbardziej popularna ze wszystkich zwinnych metod: 58% Scrum, 17% hybryda Scruma z programowaniem ekstremalnym (XP), pozostałe łącznie 25% (w tym własne odmiany 5%). Źródło: State of Agile Survey, 5th annual State of Agile Software Development Survey, 2010, VersionOne Inc. © 2006–2011 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  12. Scrum nie jest •  magiczną różdżką, nie uzdrawia cudownie, nie

    leczy arogancji, ignorancji, lenistwa i wiary w cuda – powoduje natomiast, że wszystkie te problemy stają się bardzo, bardzo widoczne •  Scrum nie jest metodyką która mówi jak wytwarzać lepsze produkty •  Scrum nie odpowiada na pytanie jak należy produkować oprogramowanie wyższej jakości, lepiej, szybciej •  Scrum (jak wszystkie zwinne metody) bazuje na postulacie, że nie istnieje meta–rozwiązanie dla produkcji oprogramowania •  możliwe jest jedynie zdefiniowanie ram w obrębie których stosowane procesy i narzędzia będą empirycznie doskonalone •  Scrum jest modelem koncepcyjnym, narzędziem, które pomaga ustalić co jest przeszkodą w produkowaniu oprogramowania o wyższej jakości, lepiej, szybciej © 2006–2011 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  13. Scrum jest łatwy i intuicyjny, i jednocześnie niezwykle trudny do

    opanowania. nie bryka? © 2006–2011 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  14. Jaja kwadratowe. Scrum but. WAGILE. Quasi–agile. Pseudo Scrum. Flaccid Scrum.

    Fasada. Ludzie uczą się Scruma i używają go, ale nie zmieniają sposobów w jaki wykonują pracę na co dzień. Product Ownerzy nalegają na jednoczesne zobowiązania odnośnie dat i zakresu. Zespoły wytwarzają niekompletne, niezrozumiałe przyrosty i robią to nieregularnie. Jakość ulega degradacji. Wobec tych faktów, kierownictwo nadal zmuszone jest wydawać polecenia. Źródła trudności. Współpraca z klientem 71%, opór przed zmianą 59%, brak doświadczenia 52%, brak wsparcia kierownictwa 26%, sztywne przypisania do działów 22% © 2006–2011 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  15. Teściowa N a s z a m et a fo

    r yc z n a teściowa to osoba, która doskonale wie, że jej córka/ syn mogła/mógł poślubić kogoś lepszego i której sensem życia staje się wyprowadzenie cię na ludzi. Poprzez decyzję o wdrażaniu Scruma, zaprosiliście ją, by z wami zamieszkała. © 2006–2011 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  16. Podczas wdrażania Scruma… •  …natychmiast zaczynają się pojawiać wykręty (ScrumButs)

    •  ScrumButs to „powody”, dla których nie można w pełni wykorzystać Scruma, by rozwiązać problemy i uzyskać spodziewanych korzyści •  ScrumButs to przejaw postaw kulturowych, tradycyjnie stosowanych praktyk i przyzwyczajeń © 2006–2011 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  17. (Wykręt)(Powód)(Alternatywa) Scrumujemy, ale (codzienne Scrumy są zbyteczne)(ponieważ członkowie zespołu nie

    muszą się spotykać tak często)(więc robimy status meetingi z udziałem managementu raz w tygodniu) Scrumujemy, ale (retrospektywy to strata czasu)(bo i tak się nic nie zmienia)(więc po prostu ich nie robimy) Scrumujemy, ale (nie możemy mieć zespołów interdyscyplinarnych)(bo przecież nie możemy zmienić struktury organizacyjnej)(więc nie mamy gotowego produktu co Sprint, ani co dwa, ani nawet co trzy, cztery, pieć…) Scrumujemy, ale (jedna osoba nie jest w stanie ogarnąć całości produktu)(przecież jest taki rozległy)(więc mamy po kilku Product Ownerów na każdy zespół) © 2006–2011 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  18. (Wykręt)(Powód)(Alternatywa) Scrumujemy, ale (nasz Product Owner nie ma czasu)(bo jest

    bardzo zajęty swoimi sprawami)(więc Product Backlog jest przygotowywany przez Scrum Mastera) Scrumujemy, ale (zakres prac jest zamrożony)(bo kierownik projektu wymaga od nas deklaracji co do zakresu i czasu)(więc nie robimy testów, żeby wyrobić się na koniec Sprintów) Scrumujemy, ale (zakres prac w Sprincie ciągle się zmienia)(bo nasi klienci ciągle zgłaszają zmiany i zastrzeżenia)(więc granice Sprintów są tylko umowne) Scrumujemy, ale (nie robimy Sprint Review)(bo i tak nikt tego nie rozumie – najpierw robimy przecież backend, poza tym to wszystko nie jest jeszcze przetestowane)(więc pokazujemy coś Product Ownerowi średnio raz na pół roku) © 2006–2011 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  19. test charakteru całej organizacji © 2006–2011 Tomasz Włodarek. Pragmatyczne metody

    wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd). Zwykle, gdy ktoś usuwa jeden z podstawowych elementów Scruma, robi tak ponieważ element ten obnaża aspekty rzeczywistości których nikt nie chce zauważać. –Ken Schwaber ” “
  20. syndrom wybitej szyby © 2006–2011 Tomasz Włodarek. Pragmatyczne metody wytwarzania

    oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd). Jeśli komuś na czymś nie zależy jest spora szansa, że za chwilę nikomu nie będzie zależało na niczym. –Przysłowie indiańskie ” “
  21. wartości i kodeks Scrum •  Umiejętność podejmowania zobowiązania rozumiana jako

    silne poczucie związku z wyrażanymi opiniami i podejmowanymi działaniami oraz konsekwencja w ich realizacji •  Uważność i koncentracja uwagi, bez nich nie jest możliwe dogłębne rozumienie problemów i potrzeb, których rozwiązaniem ma być wytworzone oprogramowanie •  Otwartość wskazywana jako gotowość do dzielenia się informacją ze wszystkimi członkami zespołu, bez względu na charakter – zgodny z oczekiwaniami czy nie – przekazywanej informacji •  Poszanowanie oznaczające pozytywne odczucia jednej osoby względem drugiej i umiejętność budowania synergii przy uwzględnieniu silnych i słabych stron innych członków zespołu, różnic w doświadczeniu, wykształceniu i roli w zespole. Zespół scrumowy stanowi całość i jedność i tak jest postrzegany przez resztę organizacji •  Odwaga jest elementem niezbędnym do istnienia i rozwoju Scruma. Jako nowa metoda pracy wymaga on zmiany dotychczasowego porządku, przełamywania zwyczajów i sposobów wykonywania pracy. Nieodmiennie związane jest to z dużym oporem © 2006–2011 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  22. najczęstsze problemy •  Przyrost nie jest wykonany w sposób kompleksowy,

    w związku z czym postęp prac nie jest klarowny •  Dług technologiczny się kumuluje ponieważ przyrosty nie są w pełni zakończone •  Zespoły nie są interdyscyplinarne •  Zespoły nie są samoorganizujące się •  Zespołom przerywa się pracę w Sprintach •  Data ukończenia i zakres prac są w dalszym ciągu używane łącznie i traktowane jako niezmienne © 2006–2011 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  23. z czym toczy się walka •  tyrania modelu kaskadowego • 

    iluzja podejścia nakazowo–rozdzielczego •  wiara w cuda •  przekonanie o własnej nieomylności •  przywiązanie do braku przejrzystości Dlatego poziom sukcesu zależy od wizji, determinacji, konsekwencji i woli zmierzenia się z tymi akceptowanymi od lat nieefektywnościami. © 2006–2011 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  24. wymagane zmiany •  zarządzenie empiryczne zastępuje zarządzanie predyktywne •  przejrzystość

    staje się podstawową wartością •  władza – decyzyjność i odpowiedzialność – przechodzi na niższe szczeble organizacji •  większa uważność i częste dokonywanie trudnych wyborów © 2006–2011 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  25. dziękuję! Tomasz Włodarek [email protected] http://www.linkedin.com/in/wlodarek http://www.poddrzewem.pl http://www.scrum.org Scrum Guide. Ken

    Schaber, Jeff Sutherland, 2011 The Land that Scrum Forgot. Robert Martin, 2010 Death March. Edward Yourdon, Prentice Hall 2004 The Mythical Man–Month: Essays on Software Engineering. Frederick P. Brooks, Jr., Pearson, 1975–1995 The New New Product Development Game. Hirotaka Takeuchi, Ikujiro Nonaka, Harvard Business Review, Jan-Feb 1986 Agile Project Management: Creating Innovative Products. Jim Highsmith Agile and Iterative Development: A Manager's Guide. Craig Larman Agile Project Management with Scrum. Ken Schwaber The Enterprise and Scrum. Ken Schwaber Scaling Lean & Agile Development. Craig Larman, Bas Vodde Succeeding with Agile. Mike Cohn, Addison-Wesley 2010 © 2006–2011 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).