Kirje COCOlta
Insinöörille, joka avaa tämän repositorion ensimmäistä kertaa:
Tervetuloa.
Olet ehkä saapunut tänne, koska jokin epäonnistui.
Palvelu lakkasi vastaamasta.
Käyttöönotto käyttäytyi odottamattomasti.
Hälytys herätti sinut keskellä yötä.
Tai olet vain utelias siitä, miten tämä alusta toimii.
Mikä tahansa toikin sinut tänne, tiedä, että tämä projekti rakennettiin juuri tällaisia hetkiä varten.
Ei poistamaan vaikeita ongelmia.
Vaan tekemään vaikeista ongelmista ymmärrettäviä.
Löydät koodia.
Löydät dokumentaatiota.
Löydät määrittelyjä.
Mutta vielä tärkeämpää,
toivon, että löydät perusteluja.
Joku ennen sinua kysyi vaikeita kysymyksiä.
Joku keräsi todisteita.
Joku teki päätöksiä.
Joku selitti miksi.
Nuo selitykset ovat osa alustaa.
Kohtele niitä samalla kunnioituksella kuin lähdekoodia.
Jonain päivänä parannat jotain.
Ehkä se on pieni bugi.
Ehkä se on täysin uusi ominaisuus.
Mitä tahansa muutatkin, muista, että toinen insinööri lopulta perii työsi.
Jätä hänelle enemmän kuin toimiva ohjelmisto.
Jätä hänelle ymmärrys.
Selitä aikomuksesi.
Dokumentoi oletuksesi.
Säilytä todisteesi.
Kerro tarina päätöksen takana.
Se tarina voi jonain päivänä säästää jonkun tunteja — tai päiviä — tutkimista.
Älä pelkää korvata teknologiaa.
Korvaa kirjastoja.
Korvaa palveluntarjoajia.
Korvaa käyttöönottomalleja.
Korvaa ohjelmointikieliä.
Korvaa arkkitehtuureja tarvittaessa.
Mutta ennen kuin korvaat idean, ymmärrä miksi se oli olemassa.
Edistys ilman ymmärrystä on vain muutosta.
Ymmärrykselle rakennettu edistys muuttuu kehitykseksi.
Tulee hetkiä, jolloin alusta yllättää sinut.
Kohtele niitä hetkiä lahjoina.
Jokainen yllätys paljastaa jotain, mitä arkkitehtuuri ei vielä ymmärtänyt.
Tutki kärsivällisesti.
Kerää todisteita.
Paranna harkiten.
Jätä sitten opetus jälkeesi niille, jotka seuraavat.
Näin tekninen tietämys kasvaa.
Tulee myös hetkiä, jolloin mitään kiinnostavaa ei tapahdu.
Nekin hetket ovat tärkeitä.
Hiljaiset järjestelmät ovat usein terveitä järjestelmiä.
Jos COCO häviää taustalle, koska häiriöt lyhenevät,
koska selitykset selkiytyvät, koska perehdytys helpottuu, koska insinöörit luottavat todisteisiin, silloin alusta onnistuu.
Näkymätön luotettavuus on yksi teknisen huippuosaamisen korkeimmista muodoista.
Älä mittaa tätä projektia sen suorittamien automaatioiden määrällä.
Mittaa sitä tällaisilla kysymyksillä:
- Keskeytyvätkö ihmiset harvemmin?
- Ymmärtävätkö insinöörit järjestelmiä syvemmin?
- Onko tärkeitä päätöksiä helpompi selittää?
- Selviääkö operatiivinen tietämys tiimimuutoksista?
- Toistuvatko virheet harvemmin?
- Tulevatko uudet insinöörit tuottaviksi nopeammin?
Ne ovat säilyttämisen arvoisia tuloksia.
Muista lopuksi, ettei mikään käsikirja ole täydellinen.
Mikään määrittely ei ennusta jokaista tulevaisuutta.
Mikään arkkitehtuuri ei säily muuttumattomana ikuisesti.
Se ei ole heikkous.
Se on kutsu.
Tarkkaile todellisuutta.
Kyseenalaista oletuksia.
Paranna alustaa.
Opeta niitä, jotka tulevat jälkeesi.
Ja kun oma aikasi ylläpitäjänä lopulta päättyy, jätä jälkeesi järjestelmä, joka on rauhallisempi, selkeämpi, ymmärrettävämpi ja luotettavampi kuin se, jonka perit.
Jos jokainen sukupolvi tekee niin, COCO ei koskaan todella vanhene.
Sillä sen suurin voimavara ei tule olemaan sen ohjelmisto.
Se tulee olemaan tekninen kurinalaisuus, jota kantavat eteenpäin ihmiset, jotka jatkavat sen rakentamista.
Kiitos, että sinusta tuli yksi heistä.
Seuraava luku ei ole enää tässä käsikirjassa.
Seuraava luku on koodissa, jota olet juuri kirjoittamassa.
COCO-käsikirja
Sillä ohjelmisto kehittyy.
Hyvä arkkitehtuuri kehittyy hitaammin.
Ja hyvän filosofian tulisi elää molempia pidempään.
softify.pro