Archyno
PracticePraxe modelování

Jak udržet model aktuální

Modely nehnijí proto, že jsou lidé líní. Hnijí proto, že ve skutečném průběhu práce nic nikoho nedonutí je otevřít.

6 min čteníModelling practice4 z 4

Krátká odpověď

  • Modely hnijí proto, že v dodávacím procesu nic nikoho nenutí je otevřít. Kód má testy a revizi; stránka na wiki nemá ani jedno.
  • Připojte model ke kroku, který se stejně děje: diagram v repozitáři se objeví v diffu pull requestu.
  • Cokoli, co stojí na pravidelné revizi, kterou nikdo nenaplánoval, nepřežije první rušné čtvrtletí.
  • Zastaralý diagram raději smažte, než abyste ho nechali. Chybějící stojí deset minut vyptávání; sebevědomě nesprávný stojí den a špatné rozhodnutí.

01Proč modely hnijí#

Obvyklé vysvětlení je disciplína a je nesprávné. Titíž inženýři, kteří nechají model dva roky zastarávat, mají testovací sadu každý den zelenou, a rozdíl není v tom, jak moc jim na tom záleží - je v tom, že spadlý test zastaví pipeline a špatný diagram nezastaví nic.

Kód je obklopen mašinerií, která na něj v okamžiku změny upoutá pozornost: kompilátor, běh testů, recenzent, který ho musí schválit. Model na wiki nemá nic z toho. Nic na cestě od tiketu do produkce nikoho nenutí tu stránku otevřít, takže nic nikdy nevynese nesoulad na povrch. Model se nezhoršuje - systém se pohne a model zůstane přesně tam, kde byl.

02Připojte ho k něčemu, co se stejně děje#

Každé uspořádání, které funguje, má stejný tvar: model je umístěn tam, kde do něj narazí existující krok.

Dejte pohled do repozitáře. Diagram commitnutý jako Mermaid vedle kódu se objeví v diffu, když se jeho soubor změní, a přečte ho ten, kdo změnu reviduje. Je to jediný mechanismus na tomto seznamu, jehož udržování nestojí nic, protože revize se už stejně děla.

Odkazujte na pohledy ze záznamů rozhodnutí. Krátký záznam architektonického rozhodnutí, který odkazuje na pohled zobrazující strukturu, o níž rozhodl, znamená, že se pohled otevře pokaždé, když se někdo zeptá, proč je struktura taková - a to je přesně tehdy, kdy by na jeho nesprávnosti záleželo.

Udělejte z modelu zdroj něčeho, co lidé potřebují. Pokud pohled na nasazení generuje diagram v runbooku nebo doménový model generuje glosář, ve kterém hledá podpora, pak si toho někdo všimne během dnů a ne čtvrtletí.

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

  • Pohled žije v repozitáři a mění se ve stejném pull requestu jako kód
  • Záznam rozhodnutí odkazuje na pohled, který ukazuje, o čem rozhodl
  • Model generuje něco, na co se tým už spoléhá
  • Každý pohled má jednoho jmenovaného vlastníka a seznam pohledů je dost krátký na to, aby se vlastníci dali vyjmenovat

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

  • Čtvrtletní revize, kterou nikdo nenaplánoval
  • Wiki stránka, kterou kromě autora nikdy nikdo neotevřel
  • Vyexportované PNG ležící vedle zdroje, ze kterého vzniklo
  • Jakékoli uspořádání, které vyžaduje, aby si někdo vzpomněl

03Zmenšete ho a zbytek smažte#

Druhou polovinou odpovědi je, že většina modelů je příliš velká na udržování, a to nespraví žádný proces. Kdyby údržba modelu zabrala den měsíčně a tým má hodinu, model zastará bez ohledu na to, jak je revize uspořádána - takže poctivý krok je oříznout ho na tu hodinu.

Je to stejná zkouška jako při vymezování rozsahu, jen uplatněná později: pohledy, které nedokážou pojmenovat rozhodnutí, jsou ty k zahození, a jejich zahození není ztráta, protože se stejně nečetly. Co zbude, je dost malé na to, aby si někdo všiml, když je to špatně.

Pak zbytek opravdu smažte. Tohle je krok, který lidé neudělají, a zároveň ten s nejjasnější aritmetikou. Chybějící diagram stojí čtenáře deset minut vyptávání; sebevědomě nesprávný diagram ho stojí den a při troše smůly i rozhodnutí na něm postavené. Dokumentace, kterou nebudete udržovat, není neutrální, je to past s logem vašeho týmu.

Po jednom řádku na každé

  1. 01Modely hnijí proto, že nic v toku dodávky nikoho nenutí je otevřít.
  2. 02Připojte každý pohled ke kroku, který se stejně děje: k diffu, k záznamu rozhodnutí, ke generovanému artefaktu.
  3. 03Každý proces, který stojí na tom, že si někdo vzpomene, už selhal.
  4. 04Ořízněte model na rozpočet údržby, který tým opravdu má, ne na ten, který by mít měl.
  5. 05Zbytek smažte a to, co si necháte, datujte. Nesprávný diagram stojí víc než chybějící.

04Časté dotazy#

Proč dokumentace architektury zastarává?

Protože v dodávacím procesu nic nikoho nenutí ji otevřít. Kód má testy a revizi, které na něj při změně upoutají pozornost; model na wiki ekvivalent nemá, takže se tiše vzdaluje a nikdo to nezjistí, dokud mu neuvěří a nemýlí se.

Jak udržet model aktuální?

Připojte ho ke kroku, který se stejně děje. Diagram v repozitáři se objeví v diffu pull requestu; pohled, na který odkazuje záznam rozhodnutí, se otevře, když se rozhodnutí přehodnocuje. Cokoli, co stojí na pravidelné revizi, kterou nikdo nenaplánoval, nepřežije první rušné čtvrtletí.

Je lepší zastaralý diagram smazat, nebo nechat?

Smazat. Chybějící diagram stojí čtenáře deset minut vyptávání; sebevědomě nesprávný ho stojí den a špatné rozhodnutí. Cokoli, co nebudete udržovat, je závazek a ne aktivum, a odstranění je nejlevnější zlepšení, které je k dispozici.

V této sérii

Související články

Všechny články