Jurister dokumenterer for at det holder i retten. Jeg dokumenterer for at jeg kan huske hvad koden gør.
Jurister dokumenterer for at det holder i retten. Jeg dokumenterer for at jeg kan huske hvad koden gør om tre måneder.
Det er ikke det samme.
I juridisk arbejde er dokumentet selve produktet. Det er præcist, det er formelt, og det forældes ikke bare fordi du ikke rører det. En kontrakt fra 2019 er stadig en kontrakt fra 2019.
I kode er dokumentationen en efterrationalisering. Den er skrevet efter det faktiske arbejde, den opdateres sjældent, og den forældes lydløst. Ingen advarer dig. Du åbner README’en og den beskriver en arkitektur der ikke eksisterer længere.
Jeg har 30 forladte README’er. Det er ikke sløseri — det er strukturelt. Kode lever i sin egen kontekst og ændrer sig hele tiden. Dokumentationen gør det ikke per default.
Det er den del der overraskede mig mest da jeg begyndte at bygge egne systemer: min juridiske træning giver mig stor præcision i at skrive noget der holder. Den giver mig ingen disciplin til at holde det opdateret.
De to ting er ikke det samme, og jeg forveksler dem stadig.