Προγραμματισμός

GitHub για τους υπόλοιπους από εμάς

Υπάρχει ένας λόγος για τον οποίο οι προγραμματιστές λογισμικού ζουν στα κορυφαία όρια ενός άνισου κατανεμημένου μέλλοντος: Τα προϊόντα εργασίας τους ήταν πάντα ψηφιακά αντικείμενα και από την αρχή των δικτύων, οι διαδικασίες εργασίας τους συνδέθηκαν.

Τα εργαλεία που επιτρέπουν στους προγραμματιστές λογισμικού να λειτουργούν και οι πολιτισμοί που περιβάλλουν τη χρήση αυτών των εργαλείων τείνουν να βρουν το δρόμο τους στο mainstream. Φαίνεται προφανές, αναδρομικά, ότι το ηλεκτρονικό ταχυδρομείο και τα άμεσα μηνύματα - και τα δύο που χρησιμοποιούν οι προγραμματιστές πριν από οποιονδήποτε άλλο - θα έφταναν στις μάζες. Αυτοί οι τρόποι επικοινωνίας ήταν σχετικοί με όλους.

Είναι λιγότερο προφανές ότι το Git, το εργαλείο που εφευρέθηκε για να συντονίσει την ανάπτυξη του πυρήνα Linux και το GitHub, η κουλτούρα που βασίζεται σε εργαλεία που την περιβάλλει, θα είναι εξίσου σημαντική. Οι περισσότεροι άνθρωποι δεν κάνουν κώδικα για τα προς το ζην. Όμως, καθώς τα προϊόντα εργασίας και οι διαδικασίες κάθε επαγγέλματος ψηφιοποιούνται όλο και περισσότερο, πολλοί από εμάς θα στραφούν σε εργαλεία που έχουν σχεδιαστεί για να συντονίσουν το έργο μας σε κοινά ψηφιακά αντικείμενα. Αυτός είναι ο λόγος για τον οποίο το Git και το GitHub βρίσκουν το δρόμο τους σε ροές εργασίας που παράγουν αντικείμενα εκτός από τον κώδικα ή επιπλέον του κώδικα.

Όπως αναφέρεται στα Wired, ReadWrite και αλλού, το GitHub χρησιμοποιείται για τη διαχείριση της συνεργατικής ανάπτυξης συνταγών, μουσικών παρτιτούρων, βιβλίων, γραμματοσειρών, νομικών εγγράφων, μαθημάτων και σεμιναρίων και συνόλων δεδομένων. Δεδομένης της περίφημης πολυπλοκότητας του Git, πώς είναι δυνατόν αυτό;

Ένας λόγος είναι ότι το GitHub αποκάλυψε σταδιακά περισσότερες από τις υποκείμενες δυνατότητες του Git στη διεπαφή Ιστού του. Ένα άλλο είναι η εμφάνιση εφαρμογών Web που χρησιμοποιούν το GitHub ως πλατφόρμα. Τότε υπάρχει ο πολιτιστικός παράγοντας: Το GitHub ενσαρκώνει έναν συγκεκριμένο τρόπο συνεργασίας. Ο Dave Winer το περιγράφει με τη φράση «αφηγήστε τη δουλειά σας». Έχω χρησιμοποιήσει "παρατηρήσιμη δουλειά". Το κίνημα του Responsive Organisation γιορτάζει τη «διαφάνεια έναντι της ιδιωτικής ζωής». Για τον κυβερνητικό ευαγγελιστή του GitHub, Ben Balter, είναι "ανοιχτή συνεργασία".

Η ανάρτηση ιστολογίου στην οποία ο Ben Balter προτείνει αυτόν τον όρο ήταν μη δημοσιευμένη όταν τον διάβασα. Αλλά επειδή το ιστολόγιο φιλοξενείται σε ένα δημόσιο αποθετήριο GitHub, δεν μπορούσα να διαβάσω μόνο την ανάρτηση σε πρόχειρη μορφή, αλλά και να παρακολουθήσω τη συζήτηση με προσκεκλημένους αναθεωρητές και να παρατηρήσω πώς αυτή η συζήτηση επηρέασε το προσχέδιο. Ένα αποθετήριο, φυσικά, δεν χρειάζεται να είναι ανοιχτό στο κοινό - αλλά κάθε οργανισμός θα πρέπει να θέλει τις εσωτερικές του διαδικασίες να αξιοποιήσουν αυτό το στυλ ανοιχτής συνεργασίας. Σύμφωνα με τον Brian Doll, αντιπρόεδρο στρατηγικής για το GitHub, ένας αυξανόμενος αριθμός εταιρειών κάνει ακριβώς αυτό.

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

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

«Αυτό είναι τρελό», λέει ο Μπράιαν Κούκλα. Αν είστε τράπεζα, τα εργαλεία διαχείρισης πλούτου χρησιμοποιούν οι υπάλληλοί σας και οι πελάτες σας είναι το προϊόν, πώς μπορούν αυτοί οι άνθρωποι να μην έχουν άμεσο ρόλο στη βελτίωσή του; "Με το GitHub, κάθε ενδιαφερόμενος μπορεί να γίνει συμμετέχων πρώτης κατηγορίας. Αντί να γράφουν μηνύματα ηλεκτρονικού ταχυδρομείου που βρίσκονται σε τροχιά γύρω από το σύστημα εγγραφής, μπορούν να στείλουν αιτήματα έλξης και να συζητήσουν σχετικά θέματα απευθείας σε αυτό το σύστημα.

Εξημέρωση του θηρίου Git

Το Git, ο αποκεντρωμένος κινητήρας ελέγχου έκδοσης κάτω από την κουκούλα του GitHub, λειτουργεί με τρόπους που εκπλήσσουν όχι μόνο τους μη προγραμματιστές αλλά και τους προγραμματιστές που έρχονται σε αυτό από κεντρικά συστήματα.

Σε αυτά τα συστήματα είναι μεγάλη υπόθεση να δημιουργήσετε ένα υποκατάστημα μέσα σε ένα αποθετήριο, προκειμένου να εξερευνήσετε μια εναλλακτική έκδοση ενός συνόλου αντικειμένων. Στο Git ένας κλάδος είναι μια ελαφριά κατασκευή, μια ψευδαίσθηση που δημιουργείται από κινούμενους δείκτες αντί για δεδομένα. Σε ένα συμβατικό σύστημα θα ήταν αδιανόητα δαπανηρό να δημιουργηθεί ένας κλάδος για να αλλάξει μία λέξη σε ένα έγγραφο. Το Git καθιστά αυτόν τον ελιγμό ασήμαντα φθηνό. Το GitHub μπορεί να το ενσωματώσει σε μια ροή εργασίας - το αίτημα έλξης - που ενσωματώνει τη συζήτηση για την αλλαγή και τη συνδέει με το ιστορικό αλλαγών του εγγράφου.

Οι ικανότητες πρωτεϊνών του Git το έχουν καταστήσει ένα εργαστήριο για την καινοτομία της ροής εργασίας και οι πολλές προσεγγίσεις που έχουν προκύψει παρουσιάζουν ένα άλλο επίπεδο πολυπλοκότητας. Οι μηχανισμοί διακλάδωσης και συγχώνευσης είναι αρκετά δύσκολοι, αλλά υπάρχουν επίσης διάφορες σχολές σκέψης σχετικά με το πότε και πώς να διακλαδώσετε και να συγχωνεύσετε. Όλα αυτά είναι προκλητικά για προγραμματιστές και πολύ πέρα ​​από τους περισσότερους άλλους. Πώς μπορείτε να εξημερώσετε αυτό το θηρίο, ώστε να μπορούν να συμμετέχουν μη τεχνικοί ενδιαφερόμενοι;

Απάντηση του GitHub: Βελτιώστε τον ιστότοπο για βασικές δραστηριότητες. Ένας δικηγόρος που θέλει να αλλάξει μια λέξη σε ένα νομικό έγγραφο δεν χρειάζεται να χρησιμοποιήσει τον τρομακτικό πελάτη Git. μπορεί να επεξεργαστεί το αρχείο στο πρόγραμμα περιήγησης. Αυτή η ενέργεια θα ξεκινήσει μια ροή εργασίας αιτήματος έλξης που αυτοματοποιεί τη δημιουργία ενός κλάδου αφιερωμένου στην προτεινόμενη αλλαγή. Οι GitHubbers θέλουν να πουν ότι "υπάρχει μόνο ένας τρόπος να αλλάξετε κάτι." Κανείς δεν απαιτείται να ακολουθήσει αυτόν τον χρυσό κανόνα, αλλά ακολουθεί ένα μονοπάτι με λιγότερη αντίσταση.

Ως αποτέλεσμα, όλοι σε μια εταιρεία με δυνατότητα GitHub μπορούν εύκολα να υιοθετήσουν αυτήν την καλύτερη πρακτική. "Αντί να μαζεύεις το νερό, επειδή το λογισμικό είναι τρομερό", λέει ο Brian Doll, "έχετε έναν τρόπο να το αλλάξετε." Αυτή η δέσμευση μπορεί να επεκταθεί και στους πελάτες.

Η αλλαγή του ίδιου του GitHub είναι ένα άλλο θέμα. «Σύντομα να προσληφθώ εκεί», λέει ο Γκρεγκ Γουίλσον, ιδρυτής του έργου Software Carpentry, «δεν υπάρχει τρόπος να διορθώσω τον τρόπο με τον οποίο το GitHub διαχειρίζεται τις άδειες, επιτρέπει σε έναν χρήστη να κάνει πολλαπλά πιρούνια ενός repo ή οτιδήποτε άλλο».

Όπου και αν είναι ενεργοποιημένη η αλληλεπίδραση τύπου GitHub, ο μηχανισμός αλλαγής λειτουργεί με τον ίδιο τρόπο, ανεξάρτητα από το αν η συμβολή σε μια αλλαγή είναι κώδικας ή τεκμηρίωση ή νομική συμβουλή ή επιχειρηματική προοπτική ή σχόλια πελατών.

Η αξία αυτής της κοινής σύμβασης, αναμφισβήτητα η πιο σημαντική καινοτομία του GitHub, ενισχύεται από άλλες συμβάσεις που εισάγονται από τα κοινωνικά μέσα. Στο Twitter, για παράδειγμα, μπορείτε να τραβήξετε την προσοχή ενός άλλου χρήστη Twitter αναφέροντας το όνομα χρήστη του. Αυτή η τεχνική @mention λειτουργεί στο GitHub για άτομα και για ομάδες.

Υπάρχει επίσης το GitHub Pages, μια υπηρεσία που φιλοξενεί ιστότοπους πάνω από τα αποθετήρια του GitHub. Ευνοείται από τεχνικούς μπλόγκερ που είναι εξοικειωμένοι με το Git και θέλουν να εγκαταστήσουν (και να χρησιμοποιήσουν τοπικά) μια γεννήτρια τοποθεσιών με βάση το Ruby που ονομάζεται Jekyll. Αλλά όπως ανακάλυψαν άλλοι, δεν χρειάζεται να εγκαταστήσετε το Jekyll. Είναι δυνατό να διαχειριστείτε έναν ιστότοπο σελίδων GitHub εξ ολοκλήρου στο πρόγραμμα περιήγησης και να απολαύσετε τα οφέλη του ιστορικού εκδόσεων και της συζήτησης ζητημάτων.