Základní otázky kolem 3A systémů

3A systém je každý systém pro zpracování dat s jasně definovaným způsobem provozování a vlastníkem. Příklady 3A systémů jsem uvedl v předchozím příspěvku. Dnes se zaměřím na seznam základních otázek, který by si měl zodpovědět každý, kdo vytvoření jakéhokoliv 3A systému plánuje bez ohledu na jeho velikost, složitost a plánovanou dobu používání.

Governance

  • Jaká organizační struktura nebo osoba je zodpovědná za systém? Má dostatečné kompetence pro vývoj provozování a údržbu systému? Má dostatečné znalosti pro řízení vývoje a provozování systému? Má dostatečné finance pro vytvoření a provozování systému?
  • Je jasné, jaký bude přínos řešení pro jednotlivé uživatele? Odpovídá přínos plánovaným nákladům (existuje byznys case pro řešení)? Je zajištěné financování řešení a personální zajištění řešení z dlouhodobého hlediska?
  • Kdo jsou skuteční uživatelé řešení a jaké jsou jejich skutečné potřeby a požadavky? Dokáží formulovat, co přesně potřebují?
  • Jaká je plánovaná doba existence řešení? Odpovídá technické řešení a velikost projektu plánované době existence? Existuje Road Map pro vytvoření a rozvoj řešení?
  • Odpovídají vybrané technologie pro správu dat a pro jejich presentaci velikosti zpracovávaných dat, složitosti transformací, způsobu provozování? Existuje s těmito technologiemi zkušenost, nebo se jedná o nové technologie?
  • Je vyžadováno, aby bylo možné opravovat chyby v publikovaných výsledcích? Jak bude vypadat takový proces? Kdo a jak může data upravovat?
  • Je jasné, že existují požadovaná vstupní data? Jsou jasné zodpovědnosti za přípravu a dodávku zdrojových dat?

Data Acquisition

  • Bude existovat nějaké SLA týkající se dostupnosti zdrojových dat?
  • Jak bude organizována komunikace s dodavateli dat?
  • Odpovídá stabilita a robustnost dohodnutých rozhraní velikosti a plánované životnosti řešení? Jak budou vlastníci zdrojových systémů informovat o změnách v době vývoje a v době provozování systému?
  • Jak budou detekovány a řešeny chyby ve vstupních datech? Je požadována funkcionalita ověřování kvality vstupních dat?
  • Jaké typy ověření jsou očekávány: technické parametry jako existence hodnot, rozsah, formát řetězce, uživatelsky definované ověření? Jaká granularita ověření bude podporována: na úrovni hodnoty, na úrovni řádku, na vazbu mezi záznamy, na vazbu mezi datovými sety, byznysové výpočty nad vstupními daty?
  • Jaké typy reakce na chyby budou podporovány: zastavení zpracování, vyřazení chybových řádků ze zpraování, umožnění opravy a dokončení zpracování?
  • Jak budou chyby ve vstupních datech prezentovány: chybové tabulky, notifikační email, funkcionalita uživatelského rozhraní?

Data Adoption

  • Kdo a na jakém základu bude definovat strukturu dat v systému z byznysového pohledu?
  • Kdo a na jakém základě bude vytvářeny transformace dat? Jak budou transformace vyvíjeny? Jak budou transformace dokumentovány? Jak budou transformace testovány?
  • Kde a jak budou prováděny transformace dat? Odpovídá technické řešení transformací očekávané velikosti dat, době existence řešení a vyspělosti vývojářů systému?
  • Bude systém podporovat testy správnosti mezivýsledků během zpracování? Pokud ano, kdo bude testy definovat?
  • Jaké reakce bude umožňovat systém při nalezen chybě (pouze vytvoření záznamu o chybě, zastavení výpočtu, vytvoření opravného záznamu, informování zodpovědných osob)?
  • Jaký plánovač bude použit? Bude se zpracování pouštět automaticky nebo pouze na základě uživatelského zásahu? Jak dlouho bude zpracování trvat a jak často se bude opakovat?
  •  Bude potřeba do systému nahrát nějaká historická data? Je jisté, že požadovaná historická data existují a jsou dosažitelná? Budou pro historická data vytvářeny speciální procesy nebo rozhraní?

Data Accessibility

  • Bude existovat nějaké SLA týkající se dostupnosti výsledků zpracování?
  • Jak bude organizována komunikace s uživateli výsledků? Jak moc budou moci koncoví uživatelé sami měnit zpracování dat nebo výstupy ze systému?
  • Je potřeba, aby uživatelé dostali oznámení o dostupnosti nových výsledků 3A systému? Stačí, aby neustále byly dosažitelné poslední výsledky?
  • Budou si výsledky uživatelé odebírat sami, nebo jim budou předávány? Jsou dostatečně technicky zdatní, aby si výsledky sami přebírali?
  • Bude systém umožňovat ruční vstupy a opravy během zpracování? Pokud ano, jaké procesy pro ruční vstupy a opravy budou existovat? Jak budou takové změny dokumentovány?
  • Bude během transformací dat možné běh zpracování uživatelsky měnit? Jak bude v takových případech průběh zpracování dokumentován?
  • Jak budou moci uživatelé eskalovat svoje požadavky na změny v systému? Mohou vyžadovat změny formátu nebo struktury doručených dat? Nají možnost doptat se, pokud datům nerozumí nebo data neodpovídají jejich očekávání?

Development

  • Kde bude uložen a jak bude spravován kód řešení? Jak jsou zajištěny změny kódu v reakci na změnu zpracovávaných dat? Je požadováno paralelně provozovat více verzí řešení nebo jeho částí?
  • Je systém popsán dostatečně podrobně, aby s výsledky mohli pracovat noví uživatelé? Je vývoj systému popsán dostatečně podrobně, aby do vývoje mohli zasáhnout noví vývojáři?
  • Obsahuje systém velké množství komponent s obdobnou funkcionalitou, pro které se vyplatí použít generátory kódu? Obsahuje systém funkcionalitu, pro kterou se vyplatí vytvořit komponenty řízené daty?
  • Odpovídá vývojový proces a použité technologie počtu očekávaných změn na zdrojových datech nebo na výstupech pro uživatele?
  • Na kolika vývojových prostředích bude probíhat vývoj souběžně? Kolik produkčních prostředí bude existovat? Jak je zajištěn přenos mezi jednotlivými řešeními? Jak je zajištěna synchronizace produkčních řešení?
  • Bude potřeba používat testovací data nebo se budou používat pro vývoj produkční data?
  • Bude potřeba připravovat testovací data? Pokud ano, jak vzniknou; budou se vytvářet syntetická data nebo se použije anonymizovaná produkce?

Operation

  • Jaký bude model provozování aplikace? Bude ji provozovat IT, vlastníci, vývojáři aplikace, budou ji spouštět samostatně uživatelé řešení?
  • Na kolika prostředích bude systém provozován? Jak se liší vývojové, testovací, akceptační a produkční prostředí?
  • Jak je zajištěna reakce na chyby: nedostupnost vstupních dat, chyby ve vstupních datech, chyby ve zpracování, řešení nejasností uživatelů? Kdo a v jakém režimu bude zajišťovat reakce? Bude existovat nějaké SLA? Bude existovat více úrovní podpory?
  • Jaký komfort pro sledování zpracování je požadován? Kolik lidí bude zpracování spouštět, ovlivňovat a dozorovat?
  • Bude existovat nějaký univerzální způsob prohledávání dat v systému dostupný uživatelům? Jaký?
  • Bude existovat nějaký univerzální způsob prohledávání logů zpracování a logů chyb v datech dostupný uživatelům? Jaký?
  • Budou skladovány historické verze dat v aplikaci? Pokud ano, tak kde: přímo v aplikaci, budou exportována do jiného systému, nechá se to na zodpovědnosti jednotlivých uživatelů?

Dočetli jste až sem? Dokážete na jednotlivé body odpovědět? Pevně věřím, že vám odpovědi pomohli získat názor na to, na co se máte při vývoji zaměřit. A pokud už nějaký 3A systém provozujete, tak názor na to, co zlepšit. Kdybyste došli k názoru, že nějaká důležitá otázka v seznamu chybí, ozvěte se. Rád se při plánování dalšího 3A projektu nechám inspirovat.

Ondřej Zýka