REVEAL
TFS - zarządzanie projektem w metodologii Scrum
Cykle życia oprogramowania
Model kaskadowy
Kolejne etapy następują po sobie bezpośrednio:
Model kaskadowy (waterfall), wodospadowy, liniowy
Zalety:
Klient wie dokładnie czego się spodziewać. Precyzyjnie określenie tego co program będzie realizował w ostatecznej wersji.
Możliwe całościowe oszacowanie kosztów i czasu trwania projektu.
Projekt dobrze udokumentowany na każdym etapie
Stabilność i bezpieczeństwo, np. dzięki dużej licznie dokumentacji nowa osoba może być szybko wdrożona do projektu
Łatwy nadzór
Wady:
Brak możliwości powrotu do wcześniejszych etapów
Początkowe założenia są bardzo istotne, projekt musi być w całości zaplanowany i wszystkie wymagania muszą być rozpoznane od początku projektu
Błąd popełniony w początkowej fazie może mieć drastyczny wpływ na całość projektu
Produkt jest testowany wyłącznie na końcowym etapie. Późne wykrywanie błędów podnosi koszty.
Brak uwzględnienia zmian w zapotrzebowaniu klienta, rynku, zmian w technologiach
Metodyki zwinne - Agile
podejście przyrostowe
zakłada, że wymagania odbiorcy (klienta) często ewoluują podczas trwania projektu → regularna adaptacja do zmieniających się wymagań
późne zmiany w specyfikacji nie mają destrukcyjnego wpływu na proces wytwarzania oprogramowania,
szybkie wytwarzanie oprogramowania wysokiej jakości, działające oprogramowanie jest dostarczane okresowo (tygodniowo), każda iteracja dostarcza działające, przetestowane funkcje
bezpośredni kontakt, jako najlepsza forma komunikacji w zespole i poza nim (zazwyczaj małe zespoły), potrzeba mniej dokumentacji
bardzo ważny jest odpowiedni nadzór nad procesem wytwórczym.
Wady:
trudności z oszacowaniem czasu realizacji oraz budżetu projektu
wymagana duża aktywność i współpraca członków zespołu, bezpośredni kontakt nie zawsze możliwy w projektach np. open source
* sumaryczny czas wykonania projektu zazwyczaj będzie dłuższy niż w modelu kaskadowym
zmiany personalne w zespole mogą mieć katastrofalne skutki
końcowy produkt może znaczenie odbiegać od pierwotnych założeń
Metodologia Scrum
Scrum //to ramy postępowania (framework), dzięki którym ludzie mogą z powodzeniem rozwiązywać złożone problemy adaptacyjne, by w sposób produktywny i kreatywny wytwarzać produkty o najwyższej możliwej wartości. // Scrum Guide, http://www.scrumguides.org/
Scrum
-
metoda przyrostowa : produkt powstaje w kolejnych krótkich iteracjach (sprintach)
używalny (ale niekompletny) produkt już po pierwszej iteracji
częste kontakty w zespole oraz z klientem
inspekcje i adaptacje projektu sprzyjają wczesnemu wykrywaniu problemów i dopasowaniu do potrzeb
sprawna kontrola nad przebiegiem prac (narzędzia TFS)
zespoły 7+-2, zespół ma charakter samoorganizujący i międzyfunkcjonalny
kontrola czasu - czynność musi być zakończona w określonym czasie
przejrzystość (proste zasady) … jednak nie takie proste do zastosowania
Zespół scrumowy
Product owner
odpowiada za projekt przed klientem, ustala co ma być wykonane w kolejnych sprintach
Development Team
odpowiada za wykonany w danym sprincie przyrost. Brak podziału na role (wszyscy są developeramin)
Scrum master
odpowiedzialny za proces wytwarzania, organizację pracy, podział ról, przestrzeganie zasad Scruma
Artefakty i zdarzenia
Product Backlog - wykaz prac produktu (np. produkty WBS), nakreśla znane i najlepiej rozumiane wymagania. Zmienny i zazwyczaj niekompletny.
Sprint backlog - lista zadań w sprincie
Sprint - pojedyncza iteracja (7-30 dni): planowanie, realizacja, przegląd sprintu, retrospektywa
Work Item - jednostka pracy, zgłoszenie, zadanie do wykonania w określonym czasie przez członka zespołu
Sprint
planowanie sprintu - max. 8h, określenie celu sprintu, wybór zadań, czas realizacji zadań z góry ustalony, lista zadań nie powinna się zmieniać w czasie iteracji
codzienny scrum - spotkanie 15 min. zespołu programistycznego na stojąco prowadzone przez scrum master. Co zostało wykonane i co jest do zrobienia?
przegląd - max. 4h, podsumowanie osiągniętych celów, modyfikacja listy product becklog
retrospektywa sprintu - max. 3h, inspekcja działań (relacje członków, procesy i narzędzia) i plany usprawnień do najbliższego sprintu
Scrum w TFS
Przykładowy projekt
Product Backlog
ogólny plan prac, user story (życzenia klienta), zgłoszenie (zadania lub błędy) nieprzydzielone do iteracji
zmienia się w czasie prac nad projektem
elementy PB są zazwyczaj rozbijane na bardziej szczegółowe zadania sprintu
Product Backlog Item
nazwa, opis, właściciel, stan: New → Approved → Commited → Done, priorytet
effort (szacowany czas), planning poker
acceptance criteria - warunek osiągnięcia celu
Kanban Board
Cykl życia Backlog Item
Iteration backlog
Iteracja (sprint), określona w pewnym okresie czasu
Lista zadań - zazwyczaj rozbite elementy z lisy Product Backlog
Wykresy obrazujące postęp prac
Pojemność sprintu
Work Item - Jednostka pracy
Rodzaj: task, bug, impediment(issue), user story, test case, …
Assigned to: osoba odpowiedzialna za wykonanie
Stan: To do, In progress, Done, Removed
połączenia między zadaniami: hierarchiczne lub płaskie
każdy typ posiada swój własny cykl życia
możliwość definiowania własnych typów (XML)
integracja z systemem kontroli wersji, z systemem buildów, testów
połączenia zadań z różnymi zasobami: strony www, dokumenty, multimedia,
Relacje zadań z innymi elementami
Cykl życia zgłoszenia
Board
Effort
Żródło: wikipedia.org
Raporty i zapytania
Team room
Charts
Alerts
Scrum w Visual Studio 2013/2015
Team Explorer → Work Items - lista zadań projektu
Team Explorer → My Work - lista zadań powiązanych z zalogowanym użytkownikiem
Queries (raporty i zapytania) Team → New query
Dodawanie zgłoszeń Team → Add New Work Item
Powiązanie zgłoszenia (Work Item, asociate, resolve) z wysłaniem kodu (Check In) do repozytorium
VS Team Explorer
My work (TFVC)
Zarządzanie zadaniami z poziomu VS
Zarządzanie zadaniami podczas zatwierdzania zmian (TFVC)
Code review (TFVC)
Relacje zadań z zatwierdzonymi zmianami kodu (git)
Pull request (git)
Ken Schwaber, Jeff Sutherland,
Scrum Guide wersja polska
-
-
-
-