~~SLIDESHOW thesis~~ ====== TFS - zarządzanie projektem w metodologii Scrum ====== {{http://upload.wikimedia.org/wikipedia/commons/thumb/5/58/Scrum_process.svg/1000px-Scrum_process.svg.png?700}} ===== Metodologia Scrum ===== * jedna z najbardziej znanych metodyk zwinnych (Agile) : [[http://agilemanifesto.org/iso/pl/|Manifesto for Agile Software Development]] * metoda przyrostowa : produkt powstaje w kolejnych iteracjach * sprawny (ale niekompletny) produkt już po pierwszej iteracji * sprawna kontrola nad przebiegiem prac (narzędzia TFS) * wczesne wykrywanie problemów * zespoły 7+-2 * **kontrola czasu** - czynność musi być zakończona w określonym czasie * zespół ma charakter samoorganizujący ===== Scrum - role ===== * product owner - odpowiada za projekt przed klientem * scrum master - odpowiedzialny za proces wytwarzania, organizację pracy, podział ról * team members ===== Artefakty i zdarzenia ===== * **Product Backlog** - wykaz prac produktu (np. produkty WBS) * **Sprint backlog** - lista zadań w sprincie * **Sprint** - pojedyncza iteracja (7-30 dni): planowanie, realizacja, podsumowanie * planowanie 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. na stojąco prowadzone przez scrum master * przegląd: podsumowanie na zakończenie sprintu, retrospektywa sprintu * **Work Item** - jednostka pracy, zgłoszenie, zadanie do wykonania w określonym czasie przez członka zespołu ===== Przykładowy projekt ===== * Fabrikam Fiber Web Team Home View - projekt demo {{ http://i.msdn.microsoft.com/dn189203.battat_fig03(en-us,MSDN.10).png }} \\ , Źródło: http://msdn.microsoft.com/ ===== 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 {{ http://i.msdn.microsoft.com/dn189203.battat_fig04(en-us,MSDN.10).png }} ===== Product Backlog Item ===== * nazwa, opis, właściciel, stan: New -> Approved -> Commited -> Done, priorytet * effort (szacowany czas), planning poker {{ http://i.msdn.microsoft.com/dn189203.battat_fig07(en-us,MSDN.10).png }} ===== Kanban Board ===== {{ http://i.msdn.microsoft.com/dn189203.battat_fig15(en-us,MSDN.10).png }} ===== Cykl życia Backlog Item ===== {{ http://i.msdn.microsoft.com/dynimg/IC421496.png }} ===== 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 * **Capacity** - określenie czasu jaki członkowie mogą poświęcić dziennie na pracę oraz ich specjalizacji {{ http://i.msdn.microsoft.com/dn189203.battat_fig13(en-us,MSDN.10).png }} ===== Work Item - Jednostka pracy ===== {{ http://i.msdn.microsoft.com/dynimg/IC628541.png }} ===== ===== * 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, ===== Cykl życia zgłoszenia ===== {{ http://i.msdn.microsoft.com/dynimg/IC421494.png }} ===== Cykl życia zgłoszenia - ogólnie ===== Typowy cykl życia zgłoszenia: * osoba posiadająca uprawnienia do raportowania wprowadza informację o błędzie * osoba lub system określa osobę, której dotyczy błąd i generowane jest powiadomienie \\ (alerty, email i inne kanały komunikacji), * osoba, która otrzymała powiadomienie, akceptuje go do poprawy lub deleguje ten błąd do innej osoby, * osoba odpowiedzialna kończy pracę nad błędem na jeden z kilku sposobów – informując, że błąd został poprawiony, odłożony w czasie, nie jest możliwy do poprawy czy, że zgłoszenie błędu było niepoprawne, * jeśli błąd usunięto, osoba odpowiednio uprawiona osoba weryfikuje, czy błąd faktycznie został usunięty i zwykle zgłoszenie błędu jest zamykane. * po ostatecznym rozwiązaniu problemu (np. po opublikowaniu albo instalacji u klienta wersji pozbawionej błędu) błąd jest zamykany. ===== Typowy cykl życia ===== {{http://trac.edgewall.org/chrome/common/guide/basic-workflow.png}}\\ //Żródło:// http://trac.edgewall.org/chrome/common/guide/basic-workflow.png [[http://trac.edgewall.org/wiki/WorkFlow/Examples|Inne przykłady]] ===== Board ===== {{ http://i.msdn.microsoft.com/dn189203.battat_fig23(en-us,MSDN.10).png }} ===== Effort ===== * **effort** - wskaźnik postępu ukończenia kolejnych funkcjonalności * każde zadanie ma określony (zaplanowany) czas realizacji * **Burndown Chart** {{ http://upload.wikimedia.org/wikipedia/commons/thumb/0/05/SampleBurndownChart.png/800px-SampleBurndownChart.png }} \\ Żródło: wikipedia.org ===== Raporty i zapytania ===== {{ :zajecia:znd_2014_1:tfs_queries.png?600 |}} ===== Scrum w Visual Studio 2013 ===== * **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 ===== Więcej informacji ===== * {{https://www.scrum.org/Portals/0/Documents/Scrum%20Guides/2013/Scrum-Guide-PL.pdf|Scrum Guide}} wersja polska * [[http://msdn.microsoft.com/library/vstudio/fda2bad5|Application Lifecycle Management with Visual Studio TFS]] MSDN * [[http://msdn.microsoft.com/en-us/magazine/dn189203.aspx|Agile Project Management using TFS]] by Suliman Battat * Projekt demo: [[http://fabrikam.codeplex.com/|Fabrikam Fiber]]