Η 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 για μερικά χρόνια. Συνέβαλε αρκετά στην κουλτούρα μας και στον κώδικα μας, αλλά η σοφία του για το πότε να «χαράξει» τα πράγματα και πότε να τα επεξεργαστεί είναι κάτι που πραγματικά άλλαξε τον τρόπο προσέγγισης της τεκμηρίωσης.
Ο Γκάβιν μας δίδαξε ότι ο καλός κώδικας είναι αυτο-τεκμηριωμένος.