Scrum – wprowadzenie
Scrum jest jednym z najszybciej zdobywających popularność sposobów realizacji zwinnego (ang. agile) podejścia do produkcji oprogramowania. Jest prostym w zamyśle, lecz stosunkowo trudnym do wdrożenia rozwiązaniem złożonych problemów związanych z produkcją oprogramowania (m.in. terminowości i zbieżności końcowego produktu z potrzebami klienta).
Jego twórcy – Ken Schwaber i Jeff Sutherland – nie nazywają go metodyką, paradygmatem czy nawet procesem, lecz ramą metodyczną lub strukturą (ang. framework) wokół i dzięki której organizuje się praca. Struktura ta wyznaczona jest zestawem praktyk i zasad mających swoje korzenie w Lean Thinking, wspierających podstawowe założenia zwinności czyli przyrostowy proces wytwórczy, adaptacyjność procesu i samoorganizację zespołu.
„Scrum”?
Scrum jest terminem pochodzącym z rugby (polska nazwa tej formacji to „młyn”). Po raz pierwszy analogię do rugby i określenie „scrum” w odniesieniu do procesów wytwórczych zastosowali akademicy japońscy Ikujiro Nonaka i Hirotaka Takeuchi w artykule „The New New Product Development Game” (Harvard Business Review 86116:137-146, 1986) opisując holistyczne (całościowe) procesy produkcyjne w firmach Fuji Xerox, Canon, Honda, NEC, Epson, 3M i Hewlett-Packard.
Termin „scrum” został przeniesiony na grunt produkcji oprogramowania przez Jeffa Sutherlanda, Johna Scumniotalesa and Jeffa McKenna w 1993. W 1995 roku Ken Schwaber przedstawił Scrum Development Process na konferencji OOPSLA.
Scrum wypunktowany
Charakteryzując Scruma w kilku punktach można powiedzieć, że:
- jest opartym o empiryzm, zwinnym (ang. agile) sposobem planowania i kontrolowania przebiegu prac projektowych
- jest iteracyjnym i inkrementalnym sposobem wytwarzania oprogramowania (szczególnie o wysokim stopniu złożoności i/lub ryzyka)
- jest narzędziem porządkującym i kontrolującym interesy osób zaangażowanych w realizację projektu
- jest narzędziem porządkującym komunikację i maksymalizującym stopień współpracy wewnątrz– i pozazespołowej
- jest opartym o samoorganizację sposobem zwiększania produktywności zespołu
- prowadzi do głębokich strukturalnych przemian organizacji mających na celu jej uzwinnienie i wyszczuplenie
- nie wprowadza nowych i nie interferuje z już stosowanymi praktykami inżynierskimi (często stosowany w tandemie z eXtreme Programming Scrum nie traktuje o praktykach inżynierskich, skupiając się na zagadnieniach związanych z organizacją pracy)
- jest skalowalny od pojedynczych zespołów do całych organizacji i przedsiębiorstw
Elastyczność i ciągłe doskonalenie
Scrum przełamuje utarte schematy, wyzwala innowacyjność w zespole, jednocześnie zapewniając solidne narzędzia kontroli przebiegu projektu. Umożliwia tworzenie i dostarczanie wysokiej jakości oprogramowania w krótkich odstępach czasu (zwykle co kilka tygodni). Scrum, podobnie jak inne zwinne metody, realizuje adaptacyjne podejście typu wizja–eksploracja, w odróżnieniu do podejścia tradycyjnego typu plan–wykonanie.
Takie podejście umożliwia pracownikom i kadrze kierowniczej ciągłą weryfikację planów projektowych na podstawie rzeczywistych danych. W metodzie Scrum podstawowym kryterium decyzyjnym są kolejne, działające (potencjalnie zbywalne) wersje produktu (oprogramowania).
Zastosowanie podejścia typu wizja–eksploracja do produkcji oprogramowania nie jest nowością. Od kilkudziesięciu lat znane i stosowane są narzędzia ułatwiające realizację złożonych projektów m.in. wiele wariantów modelu przyrostowego, model spiralny i prototypowanie. Jednakże zwinne metody (a szczególnie Scrum) w swoich założeniach idą o krok dalej, ustanawiając proces przyrostowy (iteracyjny i inkrementalny), adaptacyjność i samoorganizację fundamentem działania przedsiębiorstwa.
To zmiana, której wiele organizacji nie może podołać, mimo iż jej wprowadzenie prowadzi do radykalnego poprawienia zbieżności finalnego produktu z potrzebami odbiorcy oprogramowania, redukcji kosztów, poprawy organizacji pracy, zwiększenia produktywności oraz zaangażowania pracowników i ich zadowolenia z wykonywanej pracy.
Samoorganizacja
Określenia samoorganizacja i samostanowienie odnoszą się do struktury organizacyjnej zespołu tworzącego oprogramowanie i powierzonego mu zakresu odpowiedzialności. Niezbyt liczny, interdyscyplinarny zespół zyskuje swobodę decyzyjną w zakresie niezbędnym do wytworzenia wysokiej jakości produktu, w tym wyboru stosowanych procedur i narzędzi. Zespół projektowy z założenia jest hiper-komunikatywny, a zasadą tą objęty jest również klient, bądź jego reprezentant, biorący aktywny udział w procesie wytwórczym.
Samoorganizacja sprawdza się najlepiej w środowiskach o przejrzystych granicach odpowiedzialności, w których możliwe jest wytyczenie jasnych celów. Z tego powodu konieczny jest bliski kontakt z klientem i umiejętność delegowania obowiązków, co oznacza odejście od nakazowo–rozdzielczego stylu zarządzania w kierunku modelu przywództwo–współpraca. Otwartość, szczerość i przejrzystość są w Scrumie najbardziej pożądanymi zachowaniami na wszystkich szczeblach hierarchii i pomiędzy wszystkimi osobami zaangażowanymi w produkcję.
Ryzyko warte poniesienia
Choć w pierwszej chwili głęboka zmiana związana z wdrożeniem Scruma może wydawać się ryzykowna i kosztowna, organizacje odrzucające ciężkie, zdefiniowane procesy stają się automatycznie bardziej elastyczne i otwarte na zmienne realia rynkowe, zwiększając tym samym swoje szanse w walce z konkurencją.
Organizacje wdrażające Scruma głównie jako narzędzie porządkujące chaos organizacyjny, obserwują obniżenie kosztów i zwiększoną efektywność pracy zespołów projektowych. Dla tych którzy dokonali przełomu i w pełni zaadaptowali Scruma i jego filozofię, tradycyjne sposoby prowadzenia projektów wydają się być niewyobrażalnym marnotrawstwem czasu i energii.
Bibliografia
- Schwaber Ken, Sutherland Jeff, „The Scrum Guide” - przewodnik po Scrumie w języku polskim, 2013
- Schwaber Ken, Beedle Mike, „Agile Software Development with Scrum”, Prentice Hall, 2001
- Schwaber Ken, Sutherland Jeff, „Software in 30 Days: How Agile Managers Beat the Odds, Delight Their Customers, And Leave Competitors In the Dust", Wiley, 2012
- Schwaber Ken, „Agile Project Management with Scrum”, Microsoft Press, 2004
- Schwaber Ken, „The Enterprise and Scrum”, Microsoft Press, 2007
- Wikipedia: Scrum - development
- Wikipedia: Software Development Process
Komentarze (0)