Et brev fra COCO
Til ingeniøren som åpner dette repositoriet for første gang:
Velkommen.
Du har kanskje kommet hit fordi noe feilet.
En tjeneste sluttet å svare.
En utrulling oppførte seg uventet.
Et varsel vekket deg midt på natten.
Eller kanskje du bare er nysgjerrig på hvordan denne plattformen fungerer.
Uansett hva som førte deg hit, vit at dette prosjektet ble bygget for nettopp slike øyeblikk.
Ikke for å fjerne vanskelige problemer.
Men for å gjøre vanskelige problemer forståelige.
Du vil finne kode.
Du vil finne dokumentasjon.
Du vil finne spesifikasjoner.
Men enda viktigere,
håper jeg du vil finne resonnement.
Noen før deg stilte vanskelige spørsmål.
Noen samlet bevis.
Noen tok beslutninger.
Noen forklarte hvorfor.
Disse forklaringene er en del av plattformen.
Behandle dem med samme respekt som kildekoden.
En dag vil du forbedre noe.
Kanskje er det en liten bug.
Kanskje er det en helt ny funksjon.
Uansett hva du endrer, husk at en annen ingeniør til slutt vil arve arbeidet ditt.
Etterlat dem mer enn fungerende programvare.
Etterlat dem forståelse.
Forklar din hensikt.
Dokumenter dine antakelser.
Bevar bevisene dine.
Fortell historien bak beslutningen.
Den historien kan en dag spare noen for timer — eller dager — med undersøkelser.
Ikke vær redd for å erstatte teknologi.
Erstatt biblioteker.
Erstatt leverandører.
Erstatt utrullingsmodeller.
Erstatt programmeringsspråk.
Erstatt arkitekturer om nødvendig.
Men før du erstatter en idé, forstå hvorfor den fantes.
Fremgang uten forståelse er bare endring.
Fremgang bygget på forståelse blir evolusjon.
Det vil komme øyeblikk der plattformen overrasker deg.
Behandle de øyeblikkene som gaver.
Hver overraskelse avslører noe arkitekturen ennå ikke forsto.
Undersøk tålmodig.
Samle bevis.
Forbedre gjennomtenkt.
Etterlat deretter lærdommen til dem som følger.
Slik vokser teknisk kunnskap.
Det vil også komme øyeblikk der ingenting interessant skjer.
Også de øyeblikkene betyr noe.
Stille systemer er ofte friske systemer.
Hvis COCO forsvinner inn i bakgrunnen fordi hendelser blir kortere,
fordi forklaringer blir klarere, fordi onboarding blir enklere, fordi ingeniører stoler på bevisene, da lykkes plattformen.
Usynlig pålitelighet er en av de høyeste formene for teknisk fortreffelighet.
Ikke mål dette prosjektet etter antall automatiseringer det utfører.
Mål det etter spørsmål som disse:
- Blir folk avbrutt sjeldnere?
- Forstår ingeniører systemer dypere?
- Er viktige beslutninger lettere å forklare?
- Overlever operativ kunnskap teamendringer?
- Gjentas feil sjeldnere?
- Blir nye ingeniører produktive raskere?
Det er resultatene som er verdt å bevare.
Husk til slutt at ingen håndbok er komplett.
Ingen spesifikasjon forutsier hver fremtid.
Ingen arkitektur overlever uendret for alltid.
Det er ingen svakhet.
Det er en invitasjon.
Observer virkeligheten.
Utfordre antakelser.
Forbedre plattformen.
Lær opp de som kommer etter deg.
Og når din egen tid som forvalter til slutt tar slutt, etterlat et system som er roligere, klarere, mer forståelig og mer pålitelig enn det du arvet.
Hvis hver generasjon gjør det, vil COCO aldri virkelig bli utdatert.
For dens største aktivum vil ikke være dens programvare.
Det vil være den tekniske disiplinen som føres videre av menneskene som fortsetter å bygge den.
Takk for at du ble en av dem.
Neste kapittel er ikke lenger i denne håndboken.
Neste kapittel er i koden du er i ferd med å skrive.
COCO-håndboken
For programvare utvikler seg.
En god arkitektur utvikler seg langsommere.
Og en god filosofi bør overleve begge.
softify.pro