VerhalenEngineering · Interne documentatie
Engineering · Interne documentatie

Een README van 2.400 regels vervangen door twaalf gidsen.

Een staff engineer bij een B2B observability-platform nam de inrichting van de dev-omgeving één keer op. De tijd tot eerste PR voor nieuwe medewerkers zakte van drie weken naar één.

Staff Engineer, B2B observability-platform, 65 engineers, Series B
Staff engineer bij een nieuwe-laptop-inrichting met dubbele schermen, brutalistische redactionele illustratie
Tijd tot eerste PR
1 week
3 weken
Voor nieuwe engineers
Slack-DM's in week 1
1
6
Per nieuwe medewerker
Gidsenbibliotheek
12
Dev-omgeving, deploy, on-call
Inrichting zonder hulp
90%
Nieuwe medewerkers die het zelfstandig afronden

01

Het inwerkdocument voor engineers was een README van 2.400 regels. Het was grondig en onbetrouwbaar. Sommige stukken verwezen naar een buildsysteem dat was vervangen. Sommige gingen uit van een OS-versie die op geen enkele laptop in het bedrijf nog draaide. De zin "dit zou gewoon moeten werken" stond er zeventien keer in.

Elke nieuwe engineer liep tegen dezelfde mislukkingen aan: een ontbrekende Postgres-extensie, de verkeerde Node-versie, het SSL-certificaat dat opnieuw aangemaakt moest worden, de vier omgevingsvariabelen die niemand had gedocumenteerd. Elke mislukking werd een Slack-DM aan een senior engineer. In maand twee van een aanwervingsgolf besteedden senior engineers de helft van hun week aan inwerken.

De oplossing die iedereen voorstelde was "de README herschrijven". In het jaar daarvoor hadden drie engineers het geprobeerd. Elke herschrijving was twee weken goed en verouderde daarna. De README verouderde omdat niemand er eigenaar van was. De kosten waren verdeeld over elke senior engineer die dezelfde DM's opving.

Elke nieuwe engineer liep tegen dezelfde zes mislukmodi aan. Ik nam ze één voor één op terwijl ze werden opgelost, en de mislukkingen voelden niet meer persoonlijk.
Staff Engineer
B2B observability-platform, 65 engineers, Series B

02

De inrichting werd vanaf nul opgenomen op een nieuwe laptop, met Capture aan. Elke stap en elke mislukking werd toegelicht. De oplevering was een gids van drieëntwintig stappen met schermafbeeldingen van de werkelijke huidige inrichting.

De gids verving de README. Nieuwe medewerkers openden hem op dag één en werkten zich erdoorheen. De zes bekende mislukmodi kregen elk een eigen korte probleemoplossingsgids, gelinkt vanuit de hoofdgids.

Wanneer een stap verandert (een tool-update, een nieuwe omgevingsvariabele), wordt alleen die stap opnieuw opgenomen. Twee minuten werk, geen herschrijving van de README. Inwerk-DM's aan senior engineers zakten van zes per nieuwe medewerker in week één naar ongeveer één. Die ene gaat meestal over een echt interessant geval.

Inwerkpijplijn van clone tot eerste PR, isometrisch brutalistisch diagram

03

  1. 01
    Doe de inrichting live.

    Nieuwe laptop, Capture aan. Lichte elke stap toe, ook de mislukkingen.

  2. 02
    Behandel de mislukkingen als eersteklas burgers.

    Elke bekende mislukmodus krijgt een eigen korte probleemoplossingsgids.

  3. 03
    Vanaf één plek gelinkt.

    De engineering-wiki heeft één ingang: Begin hier.

  4. 04
    Onderhoud per stap.

    Neem alleen de geraakte stap opnieuw op als een tool verandert. Niet de hele gids.

  5. 05
    Volg de tijd tot eerste PR.

    Het succes van het inwerken meet je aan de tijd tot de eerste verzonden PR.

04

De tijd tot eerste PR zakte van drie weken naar één. Senior engineers kregen hun eerste week terug. Het volume aan inwerk-DM's zakte ongeveer 80%.

Het patroon verspreidde zich. Het on-call-runbook kreeg dezelfde behandeling. Het PR-reviewproces is opgenomen. De deploy-flow is opgenomen. De engineering-wiki bestaat nu uit twaalf gidsen, niet uit 2.400 regels grotendeels verouderde README.

Verdeling tijd tot eerste PR voor en na, schematische stijl
Probeer het

Neem één workflow op.

Gratis Chrome-extensie. Geen registratie nodig.