Prečo väčšina dashboardov nikto nepoužíva
O rozdiele medzi reportom, ktorý vyzerá pekne, a reportom, ktorý mení rozhodnutia. A čo s tým robím pri návrhu dátového modelu.
Za štyri roky som postavil dosť dashboardov na to, aby som vedel rozoznať ten, ktorý sa bude otvárať každé ráno, od toho, ktorý si po prezentácii nikto neotvorí. Rozdiel takmer nikdy nie je v dátach ani v grafoch. Je v otázke, ktorú sme si na začiatku nepoložili.
Report bez rozhodnutia je len tabuľka s farbami
Typické zadanie znie: „potrebujeme prehľad predaja”. To nie je zadanie, to je téma. Prehľad predaja môže znamenať desať rôznych vecí a osem z nich nikto nepotrebuje. Preto sa vždy pýtam to isté:
- Aké rozhodnutie sa má na základe tohto reportu spraviť?
- Kto ho spraví a ako často?
- Čo ten človek dnes robí namiesto toho?
Tretia otázka býva najužitočnejšia. Ak odpoveď znie „exportuje si to do Excelu a prepočíta ručne”, práve som sa dozvedel, ako má report reálne vyzerať — a že môj krásny vizuál by na tom nič nezmenil.
Dashboard, ktorý neodpovedá na konkrétnu otázku, si používateľ otvorí presne dvakrát: keď mu ho ukážeš a keď ho o to požiadaš druhýkrát.
Znie to banálne, ale v praxi je to najčastejší dôvod, prečo projekt skončí ako „máme to niekde na Sharepointe”. Nikto neurobil ten nepríjemný krok na začiatku: nespýtal sa, kto a prečo.
Pomalý report je väčšinou chyba modelu
Druhý dôvod, prečo reporty odumierajú, je banálny — trvá im to. Keď sa vizuál načítava osem sekúnd, používateľ sa vráti k Excelu. A v drvivej väčšine prípadov nejde o zlý DAX, ale o model, ktorý vznikol tak, že sa do neho postupne prilepovali tabuľky.
Príklad merania, ktoré vyzerá nevinne, ale na plochej tabuľke s miliónmi riadkov zabije výkon:
Predaj YTD =
CALCULATE(
SUM( Predaj[Suma] ),
DATESYTD( 'Kalendár'[Dátum] )
)
Samotný výpočet je v poriadku. Problém nastane, keď 'Kalendár' nie je označený ako dátumová tabuľka a vzťah na Predaj je obojsmerný. Engine potom nemôže použiť optimalizácie pre časovú inteligenciu a prepočítava viac, než musí. Oprava trvá dve minúty a je na úrovni modelu, nie vzorca.
Čo s tým robím v praxi
- Star schema namiesto jednej širokej tabuľky — takmer vždy.
- Jednosmerné vzťahy, pokiaľ neexistuje dobrý dôvod na opak.
- Označená dátumová tabuľka, nie stĺpec s dátumom vo fakte.
- Odstránenie stĺpcov, ktoré nikto nepoužíva. Väčšinou ich je polovica.
Žiadny z týchto krokov nie je objav. Napriek tomu ich v prevzatých reportoch nachádzam pravidelne — pretože model vznikol počas prvého týždňa projektu, keď ešte nikto nevedel, čo report bude robiť, a už sa k nemu nikto nevrátil.
Tretí dôvod: nikto nevie, odkiaľ to číslo je
Aj rýchly report s jasným účelom zomrie, ak mu ľudia neveria. Stačí jedna porada, na ktorej sa dve čísla nezhodujú, a dashboard je odpísaný — bez ohľadu na to, ktoré z nich bolo správne.
Preto do každého väčšieho reportu pridávam nudnú stránku, ktorá nikoho nenadchne: zdroj dát, čas poslednej aktualizácie a definíciu kľúčových metrík vetou, nie vzorcom. Zaberie hodinu a ušetrí opakovanú diskusiu o tom, či „tržba” znamená s DPH alebo bez.
Dobrý report sa dá obhájiť
Najlepšia spätná väzba, akú môžem dostať, nie je „to vyzerá super”. Je to otázka „a prečo je to číslo také?” — pretože znamená, že sa niekto na report naozaj pozrel a chce sa oň oprieť pri rozhodnutí.
Vtedy má zmysel, že som na začiatku otravoval s otázkami. A vtedy je aj jasné, že tie otázky neboli zdržanie, ale samotná práca.