Źródło: wikipedia.org

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

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ń

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/

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

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

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

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

Fabrikam Fiber Web Team Home View - projekt demo

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

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

nazwa, opis, właściciel, stan: New -> Approved -> Commited -> Done, priorytet

effort (szacowany czas), planning poker

Iteracja (sprint), określona w pewnym okresie czasu

Lista zadań - zazwyczaj rozbite elementy z lisy Product Backlog

Wykresy obrazujące postęp prac

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

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,

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

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

msdn.microsoft.com

Zarządzanie zadaniami z poziomu VS

Ken Schwaber, Jeff Sutherland, Scrum Guide wersja polska

Application Lifecycle Management with Visual Studio TFS MSDN

Agile Project Management using TFS by Suliman Battat

Projekt demo: Fabrikam Fiber

Comparison of issue tracking systems