Logiczna organizacja danych

W poprzednim rozdziale kilkukrotnie użyte zostało sformułowanie sprawa. Jest to najmniejsza samodzielna jednostka informacji występująca w systemie WebIssues. Jest to zarazem bardzo ogólne pojęcie — pojedyncza sprawa może reprezentować błąd w oprogramowaniu, zgłoszenie serwisowe, zadanie do wykonania, wątek w dyskusji, zasób będący własnością firmy, itp.

Każda sprawa w systemie posiada swój unikalny i niezmienny identyfikator, dzięki czemu możesz ją jednoznacznie zidentyfikować w całym cyklu życia. Sprawa posiada również nazwę, a także dowolną liczbę atrybutów różnych typów, analogicznie do tabeli w arkuszu kalkulacyjnym, w którym pojedynczy wiersz reprezentuje sprawę, a kolumna — atrybut. W systemie WebIssues mogą istnieć niezależnie od siebie sprawy różnych typów, posiadających odmienne zestawy atrybutów — podobnie jak arkusz kalkulacyjny może zawierać tabele o różnym układzie kolumn.

Tabela zawierająca sprawy i atrybuty
Rysunek 1.1. Tabela zawierająca sprawy i atrybuty

Począwszy od wersji 1.1 systemu WebIssues, sprawy mogą również mieć opis, który jest dłuższym tekstem wyjaśniającym szczegóły sprawy. Zwykle jest on wprowadzany przy tworzeniu sprawy, ale może również być dodany lub zmieniony później.

Każda sprawa zarejestrowana w systemie posiada swoją historię, uszeregowaną chronologicznie począwszy od momentu utworzenia. Składają się na nią zmiany wartości poszczególnych atrybutów, a także komentarze oraz załączone pliki. Umożliwia to prześledzenie całego cyklu życia danej sprawy, odtworzenie jej stanu w dowolnym momencie, a także sprawdzenie, kto, kiedy i w jaki sposób zmodyfikował daną sprawę.

Historia sprawy ze zmianami, komentarzami i załącznikami
Rysunek 1.2. Historia sprawy ze zmianami, komentarzami i załącznikami

Aby zmaksymalizować produktywność i elastyczność, system WebIssues nie ma złożonego systemu uprawnień i opiera się na idei otwartej współpracy. Dlatego najlepiej nadaje się on do wewnętrznego użytku w zaufanej grupie pracowników lub członków organizacji. Każdy może tworzyć i dowolnie modyfikować wszystkie sprawy, do których ma dostęp. Każda zmiana jest jednak jawna i pozostaje trwale zarejestrowana przez system. Dodatkowo usuwanie spraw i inne potencjalne niebezpieczne lub nieodwracalne operacje wymagają specjalnych uprawnień.

Aby ułatwić zarządzanie sprawami, są one logicznie podzielone na foldery. Możesz utworzyć dowolną liczbę folderów różnych typów, przy czym pojedynczy folder musi zawierać sprawy tego samego typu. Kontynuując naszą analogię, folder jest więc odpowiednikiem tabeli w arkuszu. Korzystanie z folderów ułatwia wyszukiwanie informacji — możesz np. podzielić błędy według modułów, których dotyczą, albo wersji oprogramowania, listy dyskusyjne możesz podzielić według tematu, a zgłoszenia serwisowe według miesięcy, w których zostały zarejestrowane.

Foldery są z kolei pogrupowane w projekty. Dla każdego projektu możesz określić zbiór osób, które mają do niego dostęp, oraz ich uprawnienia w ramach tego projektu. Możesz zatem podzielić system na obszary, do których dostęp mają różne grupy użytkowników. Każdy projekt może również mieć swojego administratora (lub kilku administratorów). Administrator projektu ma większe uprawnienia niż zwykły użytkownik, np. ma możliwość usuwania spraw lub przenoszenia ich między folderami.

Drzewo projektów i folderów
Rysunek 1.3. Drzewo projektów i folderów

Nie ma możliwości definiowania uprawnień na niższym poziomie szczegółowości niż pojedynczy projekt. Wszyscy członkowie projektu mają zatem równoprawny dostęp do wszystkich informacji zawartych w tym projekcie i możliwość ich modyfikowania. System WebIssues zapewnia natomiast bezpieczeństwo przed niepowołanym dostępem do danych przez nieuprawnione osoby.

Począwszy od wersji 1.1 systemu WebIssues możliwe jest również wyświetlenie wszystkich spraw danego typu w jednej liście. Jest to szczególnie przydatne, jeśli w systemie istnieje wiele projektów. Zamiast stale przełączać się między projektami, możesz zobaczyć wszystkie sprawy, filtrować je w razie potrzeby i pracować z nimi.