Ako staviame

Rýchlosť je tu dôsledkom kontrolných bodov, nie cestou okolo nich.

Rozumná námietka voči malému tímu, ktorý dodá štyri produkty, znie, že sa niečo muselo obísť. Táto stránka je odpoveďou: čo stroj robí, čo mu nie je dovolené, a čím musí zmena prejsť, kým sa dostane do produkcie.

Všetko nižšie beží na našej vlastnej práci. Nie je to produkt, ktorý predávame, ani ukážka.

Platforma

Súkromný marketplace orchestrátorov, subagentov, zručností a hookov.

Stavebný motor je verzionovaný interný plugin marketplace, nainštalovaný v každom repozitári, v ktorom pracujeme. Šesť pluginov pokrýva vývoj, prevádzku, dokumentáciu, obchod a nástroje, ktoré stavajú ďalšie nástroje. Samotný vývojový plugin nesie 24 subagentov a 52 zručností.

Počty zodpovedajú nainštalovanému marketplace a menia sa, ako platforma rastie.

Tri vrstvy, zámerne

Úlohové orchestrátory

Jeden vstupný bod na každý druh práce: implementovať zmenu, diagnostikovať chybu, spustiť revíziu, aktualizovať závislosti. Orchestrátor prácu najprv ohodnotí a nasadí len to, čo jej rozsah odôvodňuje.

Zručnosti

Stredná vrstva rutín, ktoré orchestrátory opakovane volajú: rozhodnúť, ktoré verifikátory zmena potrebuje, zvoliť úroveň testovania, rozdeliť preklad medzi jazyky. Napísané raz, volané odvšadiaľ.

Listové agenty

Úzki pracovníci s úzkymi nástrojmi. Inžinier, ktorý píše jednu vrstvu. Verifikátor, ktorý hlási len prešlo alebo neprešlo. Audítor, ktorý číta a nikdy neupravuje. List, ktorý vie len čítať, nemôže nič pokaziť.

Automatizované a schvaľované človekom

Hranica medzi tým, čo beží bez dozoru, a tým, čo počká na človeka.

Toto delenie nie je vecou vkusu. Čo sa dá znova spustiť a mechanicky overiť, je automatizované. Čo pri zlyhaní stojí veľa, je nezvratné alebo je to otázka úsudku, sa zastaví a počká.

Ako jedna zmena prejde platformou

/dev:make"pridať sledovanie šarží"
  1. Prieskum

    • codebase-researcherzmapuje vrstvy pred písanímhotovo
  2. Písanie, paralelne a v sandboxe

    • backend-engineerslužba a endpointhotovo
    • frontend-engineerstránka a komponenthotovo
    • prisma-migratorschéma a k nej migráciahotovo
  3. Overenie

    • backend-verifierčistý štart, žiadne chýbajúce provideryPASS
    • frontend-verifiertypová kontrola, lint, buildPASS
    • e2e-testerdotknuté toky v reálnom prehliadačiPASS
  4. Merge

    • mergečaká na človekadrží

Názvy agentov sú tie z platformy, na ktorej vznikol aj tento web.

Beží bez dozoru

  • Nájsť kód: paralelní čitatelia zmapujú relevantné vrstvy skôr, než sa čokoľvek napíše.
  • Napísať zmenu, jeden špecialista na vrstvu, paralelne tam, kde sa vrstvy nekrížia.
  • Typová kontrola, lint a build; naštartovanie backendu a sledovanie chýb pri štarte.
  • Spustenie testov a prevedenie bežiacej aplikácie tokmi, ktorých sa zmena dotkla.
  • Audit prístupnosti, responzivity a výkonu stránky voči meraným limitom.

Zastaví sa na človeka

  • Každý merge. Žiadny agent sám nepushuje do zdieľanej vetvy.
  • Zmeny schémy a dátové migrácie, ktoré sa recenzujú pred vygenerovaním, nie po ňom.
  • Všetko, čo sa dotýka produkcie: nasadenia, produkčné dáta, force push.
  • Rozsah. Keď sa úloha ukáže väčšia alebo rizikovejšia, než bola odhadnutá, pipeline sa zastaví a spýta.
  • Konečné slovo pri každom náleze revízie vrátane toho, či sa označené riziko akceptuje.

Latka kvality

Čím musí zmena prejsť.

Overovanie má tvrdé dno

Zmena kódu sa nikdy nehlási ako hotová bez build a lint kontrol pre vrstvy, ktorých sa dotkla. Backendové zmeny musia čisto naštartovať. Toto dno je zapísané v doktríne orchestrácie, takže si ho jednotlivý beh nemôže odpustiť.

Kontroly sa odvodzujú z dôkazu, nie zo zvyku

Ktoré verifikátory bežia, sa odvodí od skutočného zoznamu zmenených súborov a ťažšiu úroveň spúšťajú cesty citlivé na build, nie odhad. Práve to drží dôkladnosť dosť lacnú na to, aby bola nespochybniteľná.

Nálezy musia prežiť skeptika

Každý nález revízie dostane čerstvý agent, ktorého jedinou úlohou je dokázať, že nález je nesprávny. Čo sa vyvrátiť nedá, prežije, zvyšok padne skôr, než si to niekto prečíta. To je rozdiel medzi revíziou a hlučným skenom.

Zlyhania sa najprv klasifikujú, až potom opravujú

Neúspešná kontrola sa najprv zaradí ako chyba v kóde alebo problém prostredia. Problémy prostredia nikdy nevstupujú do opravnej slučky, nahlásia sa aj s postupom nápravy a beh sa zastaví. Počet opravných pokusov je obmedzený a opakovaná príčina sa eskaluje, nie opakuje.

Testy sa píšu tak, aby zostali

Regresné testy vznikajú ako commitnuté špecifikácie v testovacom runneri projektu, nie ako jednorazové kontroly v rámci relácie. Čo dokázalo opravu, zostáva v repozitári a dokazuje ju ďalej.

Nič sa nezužuje potichu

Keď je pokrytie obmedzené vzorkovaním, stropom alebo vynechanou dimenziou, nahlási sa to. Čiastočný výsledok sa nikdy nečíta ako úplný.

Prečo sa termíny skracujú

Štandardy sa neposunuli. Posunula sa cena ich splnenia.

Každá z týchto kontrol existovala aj v klasickom tíme. Zmenilo sa to, že ich spustenie prestalo byť otázkou kalendára. Revízie v piatich dimenziách bežia naraz namiesto čakania na voľno recenzenta. Testovací prechod cez tucet stránok stojí jedno nasadenie, nie popoludnie. Práca, ktorá sa kedysi dávkovala, lebo bola drahá, dnes beží pri každej zmene, lebo drahá nie je.

V tom je celý trik a preto rýchlosť nejde z rozpočtu na kvalitu. Keď je overovanie lacné, rozumné množstvo overovania rastie, nie klesá.

Pozrieť ten istý postup na reálnej stavbe

Dve metódy, dve otázky

Táto stránka je náš dodávkový postup. Celofiremný model je publikovaný samostatne.

To, čo ste práve čítali, je spôsob, akým staviame vlastné produkty: platforma, deliaca čiara medzi tým, čo beží bez dozoru, a tým, čo čaká na človeka, a latka, cez ktorú musí prejsť každá zmena. Rozbehnúť takto celú organizáciu, rolu po role, je iný problém s inou odpoveďou. Ten publikuje augmented.club v plnom rozsahu a je to dokument, ktorý si prečítajte, ak je otázkou, ako by to vyzeralo naprieč vašou firmou, a nie ako staviame my.

Prečítať publikovanú metódu

Tá istá metóda, vyučovaná.

Inžinierske organizácie, ktoré chcú pracovať takto, sa to učia cez augmented.club, našu vzdelávaciu značku.

Pozrieť programy