Narzędzia
Portfolio Roadmapa Słownik Blog Portal dla BA
← Wszystkie artykuły
techniki 2026-08-20

Tabele decyzyjne i DMN: jak zapisać logikę biznesową

10 min czytania

Trzy warunki i dwa "chyba że" wystarczą, żeby wymagania opisane prozą się posypały. Zobacz, jak tabela decyzyjna i DMN zamieniają logikę biznesową w macierz, którą da się sprawdzić, przetestować i wdrożyć bez niespodzianek.

Tabele decyzyjne i DMN: jak zapisać logikę biznesową

"Jeżeli klient ma pozytywną historię kredytową oraz dochód powyżej progu, to przyznajemy limit, chyba że wniosek dotyczy kwoty wyższej niż standardowa, wtedy dodatkowo wymagamy zabezpieczenia, o ile klient nie jest klientem premium". Takie zdanie znalazłem kiedyś w dokumencie wymagań. Jedno zdanie, cztery warunki, trzy wyjątki. Deweloper zaimplementował je po swojemu, tester zrozumiał po swojemu, a biznes miał na myśli coś trzeciego.

Ten problem rozwiązuje się jednym narzędziem: tabelą decyzyjną. To jedna z tych technik, które w BABOK-u (technika "Decision Modelling") wyglądają niepozornie, a w praktyce ratują projekt.

Kiedy if-y opisane prozą przestają działać

Proza wytrzymuje dwa, może trzy warunki. "Jeśli klient jest nowy, daj 5% rabatu" - okej, to jeszcze działa. Ale logika biznesowa rzadko jest taka grzeczna.

Prawdziwe reguły mają kilka warunków wejściowych, wyjątki i przypadki brzegowe. Przy trzech warunkach typu tak/nie masz już 8 kombinacji. Przy czterech - 16. Spróbuj opisać 16 przypadków zdaniami podrzędnie złożonymi i policz, ile z nich zgubisz po drodze.

Objawy, że pora na tabelę:

  • W wymaganiach pojawiają się zdania z więcej niż jednym "chyba że".
  • Deweloper pyta "a co, jeśli klient ma historię, ale nie ma dochodu?", a odpowiedzi w dokumencie nie ma.
  • Tester zgłasza buga, biznes mówi "przecież to oczywiste", a w specyfikacji tego przypadku po prostu nie ma.

Tabela decyzyjna zamienia prozę na macierz: każda kolumna (albo wiersz, zależnie od konwencji) to jedna reguła, którą widać w całości. Nie da się "zapomnieć" kombinacji, bo puste pole w tabeli krzyczy samo.

Budowa tabeli decyzyjnej: warunki, akcje, reguły

Tabela decyzyjna ma trzy części:

  • Warunki - pytania, na które odpowiadasz na wejściu (np. "dochód netto >= 6000 zł?").
  • Akcje - co system albo człowiek ma zrobić (np. "przyznaj automatycznie").
  • Reguły - kolumny łączące konkretną kombinację odpowiedzi z konkretną akcją.

Zobaczmy to na scoringu wniosku kredytowego. Trzy warunki tak/nie, więc pełna tabela ma 2 x 2 x 2 = 8 reguł:

Warunek R1 R2 R3 R4 R5 R6 R7 R8
Dochód netto >= 6000 zł T T T T N N N N
Pozytywna historia w BIK T T N N T T N N
Umowa o pracę min. 6 mies. T N T N T N T N
Akcja
Zgoda automatyczna X
Analiza ręczna X X X
Odmowa X X X X

Czytasz kolumnami: reguła R1 mówi "dochód jest, historia czysta, umowa stabilna - przyznaj automatycznie". R4: "dochód jest, ale ani historii, ani stabilnego zatrudnienia - odmowa".

Osiem przypadków, zero zdań podrzędnych, zero "chyba że". Biznes patrzy na kolumnę R5 (dochód poniżej progu, ale czysty BIK i stabilna umowa) i od razu decyduje: potwierdza analizę ręczną albo mówi "nie, to od razu odmowa". Rozmowa o regułach trwa minuty zamiast tygodni.

Tabelę można potem skompresować: jeśli przy negatywnej historii BIK i braku stabilnej umowy zawsze wychodzi odmowa, niezależnie od dochodu, to reguły R4 i R8 sklejasz w jedną z kreską ("-" = wartość nieistotna). Mniej kolumn, ta sama logika. Kompresuj dopiero PO zbudowaniu pełnej tabeli, nigdy przed - inaczej właśnie w kompresji zgubisz przypadek.

Kompletność i spójność: jak sprawdzić, że nie zgubiłeś reguły

Tu tabela decyzyjna bije prozę na głowę, bo poprawność da się policzyć.

Kompletność. Liczba reguł w pełnej tabeli to iloczyn liczby wartości każdego warunku. Trzy warunki tak/nie = 8 reguł. Warunek o trzech wartościach (segment klienta: standard / premium / VIP) i dwa tak/nie = 3 x 2 x 2 = 12. Twoja tabela ma mniej i to nie jest świadoma kompresja? Gdzieś jest dziura. W prozie tej dziury nie zobaczysz nigdy, w tabeli widzisz ją od razu.

Spójność. Dwie reguły są sprzeczne, gdy mają te same wartości warunków, ale różne akcje. W dokumentach łatanych przez kilka osób to norma: na stronie 4 ktoś dopisał wyjątek dla klientów premium, na stronie 11 ktoś inny dopisał inny. W tabeli sprzeczność to dwie identyczne kolumny warunków z różnymi X-ami. Widać gołym okiem.

Redundancja. Dwie reguły o tych samych warunkach i tej samej akcji to duplikat. Nie psuje logiki, ale zaciemnia tabelę.

Praktyczny rytuał z warsztatów z biznesem: buduję pełną tabelę ze wszystkimi kombinacjami, nawet "bezsensownymi", i przechodzę z interesariuszami kolumna po kolumnie z jednym pytaniem: "co system robi w TYM przypadku?". Najcenniejsze są odpowiedzi, przy których zapada cisza - to reguły, które w wersji prozą nigdy by nie powstały i wybuchłyby na produkcji.

DMN w pigułce: diagram wymagań decyzyjnych i hit policy

DMN (Decision Model and Notation) to standard OMG, tej samej organizacji, która stoi za BPMN i UML. Nie musisz znać całej specyfikacji. Do codziennej pracy analityka wystarczą dwa elementy.

Diagram wymagań decyzyjnych (DRD) pokazuje, z czego decyzja się składa i skąd bierze dane. Cztery klocki:

  • Decyzja (prostokąt) - np. "Oceń wniosek kredytowy".
  • Dane wejściowe (owal) - np. "Dane o dochodach", "Raport BIK".
  • Model wiedzy biznesowej (prostokąt ze ściętymi rogami) - reużywalna logika, najczęściej właśnie tabela decyzyjna.
  • Źródło wiedzy (element z falowaną krawędzią) - skąd reguły pochodzą: rekomendacja regulatora, polityka ryzyka, dział prawny.

DRD mówi, CO wpływa na decyzję; tabela decyzyjna - JAK dokładnie decydujemy. Duże decyzje rozbijasz na mniejsze: "Oceń wniosek" korzysta z pod-decyzji "Oceń zdolność" i "Oceń wiarygodność", każda ma własną tabelę. To ratuje przed tabelami-potworami na 200 reguł.

Hit policy mówi, co się dzieje, gdy do danych wejściowych pasuje więcej niż jedna reguła. Oznacza się ją literą w lewym górnym rogu tabeli:

  • U (Unique) - reguły się nie nakładają, pasuje zawsze dokładnie jedna. Najbezpieczniejsza, bo wymusza spójność. Zaczynaj od niej.
  • F (First) - pasować może kilka, wygrywa pierwsza od góry. Wygodna, ale kolejność wierszy staje się częścią logiki.
  • A (Any) - może pasować kilka, ale wszystkie muszą dawać ten sam wynik.
  • P (Priority) - wygrywa reguła o najwyższym priorytecie wyniku.
  • C (Collect) - zbierasz wyniki wszystkich pasujących reguł, np. sumujesz rabaty.

Ta litera to skodyfikowana odpowiedź na pytanie, które i tak padnie od dewelopera: "a jak pasują dwie reguły naraz, to która wygrywa?". A jeśli obok DMN układasz sobie w głowie cały temat certyfikatów i standardów, porównanie rynkowych certyfikacji BA znajdziesz na analify.pl/certyfikacje.

Tabela decyzyjna a BPMN: gdzie decyzja mieszka w procesie

Częsty błąd: modelowanie logiki decyzyjnej bramkami w BPMN. Trzy warunki po kilka wartości i Twój diagram procesu zamienia się w choinkę bramek XOR, której nikt nie ogarnia.

Podział ról jest prosty. BPMN pokazuje kiedy decyzja zapada i co się dzieje potem. DMN pokazuje jak decyzja jest podejmowana. W procesie stawiasz jedno zadanie typu business rule task ("Oceń wniosek kredytowy"), a za nim jedną bramkę z wyjściami odpowiadającymi akcjom z tabeli: zgoda / analiza ręczna / odmowa. Cała macierz warunków żyje w tabeli DMN podpiętej pod to zadanie.

Efekt: diagram procesu zostaje czytelny, a logikę decyzji zmieniasz bez przerysowywania procesu. Biznes zmienił próg dochodu z 6000 na 7000 zł? Edytujesz jedną komórkę tabeli, proces nietknięty.

Jeśli dopiero układasz sobie warsztat BPMN, zacznij od artykułu o tym, jak narysować diagram procesu biznesowego, a potem wracaj tu po warstwę decyzyjną.

Z tabeli do testów: gotowe przypadki testowe niemal za darmo

To mój ulubiony argument w rozmowach z zespołami QA: dobra tabela decyzyjna to gotowy plan testów.

Każda reguła tabeli to jeden przypadek testowy. Kolumna R4 ze scoringu wyżej czyta się wprost jako scenariusz:

Dane: dochód 8500 zł, negatywna historia w BIK, umowa o dzieło od 2 miesięcy. Oczekiwany wynik: odmowa.

Osiem reguł = osiem przypadków testowych pokrywających całą logikę decyzji. Bez zgadywania, bez "przetestujmy jeszcze parę losowych kombinacji na wszelki wypadek". Do tego dorzucasz testy wartości brzegowych na warunkach liczbowych: dochód 5999, 6000 i 6001 zł, bo właśnie na progach implementacje sypią się najczęściej (klasyczny błąd: ">" zamiast ">=").

W jednym z projektów tabela zbudowana na etapie analizy wykryła sprzeczność w regułach przed pierwszą linijką kodu. Koszt: godzina warsztatu z biznesem. Ta sama sprzeczność na testach akceptacyjnych kosztowałaby sprint, a na produkcji - reklamacje klientów.

Umiejętność przekładania wymagań na testowalne reguły realnie widać w ogłoszeniach o pracę dla BA - popyt na konkretne umiejętności analityczne podglądniesz w barometrze rynku BA.

Szablon tabeli + trzy przykłady z różnych domen

Szablon do skopiowania. Wypełniasz pięć sekcji i masz artefakt gotowy do review:

Sekcja Co wpisujesz
Nazwa decyzji Czasownik + obiekt, np. "Oceń wniosek kredytowy"
Hit policy U, jeśli nie masz twardego powodu na inną
Warunki (wiersze górne) Pytania z jednoznacznymi wartościami (T/N albo lista)
Akcje (wiersze dolne) Konkretne działania, po jednym X na regułę (przy U)
Reguły (kolumny) Pełny iloczyn kombinacji, kompresja dopiero na końcu

Zanim wyślesz tabelę do kogokolwiek, przejdź checklistę review:

  1. Liczba reguł = iloczyn wartości warunków (albo opisana kompresja).
  2. Brak dwóch identycznych kolumn warunków z różnymi akcjami.
  3. Przy hit policy U - dokładnie jedna akcja na regułę.
  4. Granice liczbowe rozstrzygnięte (">=" czy ">").
  5. Każdą kolumnę zatwierdził właściciel biznesowy, nie "chyba tak będzie dobrze".

Przykład 1 - kredyt masz wyżej w sekcji o budowie tabeli.

Przykład 2 - rabaty w e-commerce (tabela z wpisami rozszerzonymi, czyli wartościami zamiast T/N):

Wartość zamówienia Klient w programie lojalnościowym Rabat
< 200 zł Nie 0%
< 200 zł Tak 5%
200-1000 zł Nie 5%
200-1000 zł Tak 10%
> 1000 zł Nie 10%
> 1000 zł Tak 15%

Sześć reguł, komplet kombinacji (3 przedziały x 2 statusy), zero nakładania się przedziałów. Zwróć uwagę na granice: czy 200 zł wpada do pierwszego przedziału, czy do drugiego? W tabeli musisz to rozstrzygnąć, w prozie "przy zamówieniach do 200 zł" nikt by tego pytania nawet nie zadał.

Przykład 3 - uprawnienia w systemie:

Rola użytkownika Konto zweryfikowane Dostęp do raportów finansowych
Pracownik Nie Brak
Pracownik Tak Tylko odczyt
Menedżer Nie Brak
Menedżer Tak Odczyt i eksport
Administrator Nie Brak
Administrator Tak Pełny

Konto niezweryfikowane zawsze daje "Brak", więc trzy reguły skompresujesz do jednej z "-" w kolumnie roli. Ale najpierw pełna tabela, potem kompresja.

Te trzy domeny celowo są różne, bo tabela decyzyjna nie jest techniką "bankową". Działa wszędzie tam, gdzie wynik zależy od kombinacji warunków: naliczanie prowizji, routing zgłoszeń w service desku, kwalifikacja leadów, walidacja formularzy. Jeśli dopiero rozważasz wejście w analizę biznesową, zajrzyj do ścieżek przebranżowienia na analityka - logiczne myślenie warunkami masz pewnie już teraz, tabela tylko nadaje mu formę.

Od czego zacząć

Weź jedną regułę biznesową z projektu, nad którym właśnie pracujesz - taką z co najmniej jednym "chyba że". Rozpisz warunki, policz kombinacje, zbuduj pełną tabelę i pokaż właścicielowi biznesowemu. Cisza przy którejś kolumnie oznacza, że znalazłeś dziurę w wymaganiach, zanim znalazła ją produkcja.

A jeśli chcesz przećwiczyć tabele decyzyjne, DMN i resztę warsztatu analityka na realistycznych zadaniach z feedbackiem, a nie tylko poczytać teorię, załóż darmowe konto na Analify i ucz się robiąc.

Czytaj też

Newsletter Analify

Nowe artykuły, porady i materiały dla analityków - prosto na email.

Dołącz do społeczności analityków biznesowych

Rozwijaj kompetencje, ucz się od praktyków i buduj karierę w analizie biznesowej.

Dołącz do Analify
SK

Sebastian Koczyk

Analityk biznesowy, twórca Analify.pl

Dołącz do społeczności analityków biznesowych - szkolenia wideo, prelekcje na żywo i wsparcie ekspertów

Sprawdź Analify