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.
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.