Zarządzanie zadaniami w projektach informatycznych na przykładzie systemu Trac. Integracja z Eclipse. Adam Szarecki, Przemysław Wesołek Instytut Informatyki Politechnika Poznańska 2008
Podstawowe problemy jak zorganizować pracę zespołu ludzi, zwłaszcza bardzo licznego? jak kontrolować kto zajmuje się danym zadaniem, i czym zajmuje się programista w danej chwili? jak oszacować obciążenie programisty? skąd programista ma wiedzieć czym się zająć i jakie są priorytety? jak kontrolować postęp prac w projekcie? Co zrobiono a co zostało do zrobienia?
Zarządzanie zadaniami ogólna metodyka zarządzania projektami, w szczególności projektami IT jeden z aspektów to zarządzanie zadaniami, którym się zajmiemy zadanie podstawowe pojęcie jednostka pracy definiująca zakres pracy i cel jaki chcemy osiągnąć po zakończeniu zadania
Zadanie zadanie można rozumieć intuicyjnie, ale dość szeroko (ang. issue) w systemach zarządzania zadaniami IT wyróżniamy zwykle 3 najogólniejsze typy zadań: task zadanie rozumiane wąsko konkretny przydział pracy (np. deployment nowej wersji) enhancement / new feature rozszerzenie czy pomysł nowej funkcjonalności bug/defect błąd do poprawienia
Rozmiary zadania zadanie powinno być odpowiednie, tj wyznaczone przez oczekiwany czas jego realizacji. zbyt duże zadania trwające więcej niź kilka osobodni nie mają sensu, co więcej zauważalna jest tendencja do ignorowania takich zadań z biegiem czasu zbyt małe zadania są irytujące dla programisty i kosztowe w utrzymaniu zadania wirtualne (zadania będące grupami zadań) należy tworzyć z odpowiednią ostrożnością
Dualny aspekt ZZ popularne systemy zarządzania zadaniami wyrastają z: systemów zgłaszania błędów (np. bugzilla) systemów kontroli pracy i przyrostów stąd naturalne źródła zadań to: zadania wynikające ze specyfikacji funkcjonalnej produktu czy przyrostu zgłoszeń błędów testerów, programistów bądź nawet użytkowników wybór i sposób użycia systemu ZZ zależy od przyjętej metodyki pracy
Cykl życia zadania new wprowadzone do systemu assigned przydzielone konkretnej osobie (wg terminologii traca staje się jego właścicielem) accepted przyjęte do realizacji, praca trwa resolved + powód: fixed, invalid, wontfix etc ew. reopened Zakończeniem pracy nad zadaniem musi być ustawienie statusu na resolved
Związki między zadaniami zwykle system ZZ nie jest systemem harmonogramowania mimo to : pozwala definiować zależności między zadaniami łączy zadania na wyższym poziomie np. w milestone'y pozwala monitorować postęp w ramach danego milestone'a
Trac system wspomagający zespołowe tworzenie oprogramowania. główne komponenty to: wiki, integracja z SVN, zarządzanie zadaniami. Integracja z SVN polega na: wbudowanej przeglądarce repozytorium na możliwości odwoływania się z wiki do konkretnych wersji konkretnych zasobów w repozytorium.
Trac 2 Wiki (poza std funkcjonalnością), obecny także w zarządzaniu zadaniami: komentarze do zadań mogą być tekstem wiki, co umożliwia np. wiązanie zadań przez luźnie komentarze i odsyłacze w stylu wiki. na stronach wiki można tworzyć odsyłacze do konkretnych zadań, raportów czy wersji plików w repozytorium SVN. ticket podstawowe pojęcie (zadanie) Trac jest rozszerzalny poprzez liczne pluginy.
Trac 3 Zakładki w Tracu: Wiki, Timeline: historia zmian, Roadmap: stopień realizacji harmonogramu (o tym później), Browse Source: przeglądarka SVN, View Tickets: istniejące zadania w systemie, New Ticket: dodawanie zadania do systemu, Search: wyszukiwarka
Ticket identyfikowany po numerze atrybuty: priority: wskazuje na ważność danego zadania, component: element systemu (kontekst, podsystem lub element zarządzania), do którego tyczy się zadanie, keywords: słowa kluczowe pomocne w wyszukiwaniu lub tworzeniu raportów, cc: lista użytkowników lub adresów e-mail, które będą powiadamiane o zmianach w zadaniu, milestone: kamień milowy, do którego przypisane jest dane zadanie, version: jakiej wersji systemu dotyczy np. zadanie typu defect, assign to: kto zostaje właścicielem zadania (zadanie może też nie mieć właściciela).
Zainstalowane dodatkowe pluginy WorkLog Plugin monitorowanie czasu pracy TimingAndEstimationPlugin szacowanie czasu pracy powyższe pluginy powodują pojawienie się dodatkowych atrybutów dla ticketu
Milestone w Tracu zbiór zadań połączonych jednym wspólnym najpóźniejszym terminem zakończenia możliwość monitorowania ile zadań z milestone'a została zakończona nadzorowanie postępu prac zadanie managera lub team leadera
Trac jako narzędzie komunikacji standardowo wbudowana wiki komentarze do zadań, reference do innych zadań related-to #12 CC do zadań integracja z mailingiem integracja z logami SVN
Definiowanie własnych raportów system Trac posiada elastyczny system raportów pozwala na tworzenie własnych raportów w języku SQL-podobnym oraz w GUI