Początkowo analitycy rejestrowali wymagania osobno, nie zawsze myśląc o zależnościach między nimi. To działało w przypadku małych systemów, ale w dużych projektach IT złożoność relacji między wymaganiami gwałtownie rośnie: pojawiają się zależności dotyczące danych, naruszenia integralności, sprzeczności oraz kaskadowe zmiany, które zwiększają ryzyko awarii.
Problem — brak lub niejawność powiązań między wymaganiami prowadzi do pominiętych bloków funkcjonalnych, błędów, problemów blokujących oraz niespójnej pracy zespołów. Często zmienia się jedno wymaganie, a związane — pozostają w tyle, co powoduje problemy w działaniu produktu.
Rozwiązanie — wykorzystanie praktyki jawnego modelowania i śledzenia zależności (mapping requirement dependencies). W tym celu stosuje się diagramy (np. traceability matrix, ERD), specjalistyczne narzędzia (Jama, Jira linking, DOORS), wyraźne określenie „rodzicielskich” i „dziecięcych” wymagań, a także ich wpływu na scenariusze testowe, architekturę i historie użytkowników. Konieczne jest przejrzyste dokumentowanie wszystkich zależności i informowanie zainteresowanych stron o każdej zmianie dotyczącej powiązanych wymagań.
Kluczowe cechy:
Co się stanie, jeśli w wymaganiach nie zostaną określone zależności?
Odpowiedź: Można przeoczyć krytyczne powiązania (np. jedno wymaganie nie może być zrealizowane bez drugiego), pojawią się blokady, niezadowolenie klientów, dodatkowe obciążenia w testowaniu.
Czy wystarczy raz zebrać mapę zależności na początku?
Odpowiedź: Nie. Mapa zależności powinna być aktualizowana przez cały cykl życia projektu. Zmiana któregokolwiek wymagania może wpłynąć na wszystkie związane z nim.
Czy zależności mogą być tylko bezpośrednie (A zależy od B)?
Odpowiedź: Nie. W rzeczywistych systemach często istnieją zależności krzyżowe, cykliczne oraz transakcyjne, a także wpływy przez wspólne zasoby lub integracje.
Negatywny przypadek: W projekcie e-commerce nie odzwierciedlono zależności między różnymi kanałami płatności. Po zmianie jednego modułu wystąpiła awaria — część zamówień nie była przetwarzana.
Plusy:
Minusy:
Pozytywny przypadek: Dla każdego wymagania biznesowego rejestrowano związane wymagania techniczne i stworzono matrycę śledzenia. W przypadku zmian automatycznie wysyłano powiadomienia do wszystkich zainteresowanych.
Plusy:
Minusy: