→ Slide 1

TFS - zarządzanie projektem w metodologii Scrum

→ Slide 2

Źródło: wikipedia.org

↓ Slide 3

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 poprzedniego etapu
  • 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
↓ Slide 4

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 zależeń
→ Slide 5

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/

↓ Slide 6

Scrum

  • jedna z najbardziej znanych metodyk zwinnych (Agile) : Manifesto for Agile Software Development
  • 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
↓ Slide 7

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
↓ Slide 8

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
↓ Slide 9

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 wykonane zostało 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

→ Slide 10
↓ Slide 11

Przykładowy projekt

  • Fabrikam Fiber Web Team Home View - projekt demo


Źródło: http://msdn.microsoft.com/

↓ Slide 12

Product Backlog

  • zgłoszenie (zadania lub błedy) nieprzydzielone do iteracji
  • ogólny plan prac, user story (życzenia klienta)
  • zmienia się w czasie prac nad projektem
  • elementy są zazwyczaj rozbijane na bardziej szczegółowe zadania

↓ Slide 13

Product Backlog Item

  • nazwa, opis, właściciel, stan: New → Approved → Commited → Done, priorytet
  • effort (szacowany czas), planning poker

↓ Slide 14

Kanban Board

↓ Slide 15

Cykl życia Backlog Item

↓ Slide 16

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

↓ Slide 17

Pojemność sprintu

  • Capacity - określa czasu jaki członkowie mogą poświęcić dziennie na pracę (uwzględniając dni wolne) oraz specjalizację członków zespołu

↓ Slide 18

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,
↓ Slide 19

Cykl życia zgłoszenia

↓ Slide 20

Board

↓ Slide 21

Effort

  • effort - wskaźnik postępu ukończenia kolejnych funkcjonalności
  • każde zadanie ma określony (zaplanowany) czas realizacji
  • Burndown Chart


Żródło: wikipedia.org

↓ Slide 22

Raporty i zapytania

↓ Slide 23

Team room

↓ Slide 24

Alerts

→ Slide 25
  • 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
↓ Slide 26

VS Team Explorer

Źródło:msdn.microsoft.com

↓ Slide 27

My work

Zarządzanie zadaniami z poziomu VS

↓ Slide 28

Zarządzanie zadaniami podczas zatwierdzania zmian

↓ Slide 29

Code review

→ Slide 30