Toyota je dobře známá jako nejúčinnější organizace na planetě mimo lidské tělo a jednou z jejich filozofií je vyhnout se dokumentaci. Místo toho, aby někdo na montážní lince potřeboval více šroubů, prostě mají na poličce 5 košů šroubů a když je jeden prázdný, přesouvají ho z police a někdo přijde každou hodinu a naplní všechny police zezadu. Není třeba nic dokumentovat, proces to dělá pro vás.

Byl tam poslední článek o Quartze která hovořila o pozornosti Apple na kontrolních seznamech.

Ukazuje se, že klíčem k Appleovy kreativitě, rychlosti a přizpůsobivosti je na svém povrchu přesný opak toho, jaký by se dalo očekávat od tvořivosti s volným pohybem. Je to kontrolní seznam ... opravdu dlouhý.

Což mě přemýšlela o mé filozofii o kontrolních seznamech. V kontrolních seznamech je hodně špatně. Oni jsou zastaralí. Mohou být dlouhé a nudné a opakované. Jako všechny metriky se mohou zaměřit na špatné věci. Ale všechny ty věci jsou pravdivé i při přeskakování kontrolních seznamů, že? Myslím tím, že potřetí jste udělal stejnou chybu, je asi čas připustit, že po kontrole vám může ušetřit čas.

Kontrolní seznamy jsou však dobré pouze tehdy, když se na ně vztahují, a jsou často aktualizovány a stále jste na rozmaru člověka, který, jak to čelíme, není postaven, aby byl dokonalý po celou dobu.

Problém reálného světa

Máme standard Drupal nainstalujte se pro většinu klientů, kteří jsou na Drupalu. Patří sem moduly, nastavení, výchozí uživatelé a naše standardní data testování. Byl to kontrolní seznam, ale byl vždy zastaralý. Pak někdo šel dovnitř a udělal to tak specifické, že kdokoli s omezenou znalostí Drupalu to dokázal, tak to všichni drupalští lidé v obchodě nenáviděli, takže jsme to vzali a pak jsme nemohli trenéra někoho nového na něm a následně by ho mohli sledovat pouze starší Drupal devové, takže jsme začali tvrdé kódování Drush.

Drush znamená, že každý, kdo má zkušenosti s Drupal, by mohl spustit pár řádků kódu a všechno by se "stalo" magicky. Žádná další "lidská chyba", je to kontrolní seznam, ale namísto špinavého člověka, který se snaží sledovat kontrolní seznam, následoval počítač.

Problémem bylo to, že i nejjednodušší změna potřebovala vývojáře a každá změna měla být testována a tak se rozpadla velmi rychle.

Nakonec jsme se setkali s očividným řešením, které je v Drush těžko zakódované, což způsobilo, že to bylo poněkud těžké změnit.

Nyní máme prostě stránky s názvem "klonujte mě" nebo něco takového a kdykoli máme nového klienta, jen jej duplikujeme. Při změně používala programátora a spoustu dalších prací, nyní může někdo s heslem v našem týmu něco změnit. Pokud projektant chce různé zkušební údaje, změní to a automaticky bude v našem dalším projektu. Pokud se PM rozhodne, že potřebujeme dalšího výchozího uživatele pro účely výcviku, vytvoří jeden a bude to v našem dalším projektu.

"Když poprvé uděláte něco, udělejte to. Podruhé to udělej a udělej si poznámky. Třetí krok zastavte a zjistěte, zda je to skutečně stejné. Pokud je to proces z toho, protože tam bude pravděpodobně čtvrtý a pátý a tak dále. "- Gavin Andresen, CTO Bitcoin

Měli jsme štěstí, že Gavin tu máme několik let na Gravity Switch. Přispěl k naší kultuře a našemu kódu poměrně málo, ale jeho moudrost o tom, kdy "hackovat" věci a kdy je proceduralizovat, je něco, co skutečně změnilo, jak přistupuji k dokumentaci.

Gavin nás učil, že dobrý kód je autodokumentován.

10 přikázání dokumentace

  1. Nebudeš příliš dokumentovat - Pokud to trvá déle než dokumentovat, než dělat, vy přesahuješ dokumentaci.
  2. Automatizujte před dokumentem - Vyjměte lidský faktor vždy, když je to možné.
  3. Nebudeš se třikrát přesouvat stejnou věcí - jestli jste se dostali zpátky nebo museli dvakrát zjistit stejnou věc, je čas proceduralizovat.
  4. Pokud se to nezdaří, zlikvidujte to velkou - Nejtřídější věci jsou věci, které vám chybějí první (a dokonce i desátý) čas, kdy je přehodnotíte. Máte-li na výběr mezi vytvořením procesu, který zastaví montážní linku nebo selhání vašeho webu, pokud selže, nebo ten, který vytvoří nepatrnou chybu, vždy zvolte "sestřelit stránku", protože alespoň poprvé zjistíte problém .
  5. Uděláte proces, kdy se musí člověk vyhnout - protože je třeba ho najít.
  6. Vlastní - Při sledování procesu nezapomeňte, že vaší úlohou je dosáhnout nejlepšího výsledku. Není to postupovat. Vždy se k tomu přibližujte skepticky a kriticky se podívejte na výsledky.
  7. Přiznejte, když to nefunguje - Někdy věci vypadají stejně, ale nejsou. V našem světě potřebujeme vždy standardní zkušební data, ale proces vytváření v aplikaci WordPress je úplně jiný než vytvoření v Drupalu, takže potřebujeme zcela odlišné procesy.
  8. Opravte to rychle - Pokud je váš proces zastaralý, nezakrývejte problém a nechejte jej, nebo si vyberte a vyberte součásti, které chcete sledovat. Opravte to tak, jak to jde. Ve většině případů vám bude trvat jen několik minut delší a tyto minuty se změní na další čas, kdy vás nebo někdo jiný proces použije.
  9. Vyberte si své bitevníky - Steve Krug (velitel použitelnosti) říká, že byste měli často testovat. Najděte svůj největší problém. Využijte nejmenší část práce, abyste již nebyli největším problémem a opakujte. Nepokoušíte se dostat ze systému nějaký malý kousek , snažíte se, aby systém WHOLE fungoval lépe.
  10. Revize - Pokud jste použili proces desetkrát a nezměnili jste ho, měli byste přemýšlet o tom, jak to udělat efektivněji, nebo zda byste ho měl automatizovat.