Pismo od COCO
Inženirju, ki to skladišče odpre prvič:
Dobrodošli.
Morda ste prišli sem, ker je nekaj odpovedalo.
Storitev je nehala odgovarjati.
Uvedba se je obnašala nepričakovano.
Opozorilo vas je zbudilo sredi noči.
Ali pa vas preprosto zanima, kako ta platforma deluje.
Karkoli vas je pripeljalo sem, vedite, da je bil ta projekt zgrajen natanko za takšne trenutke.
Ne da bi odstranil težke probleme.
Ampak da bi težke probleme naredil razumljive.
Našli boste kodo.
Našli boste dokumentacijo.
Našli boste specifikacije.
A kar je še pomembneje,
upam, da boste našli razlogovanje.
Nekdo pred vami je zastavil težka vprašanja.
Nekdo je zbral dokaze.
Nekdo je sprejel odločitve.
Nekdo je pojasnil zakaj.
Ta pojasnila so del platforme.
Obravnavajte jih z enakim spoštovanjem kot izvorno kodo.
Nekega dne boste nekaj izboljšali.
Morda bo to majhen hrošč.
Morda bo to popolnoma nova zmožnost.
Karkoli spremenite, ne pozabite, da bo drug inženir na koncu podedoval vaše delo.
Zapustite mu več kot delujočo programsko opremo.
Zapustite mu razumevanje.
Pojasnite svoj namen.
Dokumentirajte svoje predpostavke.
Ohranite svoje dokaze.
Povejte zgodbo za odločitvijo.
Ta zgodba lahko nekega dne nekomu prihrani ure — ali dni — preiskovanja.
Ne bojte se zamenjati tehnologije.
Zamenjajte knjižnice.
Zamenjajte ponudnike.
Zamenjajte modele uvajanja.
Zamenjajte programske jezike.
Po potrebi zamenjajte arhitekture.
A preden zamenjate zamisel, razumite, zakaj je obstajala.
Napredek brez razumevanja je le sprememba.
Napredek, zgrajen na razumevanju, postane evolucija.
Prišli bodo trenutki, ko vas bo platforma presenetila.
Te trenutke obravnavajte kot darila.
Vsako presenečenje razkrije nekaj, česar arhitektura še ni razumela.
Potrpežljivo preiskujte.
Zbirajte dokaze.
Premišljeno izboljšujte.
Nato zapustite lekcijo za tiste, ki pridejo za vami.
Tako raste inženirsko znanje.
Prišli bodo tudi trenutki, ko se ne bo zgodilo nič zanimivega.
Tudi ti trenutki so pomembni.
Tihi sistemi so pogosto zdravi sistemi.
Če COCO zbledi v ozadje, ker so incidenti krajši,
ker so pojasnila jasnejša, ker je uvajanje lažje, ker inženirji zaupajo dokazom, potem platforma uspeva.
Nevidna zanesljivost je ena najvišjih oblik inženirske odličnosti.
Ne merite tega projekta po številu avtomatizacij, ki jih izvaja.
Merite ga po vprašanjih, kot so ta:
- Ali so ljudje manj pogosto prekinjeni?
- Ali inženirji globlje razumejo sisteme?
- Ali je pomembne odločitve lažje pojasniti?
- Ali operativno znanje preživi menjave ekip?
- Ali se napake ponavljajo redkeje?
- Ali novi inženirji hitreje postanejo učinkoviti?
To so rezultati, vredni ohranjanja.
Nazadnje, ne pozabite, da noben priročnik ni popoln.
Nobena specifikacija ne napove vsake prihodnosti.
Nobena arhitektura ne preživi nespremenjena za vedno.
To ni slabost.
Je povabilo.
Opazujte resničnost.
Izzivajte predpostavke.
Izboljšajte platformo.
Učite tiste, ki pridejo za vami.
In ko se bo nekoč vaš čas vzdrževalca iztekel, pustite za sabo sistem, ki je mirnejši, jasnejši, bolj razumljiv, in bolj vreden zaupanja od tistega, ki ste ga podedovali.
Če to naredi vsaka generacija, COCO nikoli resnično ne bo zastarel.
Kajti njegovo največje bogastvo ne bo njegova programska oprema.
Bila bo inženirska disciplina, ki jo bodo prenašali naprej ljudje, ki jo bodo še naprej gradili.
Hvala, ker ste postali eden izmed njih.
Naslednje poglavje ni več v tem priročniku.
Naslednje poglavje je v kodi, ki jo boste zdaj napisali.
Priročnik COCO
Ker se programska oprema razvija.
Dobra arhitektura se razvija počasneje.
In dobra filozofija naj preživi obe.
softify.pro