Scrum - prosty sposób na skomplikowane projekty

Metody agile umożliwiają osiągnięcie znaczącej poprawy w dziedzinie realizacji projektów z branży IT.

W ostatnich latach coraz większą popularność w branży software’owej zyskuje agile - termin tłumaczony czasem na polski jako "metodyki zwinne". Jest to zbiór różnych metod - tak praktyk technicznych (np. XP), jak i z poziomu zarządzania projektem - których wspólną cechą jest odrzucenie wielu założeń tradycyjnego ("ciężkiego", kaskadowego - ang. waterfall) zarządzania projektami na rzecz adaptacyjności i iteracyjności.

Ruch agile jest wyrosłą w branży programistycznej i sformułowaną przez jej praktyków odpowiedzią na porażkę, jaką okazało się zastosowanie przy rozwoju oprogramowania metod przeniesionych z innych branż. Jak się wydaje, są one odpowiedzialne za podstawowe problemy projektów tworzenia oprogramowania: opóźnienia, zawyżone koszty, a przede wszystkim niską jakość produktu końcowego (w tym kiepskie przystawanie produktu do wymagań użytkownika).

Zobacz również:

Podstawowym błędem metod tradycyjnych jest kopiowanie podejścia z innych dziedzin inżynierskich, w których projektowanie jest z natury rzeczy rozłączne z wykonawstwem. W takich branżach jak budownictwo czy budowa maszyn projektowanie wykonują wysoko kwalifikowani inżynierowie, a następnie ich projekty wykonują nisko kwalifikowani (i płatni) robotnicy.

W przypadku informatyki takie podejście się nie sprawdza. Tutaj projektowanie i wykonywanie są nierozdzielnie ze sobą połączone. Wymaga to od programistów dużej wiedzy i solidnego wykształcenia - są to najczęściej ludzie mogący dobrze zrozumieć sedno problemu i tworzyć jego rozwiązania. Konieczne jest zatem skrócenie dystansu pomiędzy użytkownikiem a wykonawcą.

Inną, istotną różnicą jest kwestia zmian. W tradycyjnych dziedzinach inżynierskich zmiany produktu po rozpoczęciu jego wykonywania są bardzo trudne, a często niemożliwe. Choć w oprogramowaniu zmiana jest także kosztowna, to jednak prawie zawsze jest możliwa.

I ostatnia sprawa - narzut metodyk tradycyjnych jest zwykle tak duży, że rzadko kiedy są one w rzeczywistości stosowane dokładnie tak, jak to opisują podręczniki. Normą jest stosowanie tylko niektórych ich elementów - a często metodyka i dokumentacje są tylko pozorem, pod którym skrywa się codzienny chaos. Zarówno ów narzut, jak i spowodowane nim omijanie procesów przewidzianych metodykami powoduje brak przejrzystości na poziomie zarządczym - kierownictwu ciężko jest dobrze określić w jakim stanie jest projekt, co powoduje, że ryzyka ujawniają się nagle, prowadząc do "pożarów" i ich "gaszenia".

Zwinny wybawca

Schemat metody Scrum

Schemat metody Scrum

Metody agile umożliwiają osiągnięcie znaczącej poprawy w omawianych obszarach poprzez odrzucenie wielu założeń metodyk tradycyjnych. Jedną z takich "zwinnych" metod jest Scrum.

Jej założeniem jest maksymalne usprawnienie przetwarzania wymagań na rzeczywistość z uwzględnieniem specyficznych uwarunkowań jednej z najbardziej skomplikowanych dziedzin ludzkiej aktywności: tworzenia oprogramowania. Cel ten Scrum osiąga poprzez równoważenie iteracyjności i adaptowalności z zapewnieniem stabilizacji niezbędnej zespołom do osiągnięcia odpowiedniego poziomu skupienia.

Metoda określa w jaki sposób zarządza się wymaganiami i pracą zespołu, definiuje role, wymagane spotkania i ramy czasowe. W Scrumie są trzy role - Product Owner, Scrum Master i Zespół, cztery spotkania - Planning, Daily Scrum, Sprint Review, Sprint Retrospective - oraz wymagane jest prowadzenie trzech list: Backlog, Sprint Backlog i Impediments. Z zespołem współpracuje Scrum Master, który odpowiada za proces (dba o to, by praca przebiegała bez zakłóceń) oraz Product Owner, który odpowiada za kształt powstającego produktu.