Zastanawiasz się czym jest Scrum? Co ma wspólnego z rugby i skrzynką z narzędziami? Szukasz innego spojrzenia na ten temat? Świetnie trafiłeś! Zapraszam na wstęp do Scrum'a.

Skrzynka na narzędzia

Wyobraź sobie skrzynkę z narzędziami. Taką, w której każdy śrubokręt i klucz mają swoje miejsce. W Lidlu ostatnio były na promocji takie walizki - jeśli wiesz o czym mówię :) Każdy klucz w takiej skrzynce/walizce ma swój wyżłobiony rowek, a gdy takiego klucza brakuje wtedy walizka staje się niekompletna. Ze Scrumem jest podobnie.

Scrum = Framework

Scrum jest frameworkiem, takim zestawem narzędzi, których można użyć do rozwiązywania skomplikowanych problemów. Nie jest to proces, ani metodologia, ani tym bardziej metodyka. Powtórzę to jeszcze raz, głośno i wyraźnie:

SCRUM JEST FRAMEWORKIEM

Jeśli z tego wpisu zapamiętasz tylko tyle i aż tyle... i za każdym razem, kiedy ktoś powie o "scrum-procesie" czy "metodologii scrumowej" rzucisz coś w stylu:

Ej ziom...Scrum to framework a nie proces...

...będzie git :)

Lek na całe zło

Scrum nie jest "złotym środkiem" na bolączki związane z wytwarzaniem oprogramowania. Nikt nie zagwarantuje Ci, że jeśli go zaimplementujesz (nawet w 100% idealnie "by the book") to osiągniesz sukces i wypuścisz na rynek aplikację "idealną". Zapomnij ! ...nie tędy droga.

To po co mi ten Scrum ? - dobre pytanie :) ...

To co w końcu mieliśmy zrobić?

Wytwarzanie oprogramowania to (wierz mi lub nie) bardzo skomplikowany proces. Niektórzy podczas tego procesu lubią mieć wszystko zaplanowane od początku do końca. Przychodzi klient mówi: zróbcie mi taką aplikację...ma robić to, tamto i jeszcze to. Ok - zbieranie wymagań mamy za sobą...bułeczka z masłem... "lecim na Szczecin". Implementacja -> Testowanie -> Bugi -> Poprawki -> Testowanie -> CEO approves -> jeb na produkcję i co się okazuje ? Klient chciał zupełnie co innego :) ... Znacie to uczucie ? Poniższy rysunek opisuje to idealnie, dokładając do tego trochę marketingu ;) :

hfghf

W Scrumie działamy w krótkich iteracjach, zwanych sprintami. Sprint trwa w zależności od potrzeb zespołu - od tygodnia do miesiąca. Po każdym Sprincie prezentowany jest "przyrost" (increment) produktu. Przez takie krótkie iteracje utrzymujemy stały kontakt z klientem, jesteśmy otwarci na zmiany, możemy często zbierać feedback na temat produktu i udoskonalać go na wczesnych etapach - unikając przy tym sytuacji z rysunku powyżej ;)

Komponenty Scrum'a

Sprint razem z "przyrostem" (inkrementem) wchodzą w skład tzw. komponentów Scrum'a. Wszystkie z nich omówimy sobie w osobnych wpisach - na razie wiedz tylko, że są to:

  • Role
    • Scrum Master
    • Product Owner
    • Development Team
  • Zdarzenia / Wydarzenia / Eventy (zwał jak zwał ;)
    • Sprint
    • Sprint Planning
    • Daily Scrum
    • Sprint Review
    • Sprint Retrospective
  • Artefakty
    • Product Backlog
    • Sprint Backlog
    • Increment

Scrum-like

Wróćmy na chwilę do naszej walizki z narzędziami. Pamiętasz jak mówiłem o kluczu, który ma swoje "wyżłobione" miejsce w rowku :P, a gdy go wyciągniesz - walizka staje się niekompletna. Tak samo jest ze Scrumem. Możesz wybrać tylko część spośród jego komponentów np. tylko Daily i Product Backlog. Czemu nie ? Kto bogatemu zabroni ? :) Jeśli to działa to super! Tylko proszę nie mów wtedy, że masz Scruma w firmie. Bo to nie prawda.

O Scrumie możemy mówić tylko wtedy, kiedy zaimplementowane są jego wszystkie komponenty. Koniec - kropka :) Może zabrzmi to restrykcyjnie ale tak jest. Czy jak masz samą bułkę do hot-doga to nazwiesz to hot-dogiem ? No nie - hot-dog istnieje tylko wtedy kiedy masz bułkę i parówkę :D Szanujmy się :)

Ponad to, Scrum działa też jako kontener dla innych technik / komponentów. Tak samo jak hot-dog :D ...do bułki z parówką możesz dodać opcjonalny sos, ketchup czy musztardę.

Jeśli chcesz dorzucić coś do Scruma - zrób to - o ile przyniesie to realną wartość dla tego co robisz. Takimi komponentami "na doczepkę" są np. user stories, burn-down chart, task-board itp. Scrum sam w sobie nie mówi o tych elementach, ale bez problemu możemy je dorzucić - o ile rzeczywiście pomagają nam w lepszej organizacji pracy.

Dobra - pierwszą część mamy za sobą.

Scrum - framework - integralna całość - otwarta na rozbudowę.

Teraz pora na #młyn :)

Młyn

Graliście kiedyś w rugby ? Mnie jakoś nigdy nie ciągnęło do tej dyscypliny sportu. W rugby "scrum" oznacza młyn i jest to sposób wznowienia gry. Dla laika, takiego jak ja, wygląda to na przepychankę w celu odzyskania kontroli nad piłką (celowo upraszczam ;))...z resztą zobaczcie sami:

No dobra ale co to ma wspólnego z wytwarzaniem oprogramowania ?

Odpowiedź jest prosta - chodzi o budowanie zespołu.

Grupa ludzi vs zespół

Czym się różni grupa ludzi od zespołu ? Różnica tkwi w sposobie interakcji między sobą :) - tak mi się wydaje ;). Ciężko to określić słowami - to trzeba poczuć. W zespole czujesz się związany emocjonalnie. Lubisz przebywać z tymi ludźmi. Razem tworzycie całość - uzupełniacie się nawzajem. Czy chodzicie razem na piwo po pracy? Może tak, a może nie - wspólne piwo czy lunch nie jest wyznacznikiem tego czy masz zespół czy nie. W grupie ludzi też możesz iść na piwko - pytanie czy będziesz miał tematy do rozmowy i czy będziesz się czuł swobodnie.

Teraz pora na trochę osobistych przemyśleń...

Scrum nie jest po to żeby budować aplikacje szybciej, lepiej, bardziej kreatywnie czy dynamicznie. Scrum pomaga z grupy ludzi, mającej chęci i będącej otwartej na zmiany, zbudować zespół. I to właśnie zespół (zżyci ze sobą ludzie) tworzą dopiero aplikację czy produkt. Na początku zawsze jest trudno...większość z nas boi się zmian, co więcej jesteśmy do nich nastawieni na "anty". Wprowadzając Scruma należy zachować umiar. Bajki o tym, że będziemy dostarczać szybciej, lepiej i taniej należy porzucić na rzecz rzetelnej, codziennej, sumiennej pracy nad tworzeniem więzi w zespole :)

Ostatnio w sieci natknąłem się na świetny cytat...(dzięki MerixStudio !), który w jednym zdaniu podsumowuje cały ten akapit....

Make friends not tasks

I o to w tym wszystkim chodzi...To ludzie tworzą produkt. Nie procesy, nie metodologie, nie frameworki czy technologia. Ludzie. Scrum tylko pomaga to wszystko uporządkować. Wyznacza ramy, w których budujemy....budujemy zespół, relacje, interakcje.

Podsumowanie - dziś pytanie - dziś odpowiedź

Czym jest Scrum ?
Frameworkiem

Do czego mi Scrum ?
Do adresowania złożonych problemów.

Z czego zbudowany jest Scrum ?
Z komponentów: ról, wydarzeń i artefaktów

Czy mogę wziąć tylko niektóre z komponentów ?
Tak :) tylko nie nazywaj tego Scrumem

Czy mogę dodać coś "od siebie" ?
Tak :) Scrum jako framework działa także jako kontener na "rozszerzenia"

Czy po wprowadzeniu Scruma będę dostarczał lepszy produkt ?
To zależy - na pewno nie od razu :)

Jaką największą wartość mogę osiągnąć po wprowadzeniu Scruma ?
Jeśli zrobisz to dobrze - jest duża szansa, że zbudujesz zespół, dla którego "sky is the limit" ;)


W następnych wpisach omówimy sobie dokładnie wszystkie role, wydarzenia i artefakty. Spróbuję też na podstawie swoich doświadczeń - wypunktować problemy i zagrożenia związane z każdym z nich.

A teraz - jeśli jeszcze tego nie zrobiłeś - przeczytaj Scrum Guide. To tylko 18 stron :), na których opisany jest lekki, prosty do zrozumienia ale mega-trudny w opanowaniu Scrum ;)