Toyota jest znana jako najbardziej wydajna organizacja na świecie poza ludzkim ciałem, a jedną z jego filozofii jest unikanie dokumentacji. Zamiast robić "proces", gdy ktoś na linii montażowej potrzebuje więcej śrub, po prostu mają 5 koszy na półce, a gdy jest pusty, przenoszą go z półki, a ktoś przychodzi co godzinę i uzupełnia wszystkie półki od tyłu. Nie musisz niczego dokumentować, proces ten wykonuje za Ciebie.
To było ostatni artykuł na temat kwarcu który mówił o zwracaniu uwagi Apple na listy kontrolne.
Okazuje się, że kluczem do kreatywności, szybkości i zdolności adaptacyjnych Apple jest na pierwszy rzut oka przeciwieństwo tego rodzaju swobodnej twórczości, jakiej można się spodziewać. To jest lista kontrolna ... naprawdę długa.
Który zmusił mnie do zastanowienia się nad moją filozofią dotyczącą list kontrolnych. Jest wiele problemów z listami kontrolnymi. Wydają się nieaktualne. Mogą być długie, nudne i powtarzalne. Podobnie jak wszystkie wskaźniki mogą skupić się na niewłaściwych rzeczach. Ale wszystkie te rzeczy są prawdziwe także w przypadku pominięcia list kontrolnych, prawda? Chodzi mi o to, że po raz trzeci popełniłeś ten sam błąd, prawdopodobnie nadszedł czas, aby przyznać, że przestrzeganie listy kontrolnej może zaoszczędzić czas.
Ale listy kontrolne są dobre tylko wtedy, gdy mają zastosowanie i są często aktualizowane, a wciąż jesteś w kapryzie człowieka, który, spójrzmy prawdzie w oczy, nie są budowane, aby być doskonały przez cały czas.
Mamy standard Drupal zainstalujmy dla większości klientów, którzy są na Drupalu. Dotyczy to modułów, ustawień, domyślnych użytkowników i naszych domyślnych danych testowych. Kiedyś była to lista kontrolna, ale zawsze była nieaktualna. Potem ktoś wszedł i uczynił go tak specyficznym, że każdy, nawet z ograniczoną wiedzą o Drupalu, mógł to zrobić, więc wszyscy zagorzali ludzie Drupala w sklepie go znienawidzili, więc zabraliśmy to, a potem nie mogliśmy wyszkolić nikogo nowego na nim i tylko starsi twórcy Drupala mogli go śledzić, więc zaczęliśmy go mocno kodować Drush.
Drush oznacza, że każdy, kto ma doświadczenie w Drupalu, może uruchomić kilka linii kodu i wszystko "stanie się" magicznie. Nigdy więcej "ludzkiego błędu", jest to lista kontrolna, ale zamiast bałaganu, który podąża za listą kontrolną, komputer podążył za nią.
Problem polegał na tym, że nawet najprostsza zmiana wymagała programisty i każda zmiana musiała zostać przetestowana, a więc szybko się rozpadła.
W końcu natknęliśmy się na oczywiste rozwiązanie, które zostało zakodowane w Drush, co nieco zmieniło.
Teraz mamy po prostu stronę o nazwie "sklonuj mnie" lub coś takiego, a ilekroć mamy nowego klienta, po prostu go duplikujemy. Zmiana polegała na zaangażowaniu programisty i wielu innych prac, teraz każdy, kto ma hasło w naszym zespole, może pójść i coś zmienić. Jeśli projektant chce różnych danych testowych, zmienia je i automatycznie znajdzie się w naszym następnym projekcie. Jeśli premier zdecyduje, że potrzebujemy innego domyślnego użytkownika do celów szkoleniowych, utworzy go i znajdzie się w naszym następnym projekcie.
"Za pierwszym razem, gdy coś robisz, po prostu to rób. Za drugim razem rób to i rób notatki. Za trzecim razem zatrzymaj się i zobacz, czy to naprawdę to samo. Jeśli jest to proces, ponieważ prawdopodobnie będzie to czwarty, piąty i tak dalej. "- Gavin Andresen, CTO Bitcoin
Mieliśmy szczęście, że mieliśmy Gavina tutaj na Gravity Switch przez kilka lat. Przyczynił się do naszej kultury i naszego kodu, ale jego mądrość, kiedy "hakować" rzeczy i kiedy je proceduralizować, jest czymś, co naprawdę zmieniło moje podejście do dokumentacji.
Gavin nauczył nas, że dobry kod to samo-dokumentowanie.