Toyota, insan vücudunun dışındaki gezegendeki en verimli organizasyon olarak bilinir ve felsefelerinden biri de dokümantasyondan kaçınmaktır. Montaj hattındaki bir kişinin daha fazla cıvataya ihtiyacı olduğunda bir “işlem” yapmak yerine, raflarında sadece 5 bite cıvata var ve biri boş olduğunda raftan çıkarılır ve biri her saat gelir ve tüm rafları yeniden doldurur. arkadan. Hiçbir şeyi belgelemeye gerek yok, süreç sizin için yapıyor.

Bir vardı Quartz ile ilgili son yazı Apple'ın kontrol listelerine olan ilgisinden bahsetti.

Apple'ın yaratıcılığının, hızının ve uyarlanabilirliğinin anahtarının, yüzeyinde, bekleyeceği serbest tekerlekli yaratıcılık türünün tam tersi olduğu ortaya çıkıyor. Bu bir kontrol listesi… gerçekten uzun bir.

Beni kontrol listelerine dair felsefem hakkında düşündüm. Kontrol listelerinde çok yanlış var. Onlar güncel değil. Uzun ve sıkıcı ve tekrarlayıcı olabilirler. Tüm metrikler gibi, yanlış şeylere odaklanabilirler. Ama bütün bunlar kontrol listelerini atlamak için de doğru, değil mi? Yani aynı hatayı yaptığınız üçüncü sefer, muhtemelen bir kontrol listesinin ardından size zaman kazandırabileceğini itiraf etme zamanı geldi.

Ancak, kontrol listeleri yalnızca uygulandıkları ve sıklıkla güncellendikleri takdirde iyidir ve hala yüz yüze gelebilecek, her zaman mükemmel olacak şekilde inşa edilmeyen bir insanın huzuru altındasınız.

Gerçek dünya problemi

Bir standart var Drupal Drupal'da olan çoğu müşteri için başlayalım. Bu, modülleri, ayarları, varsayılan kullanıcıları ve varsayılan test verilerini içerir. Eskiden bir kontrol listesi vardı, ama her zaman güncel değildi. Sonra birisi içeri girdi ve Drupal'ın sınırlı bilgisi bile olan herkesin bunu yapabilmesi için çok özel bir şey yaptı, bu yüzden dükkandaki tüm zorlu Drupal insanlar bundan nefret ettiler, bu yüzden onu çıkardık ve sonra yeni birini eğitemedik. Üzerinde ve sadece kıdemli Drupal devleri takip edebilirdi, o zaman bunu kodlamaya başladık. Drush.

Drush, Drupal tecrübesi olan herkesin birkaç satır kod çalıştırabileceği ve her şeyin sihirli bir şekilde “gerçekleşeceği” anlamına gelir. Artık “insan hatası” yok, bu bir kontrol listesi, ama bir kontrol listesini takip etmeye çalışan dağınık bir insan yerine bir bilgisayar izledi.

Bununla ilgili problem, en basit değişimin bile bir geliştiriciye ihtiyaç duyması ve her değişikliğin test edilmesi gerektiğiydi ve bu yüzden çok hızlı bir şekilde parçalara ayrıldı.

Sonunda, Drush'ta sabit kodlanmış bir şey olan bariz çözümle karşılaştık, bu da değişmesi biraz zorlaştı.

Şimdi sadece “klonla” diye bir site var ya da böyle bir şey var ve ne zaman yeni bir müşterimiz varsa, onu çoğaltacağız. Bir programcı ve diğer birçok işi dahil etmek için kullanılırken, artık ekibimizdeki şifre ile herkes bir şeyleri değiştirebilir ve değiştirebilir. Bir tasarımcı farklı test verileri istiyorsa, bunu değiştirir ve otomatik olarak bir sonraki projemizde olacaktır. Bir PM, eğitim amaçlı başka bir varsayılan kullanıcıya ihtiyacımız olduğuna karar verirse, bir tane oluşturur ve bir sonraki projemizde olacaktır.

“İlk kez bir şey yap, sadece yap. İkinci sefer, yap ve not al. Üçüncü kez, dur ve gerçekten aynı olup olmadığını gör. Eğer bir süreç çıkarsa, muhtemelen 4 ve 5'inci olacak. ”- Gavin Andresen, CTO Bitcoin

Birkaç yıldır Gravity Switch'de Gavin'e sahip olduğumuz için şanslıydık. Kültürümüze ve kodumuza biraz katkıda bulundu, ancak şeyleri ne zaman “hackleyeceğimiz” ve ne zaman prosedürleri ne zaman uygulayacağına dair bilgeliği, belgelere nasıl yaklaştığımı gerçekten değiştiren bir şey.

Gavin bize iyi bir kodun kendini belgelemeyi öğretti.

Belgelerin 10 emri

  1. Fazla belge vermeyecekseniz - Doküman yapmaktan daha uzun sürüyorsa, fazla belgelendirirsiniz.
  2. Belge öncesi otomatikleştirin - Mümkün olduğunda insan faktörünü çıkarın.
  3. Aynı şeyi üç kez karıştırmayacaksınız - Eğer aynı şeyi iki kez çözdüyseniz ya da aynı şeyi anlamanız gerekiyorsa, işlemin zamanlaması gerekir.
  4. Eğer başarısız olursa, başarısızlığa uğratabilirsiniz - En zor şeyler, onları gözden geçirdiğiniz ilk (ve hatta 10.) zamanı kaçırdığınız şeylerdir. Montaj hattını durduracak veya başarısız olursa veya küçük bir hata oluşturacak şekilde sitenizi kilitleyecek bir işlem oluşturmak arasında bir seçiminiz varsa, en azından sorunu ilk kez fark edeceğinizden, “siteyi aşağı çekme” yi seçin. .
  5. Sürecin üzerinden geçmesi gereken süreci koyacaksınız - çünkü bulunması gerekiyor.
  6. Sahip olun - Bir işlemi izlediğinizde, işinizin en iyi sonucu vermesi gerektiğini unutmayın. Süreci takip etmek değil. Daima şüphecilikle yaklaş ve sonuçlara eleştirel bak.
  7. Çalışmıyorken itiraf et - Bazen işler aynı görünebilir, ama değiller. Dünyamızda, her zaman standart test verisine ihtiyacımız var, fakat bunu WordPress'de oluşturma süreci, Drupal'da yaratılmasından tamamen farklı, bu yüzden tamamen farklı süreçlere ihtiyacımız var.
  8. Hızlı bir şekilde düzeltin - İşleminiz güncel değilse, sorunu göz ardı etmeyin ve kanatta bulunmayın ya da takip etmek istediğiniz parçaları seçip seçin. Gittiğin gibi düzelt. Çoğu durumda yalnızca birkaç dakika daha uzun sürecek ve bu dakikalar sizin veya bir başkasının işlemi kullandığı bir sonraki saatlere dönüşecektir.
  9. Savaşlarınızı seçin - Steve Krug (kullanılabilirlik ustası) sık sık test etmeniz gerektiğini söylüyor. En büyük sorununuzu bulun. Yapabileceğiniz LEAST miktarını yapın, böylece artık en büyük probleminiz olmayacak ve tekrarlanacaktır. Sistemden küçük bir kink almaya çalışmıyorsunuz, WHOLE sisteminin daha iyi çalışmasını sağlamaya çalışıyorsunuz.
  10. Revisit - Bir düzine kez bir süreç kullandıysanız ve bunu değiştirmediyseniz, bunu nasıl daha verimli hale getirebileceğinizi veya yalnızca otomatikleştirmeniz gerektiğini düşünmelisiniz.