Wróć do informacji o e-podręczniku Wydrukuj Pobierz materiał do PDF Pobierz materiał do EPUB Pobierz materiał do MOBI Zaloguj się, aby dodać do ulubionych Zaloguj się, aby skopiować i edytować materiał Zaloguj się, aby udostępnić materiał Zaloguj się, aby dodać całą stronę do teczki

Trochę historii

Do drugiej połowy XX wieku realizacja projektów była prosta – wystarczyło tylko sporządzić dokładny plan działania, a następnie konsekwentnie za nim podążać. Taki model prowadzenia projektów nazywano kaskadą lub wodospadem (ang. waterfall), ponieważ kolejny krok był realizowany po zakończeniu poprzedniego (np. testy odbywały się po zbudowaniu całego produktu).

W informatyce takie postępowanie nie przynosiło jednak efektu. Po zakończeniu długotrwałych prac, produkt często okazywał się wadliwy lub przestarzały. W roku 2001 grupa menedżerów IT stworzyła nowe reguły – manifest programowania zwinnego.

Manifest programowania zwinnego

Odkrywamy nowe metody programowania dzięki praktyce w programowaniu i wspieraniu w nim innych.

W wyniku naszej pracy zaczęliśmy bardziej cenić:

Ludzi i interakcje od procesów i narzędzi
Działające oprogramowanie od szczegółowej dokumentacji
Współpracę z klientem od negocjacji umów
Reagowanie na zmiany od realizacji założonego planu.

Oznacza to, że elementy wypisane po prawej są wartościowe,
ale większą wartość mają dla nas te, które wypisano po lewej.

manifest Źródło: Manifest programowania zwinnego, 2001, dostępny w internecie: agilemanifesto.org [dostęp 2.12.2020].

Metody zwinne (ang. Agile)

Metody zwinne to grupa metod pozwalająca skutecznie realizować projekt, nawet gdy mamy wiele niewiadomych w jego założeniach. Ponieważ nie znamy ostatecznego kształtu produktu, skupiamy się na tym, co w danej chwili stanowi największą wartośćwartośćwartość biznesową, czego użytkownik będzie najbardziej potrzebował. W regularnych odcinkach czasu podejmujemy kolejne decyzje, co jest najistotniejsze w danym momencie, i do tych wytycznych dopasowujemy kolejność prac. Nie wybiegamy myślą daleko w przyszłość – liczy się tu i teraz.

Co to jest Scrum?

Najpopularniejszą metodą prowadzenia projektów zwinnych jest Scrum. To anglojęzyczna nazwa jednej z formacji w rugby. Podczas gry zawodnicy tworzą zwartą grupę, wzajemnie się osłaniając. Dzięki pracy zespołowej osiągają sukces, podobnie jak w projekcie informatycznym.

Scrum to pewne ramy postępowania, szkielet współdziałania lub frameworkframeworkframework. Scrum nie jest metodyką ani metodą, a jedynie schematem pozwalającym na stosowanie wielu różnych metod czy technik.

Ciekawostka

Podręcznik do Scruma liczy 19 stron, podczas gdy analogiczny dokument dla metodyki PRINCE2® ma ich ponad 300.

Filary Scruma

Scrum kładzie nacisk na empiryzmempiryzmempiryzm, zakładając, że wiedza pochodzi z doświadczenia, a decyzje należy podejmować na podstawie zaobserwowanych faktów. Każdy projekt realizowany w Scrumie powinien zatem przestrzegać trzech nadrzędnych zasad, zwanych filarami. Są to:

przejrzystość

Wszyscy zaangażowani w tworzenie produktu powinni mieć wiedzę na temat jego istotnych aspektów. Bez niej nie mogliby dobrze wykonać swojej pracy.

inspekcja

Należy często sprawdzać, czy w ferworze pracy nie odbiegliśmy od celu projektu. Czy to, co robimy, na pewno przybliża nas do ukończenia produktu?

adaptacja

Jeśli gdzieś popełniono błąd, należy go jak najszybciej skorygować. Skuteczny Scrum polega na wielokrotnym powtarzaniu pętli „sprawdź i dostosuj”.

Ciekawostka

Utrzymanie zgodności z filarami Scruma jest możliwe, gdy przestrzegamy pięciu wartości.

Wartości Scruma

  1. Zaangażowanie wszystkich uczestników w stworzenie najlepszego produktu.

  2. Odwaga w przezwyciężaniu trudności, przyznawaniu się do błędów i dążeniu do celów.

  3. Skupienie na pracy i celach.

  4. Otwartość w dzieleniu się informacjami, także tymi złymi.

  5. Szacunek do wszystkich osób zaangażowanych w proces.

Role w Scrumie

W skład zespołu scrumowego wchodzą:

  • właściciel produktu (ang. Product Owner) – pilnuje, aby praca całego zespołu przynosiła jak największą wartość; to on decyduje o kolejności prac, ponieważ ma pełną wiedzę na temat potrzeby biznesowej;

  • Scrum Master – dba o to, aby praca zespołu przebiegała bez zakłóceń i aby wszyscy stosowali się do reguł Scruma;

  • deweloperzydeweloperdeweloperzy – wszystkie osoby, które pracują nad projektem (nie tylko programiści, lecz także testerzy, analitycy, graficy); każdy członek zespołu sam decyduje, jaką pracę wykona, ale przy założeniu, że wspólnymi siłami uda się zrealizować wszystkie zadania.

Serce Scruma to sprint

Scrumie cała praca wykonywana jest w regularnych interwałach, bez przerw – w tzw. sprintach. Efektem sprintu jest przyrost produktuprzyrost produktuprzyrost produktu (ang. Increment), czyli działający, potencjalnie gotowy do wydania (przekazania klientowi lub użytkownikom) fragment oprogramowania.

Ciekawostka

Krótkie sprinty zachęcają do eksperymentowania – w przypadku popełnienia błędu zmiana celu prac odbywa się szybko i małym kosztem.

Wydarzenia Scruma

W każdym sprincie odbywają się spotkania sprzyjające inspekcji i adaptacji.

  • Planowanie sprintu – na początku sprintu zespół scrumowy planuje, co chce osiągnąć w sprincie oraz jak tego dokonać, wyznaczany też jest ogólny cel.

Ciekawostka

Kto szacuje, ile czasu zajmie dane zadanie? Ten, kto będzie je wykonywał. EstymatyestymatEstymaty powinny być podawane tylko przez deweloperów - w przeciwnym razie nie są wiarygodne.

  • Codzienny Scrum – deweloperzy codziennie spotykają się, aby omówić to, co już zrobili i czym zajmą się w najbliższym czasie, by osiągnąć cel sprintu.

  • Przegląd sprintu – zespół scrumowy oraz grupa innych zaangażowanych osób (np. klientów) ogląda efekty pracy, ustala dalsze kroki i ocenia, kiedy produkt zostanie zakończony.

  • Retrospektywa sprintu – zespół scrumowy dokonuje inspekcji swojej współpracy, procesu, narzędzi i proponuje usprawnienia na przyszłość.

Czas trwania wydarzeń Scrum

Wykonywana czynność

Czas trwania

Sprint

do tygodni

Planowanie sprintu

do godzin

Codzienny Scrum

minut

Przegląd sprintu

do godzin

Retrospektywa sprintu

do godzin

Artefakty Scrum

W celu zachowania przejrzystości, w Scrumie istnieją pewne dokumenty, zwane artefaktami.

  • Backlog produktu – lista wszystkich czynności, jakie należy wykonać w celu stworzenia produktu. Na górze znajdują się zadania najbardziej zwiększające wartość biznesową i najlepiej doprecyzowane, które zapewne zostaną zrealizowane w jednym z najbliższych sprintów.

Ciekawostka

Backlog produktu jest utrzymywany dopóty, dopóki „żyje” produkt i ewoluuje wraz z nim.

  • Backlog sprintu – to plan dostarczenia przyrostu w sprincie, swego rodzaju miniwersja backlogu produktu. Tworzy się go podczas planowania sprintu. Deweloperzy, jako wykonawcy pracy, mają decydujący głos w ustalaniu, ile pracy uda się wykonać i kto ją zrobi.

  • Przyrost – namacalny rezultat prac wykonanych w dotychczasowych sprintach.

Jak to działa w praktyce?

Wróćmy do przykładu z początku tego e‑materiału: klient zamawia stworzenie sklepu internetowego. Jak prawdopodobnie przebiegnie praca nad jego produktem?

  1. Na etapie przygotowań klient wraz z wykonawcą ustalą listę interesariuszyinteresariuszeinteresariuszy (czyli wszystkich osób, których dotyczy projekt – np. potencjalnych klientów z podziałem na ich typy, personel, który będzie wprowadzał produkty na stronę, konkurentów). W wyniku warsztatów powstanie wstępna makietamakietamakieta sklepu z podziałem na poszczególne widoki (listing kategorii, koszyk klienta itd.).

  2. Po akceptacji makiet, rozpocznie się wdrożenie oraz pierwszy sprint. Najczęściej jest on poświęcony na dobór architektury (języka oprogramowania, systemu operacyjnego, wymagań technicznych) i ogólne ustalenia. Odbędą się też pierwsze wydarzenia scrumowe.

  3. W kolejnych sprintach prace będą postępować, a produkt przyrastać. Podczas każdego przeglądu sprintu, klient będzie miał szansę obejrzeć produkt, zgłosić uwagi i przekazać właścicielowi produktu sugestie, co powinno być wykonane w następnej kolejności. Dzięki temu produkt będzie przez cały czas odzwierciedlał oczekiwania zleceniodawcy.

  4. Gdy produkt będzie już prawie gotowy, klient zostanie zaproszony do testów na serwerze deweloperskim lub preprodukcyjnym (już w środowisku klienta). Być może nawet odbędzie się tzw. demo, czyli prezentacja produktu u klienta, zapoznająca jego pracowników z nowym serwisem.

  5. W wyznaczonym wcześniej dniu zostanie wdrożona wersja produkcyjna, a efekt pracy ujrzy światło dzienne. Jednak na tym współpraca się nie kończy. Klient będzie zgłaszał poprawki (wdrażane na bieżąco) oraz usprawnienia. Wydarzenia scrumowe skończą się, a zespół przejdzie do kolejnego projektu. Zaawansowane ulepszenia mogą być realizowane jako kolejne projekty scrumowe.

Czy Scrum ma sens w pojedynkę?

Scrum najlepiej działa w zespole liczącym od 5 do 11 osób. W praktyce małe projekty mogą być jednak realizowane nawet przez dwóch deweloperów (programista i grafik). Czy wdrażanie scrumowe ma w tych warunkach sens? Tak, ponieważ ciągła inspekcja i adaptacja oraz skupienie na dostarczeniu korzyści sprawdzi się w każdych warunkach.

Ciekawostka

Łączenie ról w Scrumie (np. gdy jedna osoba jest Scrum Masterem i zarazem deweloperem) bywa uciążliwe, choć zdarza się w wielu firmach IT. Niemożliwe jest jednak bycie jednocześnie właścicielem produktu i Scrum Masterem, ponieważ mają oni różne role – pierwszy pilnuje, aby jak najszybciej dostarczyć wartość biznesową, drugi – aby deweloperzy pracowali w równym tempie i bez przeszkód.

Słownik

Agile
Agile

rodzina zwinnych sposobów tworzenia oprogramowania; to angielskie słowo oznacza „zwinny”, czyli szybki, elastyczny, dostosowujący się do sytuacji – i takich cech wymaga tworzenie produktu, gdy nie znamy wszystkich wytycznych z nim związanych; są to metody przyrostowe (skupiamy się na niewielkim przyroście, który jest celem sprintu) oraz iteracyjne (co oznacza, że wielokrotnie powtarzamy pętlę „sprawdź i dostosuj”)

deweloper
deweloper

słowo zazwyczaj stosowane jest jako synonim programisty, ale w Scrumie deweloperami nazywamy wszystkie osoby wykonujące pracę przyczyniającą się do przyrostu produktu – w tym testerów, analityków biznesowych czy grafików

empiryzm
empiryzm

prąd filozoficzny głoszący, że źródłem pozyskiwania informacji o świecie jest doświadczenie (to, co np. zaobserwujemy czy usłyszymy); w Scrumie decyzje podejmujemy na podstawie obserwacji, nie przeczuć czy przekonań

estymat
estymat

oszacowanie czasu, który będzie potrzebny na zrobienie jakiegoś zadania; najczęściej podaje się go w godzinach; estymat podaje osoba, która będzie wykonywać estymowaną pracę

framework
framework

szerokie ramy postępowania pozwalające na stosowanie różnych metodyk czy technik; cechą frameworku jest to, że narzuca bardzo mało reguł i nie opisuje szczegółowo sposobów postępowania przy wystąpieniu jakiegoś problemu; przykładem frameworku jest Scrum

interesariusze
interesariusze

wszystkie osoby, które mają wpływ na projekt lub których projekt dotyczy – klienci, użytkownicy, sponsorzy, konkurencja itp.

makieta
makieta

bardzo ogólny schemat wyglądu przyszłej strony internetowej; na makiecie zaznacza się np. menu strony, wyszukiwarkę, obrazki, formularze; makieta zazwyczaj jest jednokolorowa i dopiero na jej podstawie tworzy się właściwy projekt strony

przyrost produktu
przyrost produktu

działający fragment oprogramowania, efekt wszystkich dotychczasowych sprintów

wartość
wartość

korzyść dla danej organizacji; dla komercyjnych przedsięwzięć taką wartością będzie zysk (mówimy wtedy o wartości biznesowej), ale w przypadku np. projektów charytatywnych – pomoc potrzebującym; w Scrumie zespół zawsze robi to, co w danym momencie przynosi największą wartość