Η Toyota είναι γνωστή ως η πιο αποδοτική οργάνωση στον πλανήτη εκτός του ανθρώπινου σώματος και μια από τις φιλοσοφίες τους είναι να αποφεύγουν την τεκμηρίωση. Αντί να κάνει μια "διαδικασία" για όταν κάποιος στη γραμμή συναρμολόγησης χρειάζεται περισσότερα βίδες, απλά έχουν 5 κάδους βίδες στο ράφι τους και όταν κάποιος είναι άδειος το μετακινούν από το ράφι και κάποιος έρχεται κάθε ώρα και γεμίζει όλα τα ράφια από πίσω. Δεν χρειάζεται να τεκμηριώνετε τίποτα, η διαδικασία το κάνει για σας.

Υπήρχε πρόσφατο άρθρο για το Quartz η οποία μίλησε για την προσοχή της Apple στις λίστες ελέγχου.

Αποδεικνύεται ότι το κλειδί για τη δημιουργικότητα, την ταχύτητα και την προσαρμοστικότητα της Apple είναι, στην επιφάνεια, το ακριβώς αντίθετο από το είδος της ελεύθερης δημιουργίας που θα περίμενε κανείς. Είναι μια λίστα ελέγχου ... μια πολύ μεγάλη.

Αυτό με έκανε να σκεφτώ ποια είναι η φιλοσοφία μου για τους καταλόγους ελέγχου. Υπάρχει πολύ λάθος με τους καταλόγους ελέγχου. Έχουν ξεπεραστεί. Μπορούν να είναι μακρά και βαρετή και επαναλαμβανόμενες. Όπως όλες οι μετρήσεις, μπορούν να επικεντρωθούν σε λάθος πράγματα. Αλλά όλα αυτά τα πράγματα είναι αλήθεια για την παράκαμψη των λιστών ελέγχου επίσης, σωστά; Θέλω να πω την τρίτη φορά που έχετε κάνει το ίδιο λάθος είναι πιθανότατα η ώρα να παραδεχτείτε ότι μετά από μια λίστα ελέγχου ίσως να έχετε εξοικονομήσει χρόνο.

Ωστόσο, οι λίστες ελέγχου είναι καλές μόνο αν εφαρμοστούν και ενημερώνονται συχνά και εξακολουθείτε να είστε οι ιδιοτροπίες ενός ανθρώπου που, ας το παραδεχτούμε, δεν είναι κατασκευασμένο για να είναι τέλειο όλη την ώρα.

Το πραγματικό πρόβλημα του κόσμου

Έχουμε ένα πρότυπο Drupal εγκαταστήστε το ξεκινάμε για τους περισσότερους πελάτες που βρίσκονται στο Drupal. Αυτό περιλαμβάνει τις ενότητες, τις ρυθμίσεις, τους προεπιλεγμένους χρήστες και τα προεπιλεγμένα δεδομένα δοκιμών. Ήταν ένας κατάλογος ελέγχου, αλλά ήταν πάντα ξεπερασμένος. Έπειτα κάποιος μπήκε και το έκανε τόσο συγκεκριμένο ώστε ο καθένας, ακόμα και με περιορισμένη γνώση του Drupal, θα μπορούσε να το κάνει, έτσι όλοι οι πεθαίνουν σκληροί Drupal άνθρωποι στο κατάστημα το μισούσαν, οπότε το πήραμε έξω και τότε δεν μπορούσαμε να εκπαιδεύσουμε κανέναν καινούριο σε αυτό και μόνο οι ανώτεροι Drupal devs θα μπορούσαν να την ακολουθήσουν, οπότε ξεκινήσαμε να το κωδικοποιούμε Drush.

Ο Drush σημαίνει ότι οποιοσδήποτε με την εμπειρία του Drupal θα μπορούσε να τρέξει μερικές σειρές κώδικα και όλα θα συνέβαιναν μαγικά. Δεν υπάρχει πλέον "ανθρώπινο λάθος", είναι ένας κατάλογος ελέγχου, αλλά αντί για έναν ακατάστατο άνθρωπο που προσπαθεί να ακολουθήσει μια λίστα ελέγχου, ακολούθησε ένας υπολογιστής.

Το πρόβλημα με αυτό ήταν ότι ακόμη και η απλούστερη αλλαγή χρειάζονταν έναν προγραμματιστή και κάθε αλλαγή έπρεπε να δοκιμαστεί και έτσι αποδόθηκε αρκετά γρήγορα.

Τελικά βρήκαμε την προφανή λύση, η οποία είναι κάτι σκληρό κωδικοποιημένο στο Drush, το οποίο έκανε κάπως δύσκολο να αλλάξει.

Τώρα έχουμε απλά μια τοποθεσία που ονομάζεται "clone me" ή κάτι τέτοιο και κάθε φορά που έχουμε ένα νέο πελάτη το κάνουμε μόνο να το αντιγράψουμε. Αλλάζοντας αυτό χρησιμοποιείται για να περιλαμβάνει έναν προγραμματιστή και πολλές άλλες εργασίες, τώρα οποιοσδήποτε με τον κωδικό πρόσβασης στην ομάδα μας μπορεί να πάει και να αλλάξει κάτι. Εάν ένας σχεδιαστής θέλει διαφορετικά δεδομένα δοκιμών, το αλλάζουν και αυτό θα είναι αυτόματα στο επόμενο μας έργο. Αν ένας ΡΜ αποφασίσει ότι χρειαζόμαστε έναν άλλο προεπιλεγμένο χρήστη για εκπαιδευτικούς σκοπούς, δημιουργούν ένα και θα είναι στο επόμενο έργο μας.

"Την πρώτη φορά που κάνεις κάτι κάνεις απλά. Τη δεύτερη φορά, κάντε το και σημειώστε. Την τρίτη φορά, σταματήστε και δείτε αν είναι πραγματικά το ίδιο. Εάν πρόκειται να ξεκινήσει μια διαδικασία εξαιτίας αυτής, επειδή πιθανότατα θα υπάρξει ένας 4ος, ο 5ος και ούτω καθεξής. "- Gavin Andresen, CTO Bitcoin

Ήμασταν αρκετά τυχεροί για να έχουμε τον Gavin εδώ στο Gravity Switch για μερικά χρόνια. Συνέβαλε αρκετά στην κουλτούρα μας και στον κώδικα μας, αλλά η σοφία του για το πότε να «χαράξει» τα πράγματα και πότε να τα επεξεργαστεί είναι κάτι που πραγματικά άλλαξε τον τρόπο προσέγγισης της τεκμηρίωσης.

Ο Γκάβιν μας δίδαξε ότι ο καλός κώδικας είναι αυτο-τεκμηριωμένος.

Οι 10 εντολές της τεκμηρίωσης

  1. Δεν πρέπει να υπερ-τεκμηριώσετε - Αν χρειάζεστε περισσότερο χρόνο για να τεκμηριώσετε παρά για να κάνετε, είστε υπερ-τεκμηρίωση.
  2. Θα αυτοματοποιήσετε πριν από το έγγραφο - Βγάλτε τον ανθρώπινο παράγοντα όποτε είναι δυνατόν.
  3. Δεν πρέπει να διασκεδάζετε με το ίδιο πράγμα τρεις φορές - Αν έχετε βρωμίσει ή πρέπει να καταλάβετε το ίδιο πράγμα δύο φορές, ήρθε η ώρα να κάνετε διαδικασίες.
  4. Εάν πρόκειται να αποτύχει, το κάνει να αποτύχει σε μεγάλο βαθμό - Τα πιο περίπλοκα πράγματα είναι τα πράγματα που σας λείπει ο πρώτος (και ακόμη και ο 10ος) χρόνος που τα εξετάζετε. Εάν έχετε τη δυνατότητα να δημιουργήσετε μια διαδικασία που θα σταματήσει τη γραμμή συναρμολόγησης ή θα συντρίψει τον ιστότοπό σας σε περίπτωση αποτυχίας ή κάποιας που θα δημιουργήσει ένα ελαφρύ σφάλμα, επιλέξτε πάντα "κατεβάστε το site" επειδή τουλάχιστον θα εντοπίσετε το πρόβλημα την πρώτη φορά .
  5. Θα τοποθετήσετε τη διαδικασία εκεί που πρέπει να το περάσετε - γιατί πρέπει να βρεθεί.
  6. Ιδιοκτησία - Όταν ακολουθείτε μια διαδικασία, να έχετε κατά νου ότι η δουλειά σας είναι να έχετε το καλύτερο αποτέλεσμα. Δεν πρόκειται να ακολουθήσετε τη διαδικασία. Προσέξτε πάντα με σκεπτικισμό και κοιτάξτε με κριτικό πνεύμα τα αποτελέσματα.
  7. Παραδέξτε πότε δεν λειτουργεί - Μερικές φορές τα πράγματα μπορεί να φαίνονται τα ίδια, αλλά δεν είναι. Στον κόσμο μας, χρειαζόμαστε πάντα τα τυποποιημένα δεδομένα δοκιμής, αλλά η διαδικασία για τη δημιουργία αυτού στο WordPress είναι τελείως διαφορετική από τη δημιουργία του στο Drupal, οπότε χρειαζόμαστε εντελώς διαφορετικές διαδικασίες.
  8. Επιδιορθώστε το γρήγορα - Εάν η διαδικασία σας είναι ξεπερασμένη, μην παραβλέπετε μόνο το ζήτημα και την πτέρυγα, ή επιλέξτε και επιλέξτε τα μέρη που θέλετε να ακολουθήσετε. Επιδιορθώστε το ως εσείς. Θα σας διαρκέσει μόνο λεπτά για να πετύχετε στις περισσότερες περιπτώσεις και αυτά τα λεπτά θα μετατραπούν σε ώρες την επόμενη φορά που εσείς ή κάποιος άλλος θα χρησιμοποιήσει τη διαδικασία.
  9. Επιλέξτε τις μάχες σας - ο Steve Krug (ο κύριος της χρηστικότητας) λέει ότι πρέπει να δοκιμάζετε συχνά. Βρείτε το μεγαλύτερο σας πρόβλημα. Κάνετε το LEAST ποσό εργασίας που μπορείτε να κάνετε έτσι ώστε να μην είναι πλέον το μεγαλύτερο πρόβλημα και στη συνέχεια να επαναλάβετε. Δεν προσπαθείτε να βγείτε από το σύστημα, προσπαθείτε να πάρετε το WHOLE σύστημα για να τρέξει καλύτερα.
  10. Επανεξέταση - Εάν έχετε χρησιμοποιήσει μια διαδικασία δεκάδες φορές και δεν την έχετε αλλάξει, θα πρέπει να σκεφτείτε πώς μπορείτε να την καταστήσετε πιο αποτελεσματική ή αν πρέπει απλά να την αυτοματοποιήσετε.