Archyno
PracticePraxe modelování

Kolik ze systému modelovat

Jediná otázka, která to rozhodne, je, jaké rozhodnutí má model podepřít - a většina toho, co lidé modelují, nepodepírá nic.

6 min čteníModelling practice2 z 4

Krátká odpověď

  • Modelujte tolik, kolik podepře rozhodnutí, které někdo opravdu udělá, a nic víc.
  • U každého pohledu pojmenujte rozhodnutí, které podepírá, a člověka, který ho dělá. Pokud neumíte pojmenovat obojí, nikdo ten pohled číst nebude.
  • Kompletní model systému, který nikdo nepostavil, je sada sebevědomých dohadů, a jeho hlavním účinkem je, že se těch dohadů hůř vzdáte.
  • Model je příliš podrobný ve chvíli, kdy změna kódu vyžaduje změnu modelu a nikdo ji neudělá. Za tím bodem se vzdaluje a dál vypadá důvěryhodně.

01Zkouška: pojmenujte rozhodnutí#

Než nakreslíte jakýkoli pohled, dokončete tuto větu: „Tento pohled existuje proto, aby [osoba] mohla rozhodnout [věc].“ Pokud nedokážete doplnit obě mezery, nekreslete ho.

Zkouška funguje proto, že je vyvratitelná, a to žádná jiná rada na toto téma není. „Modelujte důležité části“ nemůže prohrát spor; „tento diagram tříd existuje proto, aby platformový tým mohl rozhodnout, jestli výpočet daně patří fakturaci“ buď pravda je, nebo není, a jmenované osoby se lze zeptat.

Poctivě uplatněná odstraní většinu toho, co se modeluje. Diagram současného systému nakreslený proto, že by ho někdo měl zdokumentovat, neinformuje o ničem. Pohled zobrazující každou službu v portfoliu neinformuje o ničem, protože žádné rozhodnutí se netýká všech naráz. Přežije malý počet pohledů, každý mířený na spor, který někdo právě vede.

02Tři způsoby, jak nevymezený model selže#

Stane se druhou implementací. Každá třída, každé pole, každé volání - model v takové věrnosti je kopií kódu napsanou v notaci, a špatně je vždy ta kopie. Tohle je selhání, které dalo modelování jeho pověst, a pochází výhradně z toho, že se nikdo nezeptal, k čemu model je.

Stane se obrázkem organizačního schématu. Nevymezené modely se posouvají k tomu, aby zobrazovaly systém každého týmu se stejnou váhou, protože to je politicky nejsnazší uspořádání. Výsledkem je diagram, na kterém jsou dva komponenty, které spolu opravdu komunikují, stejně velké jako dvacet, které ne, a nikdo v něm nenajde otázku.

Stane se neudržitelným tím nejobyčejnějším způsobem. Ne dramaticky - prostě tak, že obsahuje víc detailů, než má tým chuť aktualizovat, takže pár prvků zastará, pak dalších pár, a do dvou čtvrtletí je model věcí, kterou si lidé raději ověřují proti kódu, než aby jí věřili.

Sáhněte po něm, když

  • Rozhodnutí je opravdu otevřené a dva lidé se na něm neshodnou
  • Změna protne několik týmů a někdo musí vidět švy
  • Budoucí čtenář bude potřebovat vědět, proč existuje neintuitivní struktura
  • Nováček potřebuje tvar domény, ne tvar kódu

Sáhněte po něčem jiném, když

  • Dokumentování systému, který se nikdo nechystá měnit
  • Zaznamenávání rozhodnutí, které už padlo a je z kódu stejně zřejmé
  • Modelování proto, že šablona nebo proces žádá diagram
  • Jakákoli úroveň detailu, kterou tým po skončení projektu nebude udržovat

03Práce ve správné velikosti#

Jeden model, několik malých pohledů. Rozsah je vlastností pohledu, ne modelu - model může obsahovat všechno, co do něj kdokoli zadal, a každý pohled ukazuje tu hrstku prvků, kterou potřebuje jedno rozhodnutí. K tomu slouží mechanismus hledisek v ArchiMate a stejně dobře platí i pro UML.

Modelujte jednu úroveň pod rozhodnutím, ne dvě. Pokud je spor o tom, která služba vlastní jistou odpovědnost, modelujte služby a jejich závislosti. Nemodelujte třídy uvnitř nich; ten detail nemůže změnit odpověď a je to právě ten detail, který shnije.

Smažte pohledy, které splnily svůj účel. Pohled nakreslený pro migraci, která proběhla, je hotový, a ponechat si ho znamená, že budoucí čtenář najde sebevědomý diagram architektury, která už neexistuje. Mazání dokumentace působí špatně a obvykle je správné.

Po jednom řádku na každé

  1. 01Každý pohled musí pojmenovat osobu a rozhodnutí. Pokud to nedokážete, nekreslete ho.
  2. 02Úplný model nepostaveného systému je sebevědomé hádání a ty odhady zabetonuje.
  3. 03Modelujte jednu úroveň pod rozhodnutím. Detail, který nemůže změnit odpověď, shnije.
  4. 04Rozsah patří pohledu, ne modelu - jeden model, mnoho malých pohledů.
  5. 05Smažte pohled, jakmile jeho rozhodnutí padlo. Zastaralý diagram je horší než žádný.

Dále v této sérii: konvence pojmenování a poté udržování modelu aktuálního.

04Časté dotazy#

Kolik ze systému mám modelovat?

Tolik, kolik podepře rozhodnutí, které někdo opravdu udělá. U každého pohledu, který se chystáte nakreslit, pojmenujte rozhodnutí a člověka, který ho dělá; pokud neumíte pojmenovat obojí, je to dokumentace systému a ne nástroj k jeho změně, a nikdo ji číst nebude.

Mám namodelovat celý systém před začátkem?

Ne. Kompletní model systému, který ještě nikdo nepostavil, je sada dohadů nakreslených sebevědomě a jeho hlavním účinkem je, že se těch dohadů hůř vzdáte. Namodelujte tu část, kde je rozhodnutí opravdu otevřené, stavějte, a další část namodelujte, až přijde další rozhodnutí.

Jak poznám, že je model příliš podrobný?

Když změna v kódu vyžaduje změnu v modelu a nikdo ji neudělá. To je bod, v němž má model víc detailu, než tým dokáže udržovat, a za ním se každý diagram vzdaluje systému a zároveň dál vypadá důvěryhodně.

V této sérii

Související články

Všechny články