Toyota staat bekend als de meest efficiënte organisatie op de planeet buiten het menselijk lichaam, en een van hun filosofieën is om documentatie te vermijden. In plaats van een "proces" te maken voor wanneer iemand op de assemblagelijn meer bouten nodig heeft, hebben ze eenvoudigweg 5 bins bouten op hun plank en wanneer er een leeg is, verplaatsen ze het van de plank en komt er iemand elk uur langs en vult alle planken opnieuw vanaf de achterkant. U hoeft niets te documenteren, het proces doet het voor u.

Er was een recent artikel over Quartz die sprak over Apple's aandacht voor checklists.

Het blijkt dat de sleutel tot de creativiteit, snelheid en aanpassingsvermogen van Apple op het eerste gezicht precies het tegenovergestelde is van het soort vrije creativiteit dat je zou kunnen verwachten. Het is een checklist ... een hele lange.

Wat me deed nadenken over wat mijn filosofie over controlelijsten is. Er is veel mis met checklists. Ze raken verouderd. Ze kunnen lang en saai en repetitief zijn. Zoals alle statistieken kunnen ze zich concentreren op de verkeerde dingen. Maar al die dingen kloppen ook met het overslaan van checklists, toch? Ik bedoel, de derde keer dat je dezelfde fout hebt gemaakt, is het waarschijnlijk tijd om toe te geven dat het volgen van een checklist je tijd heeft bespaard.

Maar checklists zijn alleen goed als ze van toepassing zijn en ze worden vaak bijgewerkt, en je bent nog steeds in de grillen van een mens die, laten we eerlijk zijn, niet altijd perfect gebouwd is.

Probleem met de echte wereld

We hebben een standaard Drupal installeren we beginnen met voor de meeste klanten die op Drupal zijn. Dit omvat modules, instellingen, standaardgebruikers en onze standaard testgegevens. Het was vroeger een checklist, maar deze was altijd verouderd. Toen ging iemand naar binnen en maakte het zo specifiek dat iemand die zelfs met beperkte kennis van Drupal het kon doen, dus alle die-hard Drupal-mensen in de winkel het haatten, dus namen we dat uit, en dan konden we niemand nieuw trainen erop en alleen oudere Drupal ontwikkelaars konden het volgen, dus toen zijn we begonnen met het hard coderen Drush.

Drush betekent dat iedereen met Drupal-ervaring een paar regels code zou kunnen uitvoeren en dat alles op magische wijze zou gebeuren. Geen "menselijke fout" meer, het is een checklist, maar in plaats van een rommelige mens die een checklist probeert te volgen, volgde een computer.

Het probleem was dat zelfs de eenvoudigste verandering een ontwikkelaar nodig had en dat elke verandering getest moest worden en dus viel het snel uit elkaar.

Uiteindelijk kwamen we de voor de hand liggende oplossing tegen, die iets hardgecodeerd is in Drush, waardoor het enigszins moeilijk was om te veranderen.

Nu hebben we gewoon een site genaamd "kloon me" of iets dergelijks en wanneer we een nieuwe klant hebben, dupliceren we het gewoon. Bij het veranderen ervan was een programmeur en veel ander werk betrokken, nu kan iedereen met het wachtwoord van ons team iets gaan veranderen. Als een ontwerper andere testgegevens wil, wijzigen deze deze en wordt deze automatisch in ons volgende project opgenomen. Als een premier besluit dat we een andere standaardgebruiker nodig hebben voor trainingsdoeleinden, maken ze er een en dit zal in ons volgende project zijn.

"De eerste keer dat je iets doet, doe het gewoon. De tweede keer, doe het en maak aantekeningen. De derde keer, stop en kijk of het echt hetzelfde is. Als het er een proces van maakt, want er zal waarschijnlijk een 4e en een 5e zijn, enzovoort. "- Gavin Andresen, CTO Bitcoin

We hadden het geluk om Gavin een paar jaar bij Gravity Switch te hebben. Hij heeft heel wat bijgedragen aan onze cultuur en onze code, maar zijn wijsheid over wanneer je dingen moet "hacken" en wanneer je ze moet procedureren, is echt veranderd in de manier waarop ik documentatie benader.

Gavin heeft ons geleerd dat goede code zelfdocumenteert.

De 10 geboden documentatie

  1. U zult niet overdrijven - als het langer duurt om documenten te documenteren dan om te doen, bent u overdreven gedocumenteerd.
  2. Je zult automatiseren voor document - Haal de menselijke factor eruit waar mogelijk.
  3. Je zult niet drie keer hetzelfde doormodderen - als je twee keer hebt verknoeid of hetzelfde hebt moeten bedenken, is het tijd om te procedureren.
  4. Als het gaat mislukken, laat het dan groot falen - De lastigste dingen zijn de dingen die je mist als eerste (en zelfs de 10e) keer dat je ze bekijkt. Als u de keuze hebt tussen het maken van een proces dat de assemblagelijn stopt of uw site laat crashen als het mislukt of een die een kleine fout veroorzaakt, kiest u altijd "verwijder de site" omdat u in elk geval het probleem meteen zult herkennen .
  5. Je zult het proces plaatsen waar je erover moet struikelen - omdat het gevonden moet worden.
  6. Bezit het - Houd er bij het volgen van een proces rekening mee dat het uw taak is om het beste resultaat te produceren. Het is niet om het proces te volgen. Ga er altijd sceptisch mee om en bekijk de resultaten kritisch.
  7. Geef toe als het niet werkt - Soms zien dingen er hetzelfde uit, maar dat zijn ze niet. In onze wereld hebben we altijd standaard testgegevens nodig, maar het proces om dat te creëren in WordPress is compleet anders dan het creëren in Drupal, dus we hebben totaal verschillende processen nodig.
  8. Snel repareren - Als uw proces niet meer actueel is, moet u niet alleen het probleem negeren en het uitkramen, of de onderdelen kiezen en kiezen die u wilt volgen. Fixeer het terwijl je gaat. Het kost u in de meeste gevallen slechts minuten langer om te doen, en die minuten worden uren nadat u of iemand anders het proces gebruikt.
  9. Kies je strijd - Steve Krug (de baas over bruikbaarheid) zegt dat je het vaak zou moeten proberen. Vind uw grootste probleem. Doe de minste hoeveelheid werk die je kunt doen, zodat het niet langer je grootste probleem is en herhaal het dan. Je probeert geen kleine knik uit het systeem te krijgen, maar je probeert het GEHELE systeem beter te laten werken.
  10. Revisit - Als je een proces al tientallen keren hebt gebruikt en het niet hebt veranderd, moet je nadenken over hoe je het efficiënter kunt maken of dat je het moet automatiseren.