Po pierwsze, prawie nic w odpowiedzi @ DXM nie odpowiada mojemu doświadczeniu z Agile, a zwłaszcza ze Scrumem.
Agile Manifesto stwierdza, że choć niepełna dokumentacja jest wartościowy, działa oprogramowanie jest bardziej wartościowe. Dokumentacja z pewnością nie jest złą rzeczą, ale powinna naprawdę służyć tworzeniu działającego oprogramowania.
Osoby i interakcje dotyczące procesów i narzędzi
Działające oprogramowanie w obszernej dokumentacji
Współpraca z klientami w zakresie negocjacji umów
Reagowanie na zmianę po wykonaniu planu
Oznacza to, że chociaż w przedmiotach po prawej stronie znajduje się wartość, bardziej cenimy przedmioty po lewej stronie.
Dopracowanie każdego szczegółu przed rozpoczęciem kodowania okazało się bezużyteczne, więc dokumentacja jest na ogół rozpatrywana w JIT (na czas). Oznacza to, że dokumentujesz, co faktycznie zamierzasz kodować.
Jednym z popularnych sposobów robienia Scruma jest korzystanie z historii użytkowników, które są przechowywane przez właściciela produktu i przechowywane w rejestrze produktu. Backlog produktu to dość wysoka lista wszystkich rzeczy, które musi wykonać rozwiązanie, a User Story to ogólnie dobry sposób na opisanie każdej rzeczy na liście. Historie użytkowników nie są obowiązkowe, ale wydają się dobrym sposobem, aby nie przesadzić z szczegółami i zamiast tego zainspirować do współpracy.
Tak więc, w każdym razie, gdy historia jest gotowa - zespół stworzył, przetestował i wdrożył coś, co spełnia kryteria akceptacji, historia nie jest WYZNACZONA, jest po prostu oznaczona jako ukończona w zaległości - więc zaległości mają pewne wskazania o tym, co zostało zrobione w każdym sprincie - historie i związane z nimi punkty. To pozwala ci obliczyć prędkość i jest cenną dokumentacją samą w sobie.
To powiedziawszy, historia użytkownika może być całą dokumentacją potrzebną do zrozumienia wymagań, ale bardziej prawdopodobne jest, że jest to coś, co może wygenerować rozmowę między klientem a zespołem programistów. W związku z tym podczas rozmowy można wykonać dowolną liczbę czynności. Jeśli jest to rzecz ad hoc, jak to często bywa, analityk / programiści mogą (i być może, w zależności od organizacji, powinni) zapisać wszelkie podjęte decyzje i zapisać je gdzieś, takie jak Wiki lub repozytorium dokumentacji. Jeśli jest to rozmowa e-mail, możesz zapisać wiadomości e-mail. Jeśli jest to sesja tablicy, zrób zdjęcie tablicy za pomocą telefonu komórkowego i zapisz ją. Chodzi o to, że te rzeczy pomagają ci wykonać kod i mogą ci pomóc później, jeśli będziesz musiał dowiedzieć się, jak i dlaczego zrobiłeś to tak, jak to zrobiłeś.
Inną metodą przechwytywania wymagań jest natychmiastowe osadzenie ich w przypadkach testowych (co moim zdaniem było celem DXM). Może to być naprawdę wydajne, ponieważ i tak musisz przetestować każde wymaganie. W takim przypadku możesz skutecznie przechowywać swoje wymagania w narzędziu testowym.
Jeśli historia jest ukończona (i zaakceptowana), a następnie użytkownik zmienia swoją potrzebę, cóż, prawdopodobnie musisz stworzyć nową historię. Jeśli korzystasz z wiki w swojej dokumentacji, możesz połączyć nową historię z oryginałem, a także link tej oryginalnej historii do nowych rzeczy, aby ktoś, kto na nią spojrzy, wiedział, że coś się zmieniło. To miło w wiki - łączenie rzeczy jest łatwe i dość bezbolesne. Jeśli stosujesz podejście oparte na testach, możesz zaktualizować przypadek testowy, aby poradzić sobie ze zmianą, lub utworzyć nowe przypadki testowe dla nowej historii, jeśli nowe i stare nie wykluczają się wzajemnie.
Ostatecznie zależy to od twoich potrzeb. Jeśli najważniejsze jest szybkie przyspieszenie ludzi, prawdopodobnie dobrym pomysłem jest napisanie dokumentu z prośbą o pomoc. Niech ktoś to zrobi. Jak wspomniałem, Wiki są świetnym narzędziem do utrzymywania tego rodzaju rzeczy, więc możesz rozważyć rozwiązania Atlassian, które mogą zintegrować Wiki Confluence z Jira i Greenhopper do śledzenia twoich historii / zadań / defektów i ogólnego zarządzania projektem. Istnieje również wiele innych narzędzi do wyboru.