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.

Problem z prawdziwym światem

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.

10 przykazań dokumentacji

  1. Nie będziesz przesadnie dokumentował - Jeśli dokumentowanie trwa dłużej, niż to robisz, nadmiernie dokumentujesz.
  2. Będziesz zautomatyzować przed dokumentem - usuń czynnik ludzki, ilekroć jest to możliwe.
  3. Nie powinieneś trzy razy przymykać się przez to samo - Jeśli zawiodłeś lub musiałeś dwa razy to samo wymyślić, nadszedł czas na proceduralizację.
  4. Jeśli to się nie uda, spraw , by się nie udało - Najtrudniejsze rzeczy są tym, za czym tęsknisz za pierwszym (a nawet dziesiątym) czasem, kiedy je przejrzysz. Jeśli masz wybór pomiędzy utworzeniem procesu, który zatrzyma linię montażową lub awarią twojej strony, jeśli zawiedzie lub który spowoduje niewielki błąd, zawsze wybieraj "likwiduj witrynę", ponieważ przynajmniej zauważysz problem po raz pierwszy .
  5. Położysz proces tam, gdzie trzeba się nad nim potknąć - bo trzeba go znaleźć.
  6. Weź to pod uwagę - postępując zgodnie z procesem pamiętaj, że Twoim zadaniem jest osiągnięcie najlepszego rezultatu. Nie należy postępować zgodnie z tym procesem. Zawsze podejdź do tego ze sceptycyzmem i krytycznie przyjrzyj się wynikom.
  7. Przyznaj, kiedy to nie działa - Czasami rzeczy mogą wyglądać tak samo, ale tak nie jest. W naszym świecie zawsze potrzebujemy standardowych danych testowych, ale proces tworzenia tego w WordPressie jest zupełnie inny niż w Drupalu, więc potrzebujemy zupełnie innych procesów.
  8. Napraw to szybko - jeśli Twój proces jest nieaktualny, nie ignoruj ​​go i nie wysyłaj go, ani nie wybieraj części, które chcesz śledzić. Napraw to, jak idziesz. W większości przypadków zajmie ci to tylko kilka minut dłużej, a te minuty zamieniają się w kilka godzin następnym razem, gdy Ty lub ktoś inny użyje tego procesu.
  9. Wybierz swoje bitwy - Steve Krug (mistrz użyteczności) mówi, że powinieneś często testować. Znajdź największy problem. Wykonaj MAŁĄ ilość pracy, którą możesz wykonać, aby nie był to już Twój największy problem, a następnie powtórz. Nie próbujesz usunąć z systemu żadnych problemów, próbujesz sprawić, aby system CAŁE działał lepiej.
  10. Revisit - Jeśli korzystałeś z procesu kilkanaście razy i go nie zmieniłeś, powinieneś pomyśleć o tym, jak możesz go usprawnić lub po prostu zautomatyzować.