W tym wpisie zapoznamy się z pojęciem User Story oraz z cyklem życia nowoutworzonej historii użytkownika.
Pojęcie User Story
User story to historia - scenariusz działania - które system powinien realizować opisana - zgodnie z nazwą - z punktu widzenia końcowego użytkownika aplikacji. Najczęściej jest to ścieżka przetważania pobierająca dane wejściowe, które przechodząc poprzez logikę aplikacji wprowadzają ją w jakiś stan lub też aplikacja utrwala te dane (najczęściej dodadkowo spreparowane) w bazie danych.
Tworzenie User Story
Aby utworzyć nowe user story możemy skorzystać z następujących lokalizacji na których znajduje się przycisk 'Utwórz nowe User Story':
- Dziennik Projektu - pod tą pozycją Menu Projektu możemy wykonać również import oraz eksport zdefiniowanych User Stories do pliku .cvs;
- Zadania - przycisk znajduje się nad wykresem obrazującym ilość wykonanej pracy - przycisk o którym mowa znajduje się w tym samym miejscu w którym znajduje się na stronie Dziennika Projektu;
Oto jak wygląda ekran tworzenia nowego User Story:

Omówimy teraz kolejne pozycje tego formularza:
- Nazwa - powinna jak najlepiej odwzorować proces który klient opisuje za pomocą tego User Story;
- Kolor karty - w celu odróżnienia poszczególnych User Story (lub też dla ich pogrupowania) możemy wybrać tutaj kolor tła karty na której definiowane własnie User Story będzie prezentowane;
- Prorytet - są tutaj do wyboru: Niezbędne, Potrzebne, Przydatne, Nie tym razem - tutaj definiujemy priorytet wykonania - jest on potrzebny aby zdefiniować "pilność" wykonania każdego z nich;
- w następnej liście możemy wybrać iterację - ale oczywiście nie musimy - w której dane User Story musi być wykonane, czyli zostać zaakceptować przez jego właściciela;
- tutaj możemy opisać dokładnie co zawiera się w danym User Story - generalnie tak jak definiujemy User Story używamy tutaj języka który jest zrozumiały dla klienta - zresztą User Story pisze najczęsciej klient opisując swoje potrzeby odnośnie tworzonego oprogramowania;
- tagi - w to pole wpisujemy słowa klucze które oddają treść User Story aby móc potem przefiltrować wszystkie User Story pod kątem danej zawartości (na stronie Dziennik Projektu);
- Właściciel User Story to ten użytkownik który będzie zarządzał danym User Story;
- Akceptujący to ten użytkownik który będzie weryfikować poprawne wykonanie tego User Story;
- nakład pracy - tutaj z rozwijanej listy będziemy wybierać ile jednostek (wirtualnych) czasu będzie potrzebne do wykonania tego User Story;
- dodaj domyślne zadania - oznacznie tego checkboxa spowoduje że zostanie utworzone domyślne zadanie dla tego User Story;
- załączniki - tutaj będziemy mogli dołączyć jakieś pliki które są pomocne do lepszego zrozumienia tego User Stories lub potrzebne do jego rozwiazania;
- na końcu mamy przyciski do zapisu lub anulowania tego User Story;
Po zapisaniu danego User Story zostaniemy przeniesiony na następującą stronę:

Mamy na niej szczegółowe informacje o dodanym właśnie User Story. Prawa kolumna jest wypełniona oknem komentowania oglądanego User Story oraz napisanymi już komentarzami. Pod danymi User Story pokazana jest lista zadań które są powiązane z danym User Story. Powyżej tej listy zadań jest przycisk który umożliwia dodanie nowego zadania do tego User Story. Nad informacjami szczegółowymi a pod Menu Projektu znajdują się informacje dotyczące edycji wybranego User Story. A więc możemy za ich pomocą:
- Podzelić User Story - otworzy się tak naprawdę okno edycji danego User Story za pomocą którego będziemy mogli zmienić wszystkie edytowalne dane poprzedniego User Story gdyż za pomocą przycisku Zapisz dane z tego formularza posłużą do utworzenia nowego User Story;
- Edycja User Story;
- Usunięcie Uset Story;
Przeglądanie User Stories
Pod pozycją Dziennik projektu wybrane za pomocą tagów User Stories możemy przeciągnąć do wylistowanych w prawej kolumnie Iteracji. Zmienić przydział User Story do Iteracji możemy również za pomocą edycji User Story z poziomu jego widoku, a następnie klikając w przycisk Edycja.
Pod pozycją Zadania również widzimy User Story - jednak tylko te które są zdefiniowane w ramach danej (wybranej z rozwijanej listy) Iteracji. W wierszu każdego User Stories dostępne są w tym widoku Zadania których wykonanie jest konieczne do spełnienia funkcjonalności opisanej w danym User Story.
W menu Akceptacja widzimy listę User Story w ramach Iteracji która jest wybrana z rozwijanej listy znajduącej się pod Pozycją menu. Tutaj widzimy wszystkie niezaakceptowane User Stories w tej iteracji. Gdy wszystkie zadania z danego User Story zostaną już zaakceptowane pojawiają się w tym widoku przyciski które umożliwiają zaakceptowanie bądź też odrzucenie danego User Stories. Akceptacja wszystkich User Stories prowadzi do możliwości zamknięcia iteracji. Oto jak wygląda strona w przypadku odrzucenia User Story ze wszystkimi zadaniami które są już wykonane:
Jak widać musimy podać przyczynę odrzucenia danego User Story i ją opisać. Informacje te stają się wówczas nowym Zadaniem które automatycznie jest przypisane do tego User Story i które staje się nowym zadaniem do zrobienia.
Podsumowanie
To tyle jeżeli chodzi o User Stories zapisaną w tym wpisie. Zaprezentowałem tutaj cykl życia User Story w TinyPM. Jednak podobnie jak tutaj używałem pojęć Iteracja i Zadanie które to nie zostały jeszcze opisane, tak również nie rozstajemy się z pojęciem User Story, gdyż podczas omawiania właśnie Zadań oraz Iteracji jeszcze nie raz wspomnę o Uset Story.







Jak widać dodając nowy projekt którym będziemy mogli zarządzac musimy podać kilka informacji na jego temat:

Mając już zdefiniowaną chociaż jedną rolę w systemie, możemy dodać użytkownika. Robimy to wybierając z 'górnego' menu pozycję użytkownicy (zaznaczona na poniższym screenie na czerwono) po którym to wyborze wyświetli się strona z listą użytkoników oraz przyciskiem (zaznaczonym na zielono):
Podajemy tutaj takie informacje jak nazwę użytkownika, jego login, adres email, hasło dostępowe, rolę która będzie przypisane do tego użytkownika oraz mamy wybór zaznaczenia takich pól jak: czy użytkownik jest aktywny, oraz zapisać się na powiadomienia gdy ktoś skomentuje związane z tworzonym użytkownikiem zadanie, lub ktoś przypisze zadanie tworzonemu właśnie użytkownikowi.