Toyota er kjent som den mest effektive organisasjonen på planeten utenfor menneskekroppen, og en av deres filosofier er å unngå dokumentasjon. I stedet for å lage en "prosess" for når noen på forsamlingslinjen trenger flere bolter, har de bare 5 fat bolter på hyllen, og når en er tom flytter den den fra hyllen og noen kommer hver time og fyller på hyllene fra baksiden. Det er ikke nødvendig å dokumentere noe, prosessen gjør det for deg.
Det var en Nylig artikkel om kvarts som snakket om Apples oppmerksomhet til sjekklister.
Det viser seg at nøkkelen til Apples kreativitet, fart og tilpasningsevne er på overflaten, det nøyaktige motsatte av den slags frihjulende kreativitet man kunne forvente. Det er en sjekkliste ... en veldig lang en.
Som fikk meg til å tenke på hva min filosofi om sjekklister er. Det er mye galt med sjekklister. De blir utdaterte. De kan være lange og kjedelige og repeterende. Som alle målinger kan de fokusere på feil ting. Men alle disse tingene er sanne for å hoppe over sjekklister også, ikke sant? Jeg mener den tredje gangen du har gjort samme feil, det er nok tid til å innrømme at etter en sjekkliste kan du ha spart deg tid.
Men sjekklister er bare gode hvis de gjelder, og de oppdateres ofte, og du er fortsatt på innfall av et menneske som, la oss innse det, er ikke bygget for å være perfekt hele tiden.
Vi har en standard Drupal installere vi starter med for de fleste klienter som er på Drupal. Dette inkluderer moduler, innstillinger, standardbrukere og standard testdata. Det pleide å være en sjekkliste, men det var alltid utdatert. Deretter gikk noen inn og gjorde det så konkret at alle med begrenset kunnskap om Drupal kunne gjøre det, så alle de dørharde Drupal-folkene i butikken hatet det, så vi tok det ut, og da kunne vi ikke trene noen nye på det og bare senior Drupal devs kunne følge det, så da begynte vi hardt å kode det inn Drush.
Drush betyr at alle med Drupal-opplevelse kunne kjøre et par linjer med kode og alt ville "skje" magisk. Ikke mer "menneskelig feil", det er en sjekkliste, men i stedet for et rotete menneske som prøver å følge en sjekkliste fulgte en datamaskin den.
Problemet med det var at selv den enkleste forandringen trengte en utvikler og hver forandring måtte testes og så falt det ganske raskt.
Til slutt kom vi over den åpenbare løsningen, noe som er noe hardkodet i Drush, noe som gjorde det litt vanskelig å endre.
Nå har vi bare et nettsted som heter "klone meg" eller noe slikt, og når vi har en ny klient, dupliserer vi det bare. Endre det pleide å involvere en programmerer og mye annet arbeid, nå kan alle som har passordet på teamet, gå og endre noe. Hvis en designer ønsker forskjellige testdata, endrer de det, og det vil automatisk være i vårt neste prosjekt. Hvis en PM bestemmer at vi trenger en annen standardbruker for opplæringsformål, oppretter de en og det vil være i vårt neste prosjekt.
"Første gang du gjør noe bare gjør det. Andre gang, gjør det og ta notater. Den tredje gangen, stopp og se om det er virkelig det samme. Hvis det er en prosess ut av det fordi det vil trolig være en fjerde og femte, og så videre. "- Gavin Andresen, CTO Bitcoin
Vi var heldig nok til å ha Gavin her på Gravity Switch i noen år. Han bidro ganske mye til vår kultur og vår kode, men hans visdom om når "hack" ting og når man skal prosedyre dem er noe som egentlig har forandret hvordan jeg nærmer seg dokumentasjon.
Gavin lærte oss at god kode er selvdokumenterende.