Toyota er kendt som den mest effektive organisation på planeten uden for menneskekroppen, og en af deres filosofier er at undgå dokumentation. I stedet for at lave en "proces", når en person på samlebåndet har brug for flere bolte, har de simpelthen 5 bolte bolte på deres hylde, og når man er tom, flytter den den fra hylden og nogen kommer hver time og genopfylder alle hylderne fra bagsiden. Der er ingen grund til at dokumentere noget, processen gør det for dig.
Der var en Nylig artikel om kvarts som talte om Apples opmærksomhed på checklister.
Det viser sig, at nøglen til Apples kreativitet, hurtighed og tilpasningsevne er på overfladen, det nøjagtige modsatte af den slags frihjulende kreativitet man kunne forvente. Det er en tjekliste ... en rigtig lang en.
Som fik mig til at tænke på, hvad min filosofi om tjeklister er. Der er meget galt med tjeklister. De bliver forældede. De kan være lange og kedelige og gentagne. Ligesom alle målinger kan de fokusere på de forkerte ting. Men alle disse ting er sandt for at springe tjeklister også rigtigt? Jeg mener tredje gang du har lavet den samme fejl, det er nok tid til at indrømme, at efter en tjekliste måske har sparet dig tid.
Men tjeklister er kun gode, hvis de finder anvendelse, og de opdateres ofte, og du er stadig på indfaldet af et menneske, som lad os se det, er ikke bygget til at være perfekt hele tiden.
Vi har en standard Drupal installere vi starter med for de fleste klienter, der er på Drupal. Dette omfatter moduler, indstillinger, standard brugere og vores standard testdata. Det plejede at være en tjekliste, men det var altid forældet. Så gik der ind og gjorde det så specifikt, at alle med begrænset viden om Drupal kunne gøre det, så alle de sværte Drupal-folk i butikken hadede det, så vi tog det ud, og da kunne vi ikke træne nogen ny på det og kun senior Drupal devs kunne følge det, så så begyndte vi at kodede det hårdt Drush.
Drush betyder, at alle med Drupal erfaring kunne køre et par linjer kode og alt ville "ske" magisk. Ikke mere "menneskelig fejl", det er en tjekliste, men i stedet for et rodet menneske, der forsøger at følge en tjekliste, fulgte en computer det.
Problemet med det var, at selv den enkleste forandring havde brug for en udvikler, og hver ændring skulle testes, og så faldt det fra hinanden ganske hurtigt.
Til sidst kom vi på den indlysende løsning, som er noget hardkodet i Drush, hvilket gjorde det lidt svært at ændre.
Nu har vi blot et websted kaldet "klone mig" eller sådan noget, og når vi har en ny klient, duplikerer vi bare det. Ændring det plejede at involvere en programmør og masser af andet arbejde, nu kan enhver med adgangskoden på vores team gå og ændre noget. Hvis en designer ønsker forskellige testdata, ændrer de det, og det vil automatisk være i vores næste projekt. Hvis en PM beslutter, at vi har brug for en anden standardbruger til træningsformål, opretter de en og det vil være i vores næste projekt.
"Første gang du laver noget, skal du bare gøre det. Anden gang, gør det og tag noter. Tredje gang, stop og se om det er virkelig det samme. Hvis det er en proces ud af det, fordi der sandsynligvis vil være en 4. og 5., og så videre. "- Gavin Andresen, CTO Bitcoin
Vi var heldige nok til at have Gavin her på Gravity Switch i et par år. Han bidrog ganske lidt til vores kultur og vores kode, men hans visdom om hvornår at "hack" ting og hvornår man skal procedurere dem er noget, der virkelig har ændret, hvordan jeg nærmer mig dokumentation.
Gavin lærte os, at god kode er selvdokumenterende.