Šablona Doménový kontext

Účel

  • tento dokument existuje za účelem sjednocení porozumění doméně projektu
  • slouží jako sdílený kontext pro všechny následující role v pipeline
  • vysvětluje, jaký typ problému je řešen, proč je řešen a jaké pojmy musí být chápány konzistentně
  • neslouží jako technická specifikace řešení
  • neslouží jako návrh implementace
  • neslouží jako zdroj nových požadavků

Shrnutí domény

  • doména je širší oblast problému, ve které projekt funguje
  • cílem není pouze vytvořit konkrétní řešení, ale vyřešit smysluplný problém v doméně udržitelným a srozumitelným způsobem
  • projekt by měl reflektovat reálné potřeby, omezení a terminologii domény
  • byznysový problém spočívá v tom, že bez jasně definovaného kontextu domény mají analýza, implementace, testování a dokumentace tendenci se rozcházet
  • hlavním účelem je vytvořit stabilní referenční vrstvu, která udrží veškerou další práci v souladu se skutečnou povahou domény

Principy domény

  • doména musí být popsaná z hlediska účelu, významu a hranic
  • kontext musí zůstat obecný, stabilní a dlouhodobě použitelný
  • popis domény nesmí sklouznout do technických detailů implementace
  • cílem není maximální detail, ale konzistentní a dlouhodobě udržitelné porozumění
  • žádná část kontextu nesmí zavádět skryté rozšiřování scope

Cíl

  • cílem v rámci této domény je definovat, o čem projekt skutečně je z pohledu byznysu a konceptu
  • kontext se zaměřuje na účel, rozsah, význam a očekávanou interpretaci
  • správné porozumění znamená, že doména může být interpretována konzistentně napříč různými rolemi a artefakty
  • cílem není předepisovat detaily implementace
  • cílem není nahrazovat analytickou, návrhovou nebo vývojovou dokumentaci

Rozsah validace

  • kontext domény pokrývá:
    • účel domény
    • byznysový význam projektu
    • klíčové koncepty a entity
    • hranice, očekávání a pravidla interpretace
  • kontext domény nepokrývá:
    • strukturu repozitáře
    • detaily implementace
    • konkrétní úkoly nebo backlog položky
    • dočasná projektová rozhodnutí
    • technický návrh modulů
    • testovací scénáře ani logiku jejich běhu

Klíčové koncepty

Doména

  • širší prostor problému, ve kterém projekt existuje
  • v tomto kontextu reprezentuje reálný význam řešení
  • často bývá zaměňována s rozsahem implementace
  • doména je širší než konkrétní feature nebo modul

Byznysový problém

  • skutečný problém nebo potřeba, kterou má projekt řešit
  • v tomto kontextu vysvětluje, proč projekt existuje
  • často bývá zaměňován s bugem, úkolem nebo technickým omezením
  • byznysový problém definuje účel, ne implementaci

Cíl projektu

  • zamýšlený výsledek, kterého má projekt v rámci domény dosáhnout
  • v tomto kontextu propojuje problém se smysluplným směrem
  • často bývá zaměňován s technickým milníkem
  • cíl vysvětluje, čeho má být dosaženo, ne jak

Scope

  • množina věcí, které jsou záměrně zahrnuty do domény projektu
  • v tomto kontextu definuje, co patří do prostoru řešení
  • často bývá zaměňován s implementačním backlogem
  • scope určuje relevanci, ne detaily provedení

Hranice

  • limit, který definuje, co je mimo doménu nebo mimo zamýšlený účel
  • v tomto kontextu brání nekontrolovanému rozšiřování
  • často bývá zaměňována s technickým omezením
  • hranice chrání integritu domény

Omezení

  • pravidlo, podmínka nebo limit, který musí být respektován
  • v tomto kontextu odráží realitu, která formuje prostor řešení
  • často bývá zaměňováno s implementačním rozhodnutím
  • omezení ovlivňuje možné varianty řešení, ne jen volby v kódu

Stakeholder

  • osoba, role nebo skupina, která je ovlivněna projektem nebo jeho výstupy
  • v tomto kontextu dávají stakeholderi doméně praktický význam
  • často bývá zaměňován s rolí v pipeline
  • relevance stakeholdera vychází z byznysového dopadu, ne z vlastnictví nástroje

Artefakt

  • dokument nebo výstup, který zachycuje část porozumění, návrhu, implementace nebo validace
  • v tomto kontextu je nositelem znalosti, nikoliv samotnou znalostí
  • často bývá zaměňován s definicí domény
  • artefakty mají být v souladu s doménou, ne ji předefinovávat

Klíčové entity

Projekt

  • konkrétní iniciativa, která je vyvíjena
  • je důležitý, protože aplikuje doménu v praxi
  • je vázán na cíle, omezení a výstupy

Oblast problému

  • část reality, kterou se projekt snaží řešit
  • je důležitá, protože definuje relevanci a účel
  • je vázána na byznysovou potřebu a očekávanou hodnotu

Uživatel nebo příjemce

  • osoba nebo role, která používá, čte nebo jinak těží z výstupu projektu
  • je důležitý, protože projekt existuje pro reálné použití
  • je vázán na očekávání, hodnotu a interpretaci

Znalostní artefakt

  • trvalý dokument nebo výstup nesoucí informace o projektu
  • je důležitý, protože projekt musí zůstat srozumitelný v čase
  • je vázán na analýzu, implementaci, testování a dlouhodobou kontinuitu

Pravidlo nebo omezení

  • omezující nebo formující podmínka v rámci domény
  • je důležitá, protože definuje, co je přijatelné nebo validní
  • je vázána na interpretaci, scope a rozhodování

Vztahy

  • projekt existuje v rámci konkrétní domény
  • doména je definována byznysovým problémem, cíli, hranicemi a omezeními
  • stakeholderi dávají projektu a jeho výstupům význam
  • artefakty zachycují znalosti o projektu, ale nenahrazují samotnou doménu
  • scope určuje, co je v rámci domény relevantní
  • hranice a omezení brání nesprávné interpretaci a nekontrolovanému rozšiřování

Typické byznysové flow

  • projekt začíná reálným problémem nebo potřebou
  • doména je popsána tak, aby byl její účel a význam jasný
  • cíl projektu je interpretován v rámci hranic této domény
  • analýza, implementace, testování a dokumentace jsou následně vytvářeny v souladu s tímto kontextem
  • výstupy jsou hodnoceny nejen podle technické správnosti, ale i podle toho, zda dávají smysl v rámci domény
  • výsledkem je projekt, který zůstává srozumitelný, relevantní a dlouhodobě udržitelný

Byznysově relevantní stavy

Doména nedefinovaná

  • projekt existuje, ale jeho doménový význam není jasný
  • z byznysového pohledu to vytváří riziko nekonzistence a driftu scope

Doména definovaná

  • projekt má explicitně definovaný doménový kontext
  • z byznysového pohledu to vytváří sdílené porozumění a stabilní směr

Doména špatně interpretovaná

  • doména existuje, ale role nebo artefakty ji interpretují rozdílně
  • z byznysového pohledu to vede ke zmatku, chybným předpokladům a slabému sladění

Doména respektovaná

  • rozhodnutí a výstupy zůstávají v souladu s definovanou doménou
  • z byznysového pohledu projekt zůstává konzistentní a smysluplný

Doména porušená

  • práce přesahuje nebo jde proti definovaným hranicím domény
  • z byznysového pohledu projekt ztrácí fokus a spolehlivost

Interpretace výsledků

  • VALID → projekt nebo artefakt zůstává v souladu s definovanou doménou, účelem a hranicemi
  • INVALID → projekt nebo artefakt je v rozporu s doménou, překračuje její scope nebo ji nesprávně interpretuje
  • UNKNOWN → dostupné informace nestačí k určení souladu s doménou
  • interpretace vždy závisí na účelu, hranicích a definovaném významu
  • interpretace nenahrazuje analýzu ani kontrolu implementace, ale poskytuje kontext pro obě

Poznámky k terminologii

  • preferuj kontext domény před vágním popisem projektu
  • nepoužívej doménu zaměnitelně s implementačním scopem
  • nepoužívej cíl zaměnitelně s technickým řešením
  • nepoužívej artefakt zaměnitelně s požadavkem
  • nepovažuj kontext domény za backlog, specifikaci nebo návrhový dokument
  • udržuj terminologii konzistentní napříč dokumenty a rolemi

Hranice a non-goals

  • tento kontext nedefinuje strukturu repozitáře
  • nedefinuje konvence pojmenování souborů ani složek
  • nedefinuje návrh implementace
  • nedefinuje testovací strategii
  • nedefinuje release proces
  • nedefinuje dočasné úkoly, opravy ani priority
  • není to analýza, specifikace ani návrhový dokument
  • není to zdroj nových požadavků

Použití v pipeline

  • čtou jej všechny role, které potřebují sdílené porozumění doméně
  • používá se pro sjednocení terminologie a interpretace
  • pomáhá udržet jasný rozdíl mezi významem domény a technickou realizací
  • je informativní
  • není direktivní
  • nesmí být používán jako náhrada za analytické, specifikační nebo implementační dokumenty

Guardrail pro interpretaci

  • domain_context.md nesmí být používán jako zdroj nových požadavků
  • žádná role nesmí použít domain_context.md k rozšíření scope nad rámec explicitně schváleného zadání
  • domain_context.md slouží pouze k:
    • sjednocení terminologie
    • vysvětlení domény
    • zachování konzistentní interpretace
  • pokud jiný artefakt odporuje domain_context.md z hlediska významu, musí být konflikt explicitně vyřešen, nikoliv ignorován

Striktní vynucení scope

  • kontext domény je omezen na vysvětlení domény a její interpretace
  • tento scope nesmí být rozšiřován o implementaci, analýzu ani instrukce k dodání
  • žádná role nesmí:
    • odvozovat nové feature přímo z domain_context.md
    • považovat domain_context.md za specifikaci
    • považovat domain_context.md za návrh řešení
    • považovat domain_context.md za testovací plán
  • jakýkoliv pokus použít domain_context.md mimo tento účel musí být považován za porušení scope