
Η ανθρώπινη πλευρά της συνεργασίας σε ομάδες λογισμικού
Ο κώδικας είναι απολίθωμα των συζητήσεων που τον γέννησαν. Δείτε τι ζητά στην πράξη η συνεργασία ομάδας λογισμικού από τους ανθρώπους πίσω της.
Περιεχόμενα
- Η Ψυχολογική Ασφάλεια Έρχεται Πρώτη
- Ο Γραπτός Λόγος Κλιμακώνεται
- Οι Μικρές Ομάδες Επικοινωνούν Καλύτερα
- Η Αξιολόγηση Κώδικα Δείχνει την Κουλτούρα
- Η Διαφωνία Κάνει Καλό
- Το Κοινό Πλαίσιο Είναι Μέρος της Δουλειάς
- Ανακατέψτε τις Ειδικότητες
- Η Απομακρυσμένη Συνεργασία Θέλει Σκόπιμη Προσπάθεια
- Γράψτε για την Ομάδα που Έρχεται Αργότερα
- Γιορτάστε τη Συνεργασία Δημόσια
- Οι Συνήθειες Νικούν τα Εργαλεία
- Πώς Δουλεύουμε Εμείς
- Τελικές Σκέψεις
Η συνεργασία ομάδας λογισμικού είναι βαθιά ανθρώπινη τέχνη, όχι πρόβλημα εργαλείων. Όσα επιβιώνουν, δηλαδή ο κώδικας, τα αρχεία σχεδίασης και το ιστορικό των commit, είναι απολιθώματα των συζητήσεων που τα γέννησαν. Όταν οι συζητήσεις πάνε καλά, το σύστημα δείχνει κοινή κρίση. Όταν πάνε άσχημα, το ίδιο σύστημα κρύβει παλιές διαφωνίες ως τεχνικό χρέος.
Αυτό το άρθρο καλύπτει την ανθρώπινη πλευρά που τα τεχνικά βιβλία προσπερνούν. Είμαστε μια μικρή ομάδα, οπότε κάθε αδυναμία της ομάδας φαίνεται αμέσως. Παρακάτω θα βρείτε δέκα συνήθειες που αντέχουν σε πραγματική πίεση.
Η Ψυχολογική Ασφάλεια Έρχεται Πρώτη
Η καλή συνεργασία ομάδας λογισμικού ξεκινά από την ψυχολογική ασφάλεια. Ένας μηχανικός που περιμένει απότομη απάντηση σταματά σιγά σιγά να ρωτά. Έτσι μικρές αμφιβολίες γίνονται ακριβά σφάλματα που κανείς δεν πρόβλεψε.
Οι υγιείς ομάδες δέχονται το «εξήγησέ μου αυτό το module» ως κανονικό αίτημα. Επειδή ο τεχνικός υπεύθυνος δίνει τον τόνο, ο τεχνικός υπεύθυνος οφείλει να ξεκινήσει πρώτος. Ένας υπεύθυνος που παραδέχεται δημόσια τα κενά του διδάσκει στους υπόλοιπους ότι η περιέργεια δεν τιμωρείται. Δείτε την έρευνα για την ψυχολογική ασφάλεια για τα στοιχεία πίσω από αυτό.
Ο Γραπτός Λόγος Κλιμακώνεται
Η γραφή είναι αυτό που επιτρέπει σε μια ομάδα να μεγαλώσει. Η προφορική κουβέντα είναι γρήγορη, όμως δεν αφήνει αρχείο. Μια σύσκεψη αποκλείει επίσης όποιον βρίσκεται σε άβολη ζώνη ώρας.
Το γραπτό υλικό ταξιδεύει πολύ πιο μακριά, όπως έγγραφα σχεδίασης, σημειώσεις σε pull request και σύντομα αρχεία αποφάσεων. Φτάνει σε νέους συναδέλφους μήνες αργότερα. Επιπλέον, η γραφή ενός επιχειρήματος απαιτεί καθαρότερη σκέψη από την προφορική διατύπωση. Αν το σχέδιο δεν χωρά σε μία γραπτή σελίδα, το σχέδιο δεν υπάρχει ακόμη.
Οι Μικρές Ομάδες Επικοινωνούν Καλύτερα
Πάνω από περίπου οκτώ άτομα, το κόστος της επικοινωνίας μεγαλώνει ταχύτερα από το αποτέλεσμα. Κάθε νέο ζευγάρι προσθέτει άλλον έναν δεσμό προς συντήρηση. Για αυτόν τον λόγο, η πιο δυνατή συνεργασία ομάδας λογισμικού γίνεται σε σχήματα τριών έως επτά μηχανικών με έναν κοινό στόχο.
Όταν ένα σχήμα πρέπει να μεγαλώσει, χωρίστε το με σχέδιο. Δώστε σε κάθε μισό ένα καθαρό όριο και μια μικρή, σταθερή διεπαφή. Αυτό δουλεύει καλύτερα από μια γεμάτη αίθουσα. Ο νόμος του Brooks έλεγε το ίδιο ήδη από το 1975.
Η Αξιολόγηση Κώδικα Δείχνει την Κουλτούρα
Η αξιολόγηση κώδικα είναι το σημείο όπου η συνεργασία ανθεί ή σαπίζει. Οι αξιολογήσεις που μπαίνουν στη σχεδίαση, στις οριακές περιπτώσεις και στα ασαφή ονόματα δυναμώνουν την ομάδα. Οι αξιολογήσεις που μαλώνουν για προσωπικό στυλ γεννούν μόνο άμυνα.
Ορίστε λοιπόν ρητούς κανόνες αξιολόγησης. Ξεχωρίστε το «πρέπει να αλλάξει» από το «σκέψου να το αλλάξεις». Ευχαριστήστε μια αλλαγή που σας έμαθε κάτι. Ο δημοσιευμένος οδηγός αξιολόγησης κώδικα της Google είναι μια λογική βάση για αντιγραφή. Σε μια δύσκολη αλλαγή, είκοσι λεπτά μαζί αξίζουν πιο πολύ από τρεις γύρους σχολίων.
Η Διαφωνία Κάνει Καλό
Μια ομάδα που συμφωνεί σε όλα είτε βαριέται να σκεφτεί είτε φοβάται. Καμία από τις δύο καταστάσεις δεν βγάζει αξιόπιστο λογισμικό. Οι δυνατές ομάδες θεωρούν πολύτιμη μια καλά θεμελιωμένη αντίρρηση, γιατί συνήθως ονομάζει έναν κίνδυνο που κανείς άλλος δεν είδε.
Δώστε λοιπόν στη διαφωνία έναν χώρο να ζήσει. Καταγράψτε την αντίρρηση, εξετάστε την σωστά και μετά αφήστε τον τεχνικό υπεύθυνο να αποφασίσει. Έπειτα όλη η ομάδα δεσμεύεται μαζί. Αυτό το τελευταίο βήμα μετρά όσο και η συζήτηση πριν.
Το Κοινό Πλαίσιο Είναι Μέρος της Δουλειάς
Ένας ταλαντούχος νεοφερμένος προσφέρει λίγα χωρίς πλαίσιο, όσο ικανός και αν είναι. Οι σοβαρές ομάδες επενδύουν στις πρώτες εβδομάδες. Πρώτα βάλτε τον νεοφερμένο δίπλα σε έναν έμπειρο μηχανικό. Μετά δώστε του μια μικρή, ασφαλή εργασία πριν από τα συστήματα παραγωγής.
Κρατήστε σημειώσεις που εξηγούν γιατί η αρχιτεκτονική μοιάζει έτσι, όχι μόνο τι κάνει. Το σκεπτικό γλιτώνει από τον επόμενο αναγνώστη ένα ολόκληρο απόγευμα. Με λίγα λόγια, το πλαίσιο δεν είναι ευγένεια. Είναι μέρος της δουλειάς του μηχανικού.
Ανακατέψτε τις Ειδικότητες
Η συνεργασία ομάδας λογισμικού βελτιώνεται απότομα όταν σχεδίαση, προϊόν και μηχανική κάθονται μαζί. Οι παραδόσεις ανάμεσα σε σιλό χάνουν λεπτομέρειες, ενώ η κοινή ευθύνη τις κρατά. Για παράδειγμα, ένας σχεδιαστής που διαβάζει pull request βλέπει το προϊόν να ξεφεύγει από το συμφωνημένο σχέδιο. Ομοίως, ένας μηχανικός σε μια συνέντευξη πελάτη μαθαίνει τις δύσκολες περιπτώσεις πριν γράψει γραμμή. Η σελίδα καριέρας μας περιγράφει τι ανθρώπους ψάχνουμε.
Η Απομακρυσμένη Συνεργασία Θέλει Σκόπιμη Προσπάθεια
Μια απομακρυσμένη ομάδα χάνει τα δωρεάν σήματα, όπως ένα σηκωμένο φρύδι ή μια κουβέντα στον διάδρομο. Τίποτα δεν τα αντικαθιστά τυχαία. Τα αγοράζετε λοιπόν επίτηδες: περισσότερο γραπτό πλαίσιο, πιο σφιχτή ατζέντα και ανοιχτές κάμερες στις κλήσεις που μετρούν.
Η απομακρυσμένη συνεργασία μπορεί να είναι εξαιρετική. Δουλεύει όμως μόνο όταν η ομάδα παραδέχεται το κόστος και το πληρώνει. Όσες ομάδες προσποιούνται ότι το κόστος είναι μηδέν απομακρύνονται αργά και σιωπηλά.
Γράψτε για την Ομάδα που Έρχεται Αργότερα
Οι μηχανικοί που χτίζουν ένα σύστημα σπάνια το συντηρούν τρία χρόνια μετά. Γράψτε λοιπόν για έναν αναγνώστη που δεν θα γνωρίσετε ποτέ. Τα σχόλια εξηγούν κίνητρο, όχι μηχανισμό. Καταγράψτε τους συμβιβασμούς πίσω από κάθε μεγάλη αρχιτεκτονική επιλογή. Ακόμη και ένα μήνυμα commit λέει μια μικρή, χρήσιμη ιστορία.
Οι ομάδες που το παραλείπουν αφήνουν κώδικα που διαβάζεται ωραία και παλεύει με κάθε αλλαγή. Η ποινή έρχεται χρόνια μετά, οπότε κανείς δεν τη συνδέει με την αρχική επιλογή.
Γιορτάστε τη Συνεργασία Δημόσια
Η κουλτούρα χτίζεται από τις ιστορίες που επαναλαμβάνει μια ομάδα. Μετά από ένα επώδυνο περιστατικό στην παραγωγή, περιγράψτε πώς ανέκαμψε η ομάδα. Ονομάστε τους ανθρώπους που έκαναν τη δουλειά. Μοιράστε επίσης τα εύσημα πλατιά όταν μια λειτουργία ενθουσιάζει τους πελάτες.
Η σιωπηλή προσπάθεια σβήνει. Η γιορτασμένη προσπάθεια συσσωρεύεται. Είναι ο φθηνότερος μοχλός ενός τεχνικού υπεύθυνου.
Οι Συνήθειες Νικούν τα Εργαλεία
Καμιά νέα πλατφόρμα δεν φτιάχνει μια ομάδα που δεν εμπιστεύεται τον εαυτό της. Μια εφαρμογή chat δεν πείθει έναν διστακτικό μηχανικό να μιλήσει. Ένας πίνακας γεμάτος κάρτες δεν μαθαίνει σε έναν κριτή να είναι ευγενικός.
Τα εργαλεία ακολουθούν τη συμπεριφορά. Διαλέξτε λίγες συνήθειες, ονομάστε τες και ξαναδείτε τες σε κάθε retro. Πετάξτε όσες σταματούν να αποδίδουν. Οι ομάδες που το κάνουν βελτιώνονται συνεχώς, κάτι ακριβώς που υποστηρίζει και το άρθρο μας για τη συνεχή μάθηση μέσα στις ομάδες ανάπτυξης.
Πώς Δουλεύουμε Εμείς
Η Square Software είναι μια μικρή ομάδα λογισμικού στην Αλβανία. Χτίζουμε προσαρμοσμένο λογισμικό και μπαίνουμε επίσης σε ομάδες πελατών ως επιπλέον χέρια. Οι χρεώσεις μας κινούνται στη ζώνη 35-55 EUR/ώρα, και κοστολογούμε κάθε έργο με προσοχή πριν δώσουμε τιμή.
Μια μικρή ομάδα κάνει αυτές τις συνήθειες φθηνές στην εφαρμογή. Γράφουμε λοιπόν περισσότερο από όσο μιλάμε, ελέγχουμε κάθε αλλαγή και μικραίνουμε την απόσταση ανάμεσα σε μια αμφιβολία και μια απάντηση. Διαβάστε περισσότερα για εμάς, δείτε πώς παρέχουμε υπηρεσίες outsourcing ή επικοινωνήστε μαζί μας.
Τελικές Σκέψεις
Τα εργαλεία θα αλλάζουν συνεχώς. Το ανθρώπινο κομμάτι όχι. Με λίγα λόγια, η συνεργασία ομάδας λογισμικού είναι ένα σύνολο συνηθειών: ασφάλεια, καθαρή γραφή, μικρά σχήματα, τίμια αξιολόγηση και μοιρασμένα εύσημα.
Τίποτα από αυτά δεν είναι περιττό βάρος. Όσες ομάδες τα αμελούν ανακαλύπτουν, λίγα χρόνια μετά, ότι η παραγωγή κόλλησε ενώ ο κώδικας έμοιαζε ακόμη καθαρός. Για ένα συγγενικό επιχείρημα, διαβάστε το άρθρο μας για τις ήπιες δεξιότητες των μηχανικών λογισμικού.
Έτοιμοι να ξεκινήσετε το έργο σας;
Ας συζητήσουμε πώς μπορούμε να βοηθήσουμε να ζωντανέψουν οι ιδέες σας με εξατομικευμένες λύσεις λογισμικού.