Archyno
PracticePrax modelovania

Ako udržať model aktuálny

Modely nehnijú preto, že sú ľudia leniví. Hnijú preto, že v skutočnom priebehu práce nič nikoho nedonúti otvoriť ich.

6 min čítaniaModelling practice4 z 4

Krátka odpoveď

  • Modely hnijú preto, že v dodávacom procese nič nikoho nenúti otvoriť ich. Kód má testy a revíziu; stránka na wiki nemá ani jedno.
  • Pripojte model ku kroku, ktorý sa aj tak deje: diagram v repozitári sa objaví v diffe pull requestu.
  • Čokoľvek, čo stojí na pravidelnej revízii, ktorú nikto nenaplánoval, neprežije prvý rušný kvartál.
  • Zastaraný diagram radšej zmažte, než by ste ho nechali. Chýbajúci stojí desať minút vypytovania; sebavedomo nesprávny stojí deň a zlé rozhodnutie.

01Prečo modely hnijú#

Obvyklé vysvetlenie je disciplína a je nesprávne. Tí istí inžinieri, ktorí nechajú model dva roky zastarávať, majú testovaciu sadu každý deň zelenú, a rozdiel nie je v tom, ako veľmi im na tom záleží - je v tom, že padnutý test zastaví pipeline a nesprávny diagram nezastaví nič.

Kód je obklopený mašinériou, ktorá naň v okamihu zmeny upúta pozornosť: kompilátor, beh testov, recenzent, ktorý ho musí schváliť. Model na wiki nemá nič z toho. Nič na ceste od tiketu do produkcie nikoho nenúti otvoriť tú stránku, takže nič nikdy nevynesie nesúlad na povrch. Model sa nezhoršuje - systém sa pohne a model zostane presne tam, kde bol.

02Pripojte ho k niečomu, čo sa aj tak deje#

Každé usporiadanie, ktoré funguje, má rovnaký tvar: model je umiestnený tam, kde doňho narazí existujúci krok.

Dajte pohľad do repozitára. Diagram commitnutý ako Mermaid vedľa kódu sa objaví v diffe, keď sa jeho súbor zmení, a prečíta ho ten, kto zmenu reviduje. Je to jediný mechanizmus na tomto zozname, ktorého udržiavanie nestojí nič, pretože revízia sa už aj tak diala.

Odkazujte na pohľady zo záznamov rozhodnutí. Krátky záznam architektonického rozhodnutia, ktorý odkazuje na pohľad zobrazujúci štruktúru, o ktorej rozhodol, znamená, že sa pohľad otvorí vždy, keď sa niekto spýta, prečo je štruktúra taká - a to je presne vtedy, keď by na jeho nesprávnosti záležalo.

Urobte z modelu zdroj niečoho, čo ľudia potrebujú. Ak pohľad na nasadenie generuje diagram v runbooku alebo doménový model generuje glosár, v ktorom hľadá podpora, potom si toho niekto všimne v priebehu dní a nie štvrťrokov.

Siahnite po ňom, keď

  • Pohľad žije v repozitári a mení sa v tom istom pull requeste ako kód
  • Záznam rozhodnutia odkazuje na pohľad, ktorý ukazuje, o čom rozhodol
  • Model generuje niečo, na čo sa tím už spolieha
  • Každý pohľad má jedného menovaného vlastníka a zoznam pohľadov je dosť krátky na to, aby sa vlastníci dali vymenovať

Siahnite po niečom inom, keď

  • Štvrťročná revízia, ktorú nikto nenaplánoval
  • Wiki stránka, ktorú okrem autora nikto nikdy neotvoril
  • Vyexportované PNG ležiace vedľa zdroja, z ktorého vzniklo
  • Akékoľvek usporiadanie, ktoré vyžaduje, aby si niekto spomenul

03Zmenšite ho a zvyšok zmažte#

Druhou polovicou odpovede je, že väčšina modelov je príliš veľká na udržiavanie, a to nespraví žiadny proces. Ak by údržba modelu zabrala deň mesačne a tím má hodinu, model zastará bez ohľadu na to, ako je revízia usporiadaná - takže poctivý krok je orezať ho na tú hodinu.

Je to tá istá skúška ako pri vymedzovaní rozsahu, len uplatnená neskôr: pohľady, ktoré nedokážu pomenovať rozhodnutie, sú tie na zahodenie, a ich zahodenie nie je strata, pretože sa aj tak nečítali. Čo zostane, je dosť malé na to, aby si niekto všimol, keď je to nesprávne.

Potom zvyšok naozaj zmažte. Toto je krok, ktorý ľudia neurobia, a zároveň ten s najjasnejšou aritmetikou. Chýbajúci diagram stojí čitateľa desať minút vypytovania sa; sebavedomo nesprávny diagram ho stojí deň a pri troche smoly aj rozhodnutie postavené naň. Dokumentácia, ktorú nebudete udržiavať, nie je neutrálna, je to pasca s logom vášho tímu.

Po jednom riadku na každé

  1. 01Modely hnijú preto, že nič v toku dodávky nikoho nenúti otvoriť ich.
  2. 02Pripojte každý pohľad ku kroku, ktorý sa aj tak deje: k diffu, k záznamu rozhodnutia, k generovanému artefaktu.
  3. 03Každý proces, ktorý stojí na tom, že si niekto spomenie, už zlyhal.
  4. 04Orežte model na rozpočet údržby, ktorý tím naozaj má, nie na ten, ktorý by mať mal.
  5. 05Zvyšok zmažte a to, čo si necháte, datujte. Nesprávny diagram stojí viac než chýbajúci.

04Časté otázky#

Prečo dokumentácia architektúry zastaráva?

Pretože v dodávacom procese nič nikoho nenúti ju otvoriť. Kód má testy a revíziu, ktoré naň pri zmene upútajú pozornosť; model na wiki nemá ekvivalent, takže sa ticho vzďaľuje a nikto to nezistí, kým mu neuverí a nemýli sa.

Ako udržať model aktuálny?

Pripojte ho ku kroku, ktorý sa aj tak deje. Diagram v repozitári sa objaví v diffe pull requestu; pohľad, na ktorý odkazuje záznam rozhodnutia, sa otvorí, keď sa rozhodnutie prehodnocuje. Čokoľvek, čo stojí na pravidelnej revízii, ktorú nikto nenaplánoval, neprežije prvý rušný kvartál.

Je lepšie zastaraný diagram zmazať, alebo nechať?

Zmazať. Chýbajúci diagram stojí čitateľa desať minút vypytovania sa; sebavedomo nesprávny ho stojí deň a zlé rozhodnutie. Čokoľvek, čo nebudete udržiavať, je záväzok a nie aktívum, a odstránenie je najlacnejšie zlepšenie, aké je k dispozícii.

V tejto sérii

Súvisiace články

Všetky články