18 KiB
Przygotowanie do projektu badawczo-rozwojowego
5. Metodyki adaptacyjne w programowaniu[wykład]
Krzysztof Jassem (2022)
Metodyki adaptacyjne (zwinne) w programowaniu (Agile Software Development)
Agile (zwinny) to pojęcie odnoszące się do szybkości i sprawności w działaniu i myśleniu.
Manifest Agile
opublikowany w roku 2001
autorzy: 17 teoretyków i praktyków programowania
4 wartości
12 zasad (pryncypiów)
4 wartości manifestu Agile
Ludzie i interakcje ponad procesy i narzędzia.
Działające oprogramowanie ponad szczegółową dokumentację.
Współpraca z klientem ponad negocjację umów.
Reagowanie na zmiany ponad podążaniem za planem.
12 pryncypiów manifestu Agile
10 pryncypiów wg Kelly Watersa (All About Agile: Agile Management Made Easy!, 2012)
- Active User Involvement Is Imperative.
Nic dobrego nie wynika
Bez udziału użytkownika.
- Agile Development Teams Must Be Empowered.
Nie warta praca mozołu,
Gdy władza nie w rękach zespołu.
- Time waits for no man.
Czas płynie wartko jak rzeka,
I na nikogo nie czeka.
- Agile Requirements Are Barely Sufficient.
Dosłownie w kilku dziś zdaniach
Streścimy swe wymagania.
- How do you eat an elephant? One bite at a time.
Sekretów uchylam wieczko:
Jedz słonia małą łyżeczką.
- Fast but not so furious.
Byli szybcy, lecz nie wściekli,
I na czas produkt dowlekli.
- Done Means DONE!
Praca była "wykonana",
I działało... aż do rana.
- Enough is enough.
Trzeba krzyknąć: "Stop i Basta!"
- Agile Testing Is Not For Dummies.
Twa głowa ma być pomysłowa.
- No place for snipers.
Nie strzelaj - do siebie samego.
Przykład manifestu zespołu ludzi (PWN AI)
- Biznes stawia cele, IT daje rozwiązania.
- Wszystko da się zrobić.
- Biznes wyjaśnia potrzeby, IT wyjaśnia możliwości.
- Komunikacja i zaangażowanie – albo wyrzucanie pieniędzy w błoto.
- Wszyscy jesteśmy elastyczni.
Metodyka SCRUM
Struktura metodyki Scrum opiera się na trzech filarach:
- Artefakty
- Role
- Cykl Pracy
Artefakty w metodyce Scrum
Rejestr Produktu (Product Backlog)
Rejestr Produktu to lista zadań do wykonania w projekcie ułożona według priorytetu wykonania.
- Rejestr produktu utrzymywany jest przez Właściciela Produktu.
- Zadania, których efekt widoczny jest dla użytkownika mają często postać User Story .
- Zadania o najniższym priorytecie mogą być usuwane z Rejestru Produktu.
User Story
User story to krótki opis wybranej funkcjonalności, napisany z punktu widzenia docelowego użytkownika danego produktu (Encyklopedia Zarządzania).
User Story ma zwykle postać:
Jako <Kto?> chcę wykonać<Co?> aby<Dlaczego?>
Przykład User Story
> Jako klient sklepu chcę dodać produkt do koszyka aby go później kupić .Rejestr Sprintu (Sprint Backlog)
Rejestr Sprintu to lista Zadań do wykonania podczas Sprintu:
- utrzymywana przez Zespół Deweloperski,
- tworzona na początku każdego Sprintu przez Zespół Deweloperski na podstawie priorytetowego zadania z Rejestru Produktu.
Zadanie (Task)
Zadanie w Rejestrze Sprintu zawiera następujące informacje:
- opis zadania,
- szacowany czas wykonania zadania,
- członek zespołu odpowiedzialnego za wykonanie zadania,
- status danego zadania (np. jeden z trzech: oczekuje na realizację/w trakcie realizacji/wykonane).
Role w metodyce Scrum
Udziałowcy (stakeholders)
Udziałowcy to ludzie, którzy finansują projekt:- właściciele firmy realizującej projekt,
- klienci,
- przyszli użytkownicy.
Właściciel Produktu (Product Owner)
Właściciel Produktu to rola, która reprezentuje interesy biznesu.
Zadania Właściciela Produktu:
- nadzoruje pisanie User Stories,
- analizuje na bieżąco potrzeby biznesu i na tej podstawie...
- ustala priorytet User Stories w Rejestrze Produktu,
- decyduje, co jest WYKONANE.
Zespół Deweloperski (Development Team)
Zespół Deweloperski to zespół wykonawców oprogramowania, zazwyczaj składający się z kilku osób (3-9), o równych prawach.Zadania Zespołu Deweloperskiego:
- jest odpowiedzialny za implementację,
- na podstawie priorytetów Właściciela produktu określa zadania na kolejny sprint,
- wykonuje cały proces: analiza, programowanie, testowanie (dzienniku produktu),
- sam decyduje o sposobie realizacji zadań.
Scrum Master
Scrum Master to członek zespołu deweloperskiego, mający dobre zrozumienie ideologii SCRUM.
Zadania Scrum Mastera:
- prowadzi Daily (spotkanie zespołu),
- prowadzi Retrospektywę,
- buduje relacje w zespole,
- pomaga rozwiązywać konflikty,
- pośredniczy w rozmowach z Właścicielem produktu.
Cykl pracy w metodyce Scrum
Sprint
Sprint to okres, podczas którego tworzy się przyrost projektu, skutkujący prototypem gotowym do użycia. Sprint zazwyczaj trwa nie krócej niż tydzień i nie dłuzej niż miesiąc. W skład Sprintu wchodzą:
- Planowanie Sprintu,
- Implementacja,
- Codzienne spotkania,
- Przegląd Sprintu,
- Retrospektywa.
Planowanie Sprintu (Sprint Planning)
Planowanie sprintu jest pierwszym spotkaniem podczas każdego sprintu.
- Planowanie Sprintu bierze udział Zespół Deweloperski oraz opcjonalnie Właściciel Produktu.
- Planowanie Sprintu prowadzone jest przez Scrum Mastera.
Standardowy przebieg Planowania Sprintu:
- Analizy Rejestru Produktu - wybór wymagań do realizacji,
- Określenie celu sprintu - na podstawie wybranych wymagań,
- Określenie pełnego zakresu prac: jak będzie działał system po Sprincie,
- Stworzenie Rejestru Sprintu: podział zakresu prac na zadania i przydzielenie członków zespołu do zadań,
- Estymacja pracochłonności zadań.
Codzienne Spotkania (Daily Scrum)
Codzienne Spotkanie (stosowana nazwa w j. polskim - Daily ) to codzienne zdarzenie, które trwa do piętnastu minut w stałym miejscu i o stałej porze.
- W Daily bierze udział Zespół Deweloperski.
- Daily prowadzone jest przez Scrum Mastera.
Standardowy plan Daily:
- Przegląd prac w ciągu ostatniego dnia,
- Omówienie pojawiających się problemów,
- Omówienie planu na kolejny dzień.
Przegląd Sprintu
Przegląd Sprintu jest spotkaniem organizowanym na zakończenie Sprintu w celu zweryfikowania wykonania zadań w Sprincie i dostosowania Rejestru Produktu.
- W Przeglądzie Sprintu bierze udział Zespół Deweloperski, Właściciel Produktu oraz Udziałowcy zaproszenieni przez Właściciela Produktu.
- Przegląd Sprintu prowadzony jest przez Właściciela Produktu.
Standardowy plan Przeglądu Sprintu:
- Właściciel Produktu wyjaśnia Udziałowcom, które funkcjonalności zostały "Wykonane”, a które nie.
- Zespół Deweloperski omawia zadania w Sprincie, jakie były problemy oraz jak je rozwiązano.
- Zespół Deweloperski prezentuje "Wykonaną” pracę; dyskusja.
- Właściciel Produktu omawia obecny Rejestr Produktu.
- Uczestnicy omawiają kolejne kroki pracy pod kątem potrzeb biznesu.
- Właściciel produktu aktualizuje Rejestr Produktu.
Retrospektywa Sprintu
Retrospektywa Sprintu to spotkanie po Przeglądzie Sprintu w celu opracowania usprawnień na następny Sprint.
- W Retrospektywie udział bierze Zespół Deweloperski.
- Retrospektywę prowadzi Scrum Master.
Standardowy plan Retrospektywy:
- Sprawdzenie, co działo się w ostatnim Sprincie,
- Zidentyfikowanie elementów, które sprawdziły się w działaniu,
- Zidentyfikowanie elementów, które kwalifikują się do usprawnienia,
- Stworzenie planu wprowadzania w życie usprawnień.
Wniosek
Nie zrobi informatyk
Złotego interesu,
Gdy nie będzie co tydzień
Słuchał potrzeb biznesu.
Zadania proponowane na laboratoria
Zadanie 1.
Podzielcie się rolami w projekcie według metodyki Scrum i opiszcie, jak widzicie swoje zadania w projekcie.
Zadanie 2.
Opracujcie 5-punktowy manifest pracy w Waszym zespole.
Zadanie 3.
Utwórzcie projekt w systemie JIRA. Opracujcie profile członków grupy (zdjęcia mile widziane). Wpiszcie do backloga "user stories" związane z projektem - założcie w tym momencie, że wykonacie cały produkt high-tech. Sprobujcie oszacować czas realizacji każdego "user story" za pomocą punktów, zakładając że 10 punktów odpowiada sumie pracy całego zespołu podczas jednego tygodniowego sprintu.