Redmine

Wprowadzenie

Redmine to elastyczna aplikacja internetowa wspierająca zarządzanie projektami programistycznymi. Agreguje ona w sobie wiele związanych z prowadzeniem projektów funkcjonalności, w szczególności zawiera system śledzenia defektów ze zdefiniowanym cyklem życia defektów.

Konfiguracja

Scrum Master projektu otrzymuje uprawnienia administratora. Uprawnienia te powinny zostać wykorzystane do skonfigurowania systemu Redmine. Konfiguracja w szczególności obejmuje utworzenia kont wszystkim osobom pracującym nad projektem.

Obsługa błędów

W systemie Redmine należy odnotowywać wszystkie znalezione w rozwijanym systemie defekty. Zagadnienia odpowiadające defektom należy oznaczać jako 'Błąd'. Błędy można zgłaszać każdej z grup projektowych biorących udział w realizacji projektu, nie tylko swojej. Każdy zgłoszony błąd powinien zostać naprawiony zgodnie z cyklem życia defektów. Za rozwiązywanie błędów przyznawane są wpływające na ocenę końcową punkty.

Zadania

W systemie Redmine zgłaszane są również zadania. Cykl życia zadania jest identyczny jak błędu i podobnie jak w przypadku błędów przyznawane są wpływające na ocenę końcową punkty.

Obsługa przypadków użycia



Dla każdego przypadku użycia, nad którym rozpocznie się prace powinno być w Redmine utworzone zagadnienie typu 'Przypadek użycia'. Aktualne wersje dokumentów wytworzonych na potrzeby danego przypadku użycia powinny być do takiego zagadnienia dołączone w postaci załączników. Konieczne dołączone powinny zostać scenariusz przypadku użycia oraz specyfikacja testów automatycznych. Tym sposobem każda z grup projektowych będzie miała łatwy dostęp do aktualnej wersji dokumentacji.

Za zrealizowanie przypadku użycia przyznawane są wpływające na ocenę końcową punkty. Za każdy przypadek użycia można zdobyć 1, 2, 3, 5 lub 8 punktów. Liczba punktów jest ustalana przed rozpoczęciem prac nad przypadkiem użycia i powinna odzwierciedlać stopień skomplikowania danego przypadku użycia.

Kierownik zespołu powinien rozpocząć prace nad przypadkiem użycia przez dokonanie podziału na zadania (Subtasks). Każde z zadań powinien przydzielić jednemu z członków zespołu, w tym również samemu sobie.

W Redmine można znaleźć większość zaplanowanych do realizacji przypadków użycia (w trakcie prac nad projektem będą pojawiać się kolejne, niemniej te najważniejsze powinny być znane już na początku prac). Wyrażone one są w postaci znanych ze zwinnych metodyk wytwarzania oprogramowania historii użytkownika (ang. User Story). Są one zapisane w postaci zaproponowanej przez Deana Leffingwella w książce Agile Software Requirements, mianowicie:

Jako <rola/aktor> <fraza czasownikowa - wykonywana czynność> [dzięki czemu <wartość biznesowa>].
 
Część znajdująca się w nawiasach kwadratowych jest opcjonalna. Fragmenty znajdujące się w nawiasach trójkątnych powinny być wypełnione treściami specyficznymi dla danego przypadku użycia. Przykład:

Jako administrator mogę dodawać nowe konta użytkowników.

Zadaniem studenta będzie przygotowanie na podstawie w taki sposób określonego wymagania szczegółowej specyfikacji (scenariusza przypadku użycia, diagramu aktywności) i testów akceptacyjnych, a następnie wynikającego z powyższych modelu (diagramy klas i sekwencji).

Sprint Backlog

Sprint Backlog to lista błędów, zadań i przypadków użycia, które mają zostać zrealizowane w trakcie aktualnego sprintu. Powstaje w trakcie Sprint planning meeting w systemie Redmine. Z punktu widzenia systemu Redmine jest to zbiór zagadnień (issues), które w polu Sprint mają wartość równą identyfikatorowi aktualnego sprintu.

Przydzielanie zagadnień do grup projektowych

Studenci realizujący projekt są podzieleni na czteroosobowe zespoły projektowe. Każdy taki zespół jest odpowiedzialny za inną część rozwijanego systemu. Z drugiej strony, każde zagadnienie zgłoszone w Redmine (błąd, zadanie oraz przypadek użycia) posiada pole Category. Zawartość tego pola informuje jakiej częsci systemu dane zagadnienie dotyczy. Do każdej części systemu powinien być przypisany dokładnie jeden czteroosobowy zespół projektowy (informacje o tym, który zespół do jakiej cześci systemu jest przypisany powinny znajdować się na Wiki). W związku z tym można na podstawie zawartości pola Category wskazać studentów, którzy dane zagadnienie powinni realizować.

Wiki

Redmine zawiera pewne dodatkowe funkcjonalności, które nie są bezpośrednio związane z cyklem życia wspomnianych powyżej zagadnień. Spośród tych funkcjonalności obligatoryjne jest stosowanie wiki, które powinno usprawniać komunikację pomiędzy grupami projektowymi. W wiki należy umieszczać dokumenty, które są istotne dla wielu grup projektowych np. definicje interfejsów komponentów, model danych, opis koncepcji systemu.

Forum

W trakcie realizacji projektu będą się pojawiać pytania i problemy wymagające pomocy ze strony prowadzącego. Zalecaną ścieżką uzyskiwania odpowiedzi od prowadzącego w takich sytuacjach jest zadanie pytania przez forum. Zachęcamy również do korzystania z forum jako medium komunikacyjnego pomiędzy studentami realizującymi projekt. Dzięki temu automatycznie powstawać będzie baza informacji dotyczących realizowanego projektu, która może być pomocna dla wszystkich zaangażowanych w przedsięwzięcie.

Adresy

http://www.redmine.org – strona domowa systemu Redmine

http://snow.iiar.pwr.wroc.pl/redmine/ - instancja systemu Redmine wykorzystywana na zajęciach projektowych