Αγαπημένη φράση των απανταχού CEOs / Project Managers, που ηχεί σαν τις καμπάνες της κολάσεως στα αυτιά των δύσμοιρων developers, εκστομίζεται συνήθως αναπάντεχα και ΠΑΝΤΑ την ώρα που έχουν τον περισσότερο δυνατό φόρτο εργασίας, προκαλώντας ποικίλες αντιδράσεις όπως ακατάσχετο τρεμόπαιγμα των βλεφάρων, τάσεις τραυλισμού, εφίδρωση, κόκκινες πανάδες στο κούτελο, καθώς και μια ξαφνική αγάπη για το parkour συνδυαζόμενη με μια τάση άμεσης φυγής προς το πλησιέστερο παράθυρο / μπαλκόνι / ταράτσα, ακόμα και αν βρίσκονται στον 8ο όροφο.
Η φράση αυτή είναι εξαιρετικά μισητή, κυρίως γιατί α) ΠΟΤΕ δεν προσδιορίζεται η ώρα έναρξης του meeting και β) ΠΟΤΕ δεν προσδιορίζεται η ώρα λήξης του meeting.
Άρα λοιπόν για να φτάσουμε στο (α) θα πρέπει να υπάρξει ένα υποχρεωτικό διάστημα αναμονής ώσπου να μαζευτούν όλοι οι ταλαίπωροι σε ένα meeting room (στο οποίο όλως τυχαίως ο κλιματισμός θα είναι κλειστός, δεν θα υπάρχει ψύκτης νερού και ένας τουλάχιστον εκ των παρευρισκόμενων θα φοράει το ίδιο μπλουζάκι για 8η συνεχή ημέρα) και να αναμένουν στωϊκά την άφιξη του Project Manager, ο οποίος (και πάλι όλως τυχαίως) θα έχει εκείνη την ώρα κάποιο επείγον, σημαντικό τηλεφώνημα που θα τον κρατήσει απασχολημένο για το επόμενο δίωρο - όταν η ώρα θα είναι ήδη 8 το απόγευμα, ενώ το meeting θα έχει ανακοινωθεί από τις 12 το μεσημέρι.
(Και όλα αυτά όταν έχεις deadline ΣΗΜΕΡΑ, και ο χρόνος παρουσίας σου στο συγκεκριμένο meeting ισούται με τον χρόνο υπερωρίας που θα αναγκαστείς να κάνεις μετά τη λήξη του).
Μεταξύ των (α) και (β) υφίσταται η υποχρεωτική παρουσία του developer στο ίδιο τραπέζι μαζί με τουλάχιστον άλλους 10 νοματαίους με τους οποίους ΔΕΝ συνεργάζεται και η υποχρέωσή του να ακούσει ΟΛΑ όσα αυτοί αντιμετωπίζουν στα δικά τους projects (τα οποία ουδόλως τον ενδιαφέρουν) ώσπου να έρθει η σειρά του.
Για το (β) δεν συζητάμε καν. Υπάρχουν δύο περιπτώσεις: Είτε το meeting να λήξει αναγκαστικά επειδή απλά δεν υπάρχει κανένας στο τραπέζι που να διατηρεί ακόμα τις αισθήσεις του, είτε να λήξει επειδή “πέρασε η ώρα” και έχει φτάσει 9 το πρωι της επόμενης ημέρας.
Στο meeting αυτο καθαυτό, η διαδικασία ειναι απλή: Ο Project Manager ρωτάει έναν έναν developer με τη σειρά “πού βρίσκεται το ΧΧΧΧ”, ενώ οι υπόλοιποι παρευρισκόμενοι αρκούνται στο να δημιουργούν σπάνια έργα τέχνης στο μπλοκ σημειώσεών τους.
Και εδώ είναι το δεύτερο στοιχείο που κάνει αυτά τα meetings εφιαλτικά. Το πρόσχημα είναι “ο συντονισμός”, η ουσία όμως του meeting είναι ότι πρόκειται για μια ομαδική ανάκριση. Και μάλιστα πολύ φτωχή σε περιεχόμενο. Ας δούμε ένα παράδειγμα:
PM: Πού βρισκεται το project AwesomelyBoringAccountingForms 2.0;
DEV: Εεεε, αντιμετωπίζω μερικά προβλήματα γιατί τα specs που έχω δεν περιγράφουν σωστά τα web services με τα οποια θα πρέπει να επικοινωνεί η εφαρμογή και η δομή της database δεν είναι….
PM: Καλά, καλά, μην αρχίζεις τα τεχνικά, εγώ εννούσα πού βρίσκεται.
DEV: Μα…αυτό προσπαθώ να εξηγήσω...
PM: Δεν με κατάλαβες, αυτό που θέλω να μάθω ειναι ΠΟΤΕ ΘΑ ΕΙΝΑΙ ΕΤΟΙΜΟ.
DEV: Μα αυτή δεν ήταν η ερώτηση που κάνατε στην αρχή…
PM: Κοίταξε, έχω εδώ 10 άτομα και ο καθένας έχει 1-2 projects τα οποία πρέπει να μας πει πού βρίσκονται. Θα μας πάρει πολλές ώρες αν μπαίνουμε σε λεπτομέρειες. Αρα, ΠΟΤΕ ΘΑ ΕΙΝΑΙ ΕΤΟΙΜΟ;
DEV: Εεεε, θα ήταν έτοιμο σήμερα, αν δεν είχαμε αυτό το meeting…
PM: Δηλαδή θα είναι έτοιμο σήμερα, μόλις τελειώσουμε αυτό το meeting! Τέλεια! Επόμενος!
Στην ουσία, καμία χρήσιμη πληροφορία δεν ανταλάσσεται και καμία ουσιαστική ενέργεια δεν αποφασίζεται, μια και “τα τεχνικά” δεν αφορούν τον “ανακρίνοντα”. Ο μόνος σκοπός των meetings “συντονισμού” είναι η απόφαση για το ποιό project θα πρέπει να δουλευτεί υπερωριακά, υπερ-υπερωριακά ή επί 24ώρου βάσεως με τους developers δεμένους σε καρέκλες με κάθισμα από καρφιά, μαστιγωνόμενους σε τακτική βάση από ευμεγέθεις μυώδεις μπράβους και στερούμενους τροφής και νερού ώσπου να τρέξει το build χωρίς σφάλματα.
Αν, παρ’ελπίδα, κάποιος κακόμοιρος developer ΤΟΛΜΗΣΕΙ να ζητήσει βοήθεια για το έργο στο οποίο απασχολείται, ουαί! Ποιός είδε τον Project Manager και δεν τον φοβήθηκε! Παράδειγμα:
PM: Πού βρίσκεται το project InsaneDatabaseImportFromIncompleteOCR που πρέπει να παραδοθεί αύριο;
DEV: Ε, γκουχ, ναι, θα χρειαστώ τη βοήθεια ενός ακόμα ατόμου για να ταξινομήσω το πρωτότυπο υλικό, μια και μου έχει παραδοθει σε 40 κούτες βάρους 25 κιλών η κάθε μία, και πρέπει να σκανάρουμε τα έγγραφα που περιέχονται εκεί σε χρονολογική σειρά….
PM: Εγώ δεν ρώτησα αυτό.
DEV: Και τι ρωτήσατε;
PM: ΠΟΥ ΒΡΙΣΚΕΤΑΙ το project.
DEV: Μα αυτό προσπαθώ να πω, χρειάζεται να γίνει μια εργασία για να ταξινομηθεί το πρωτότυπο υλ…
PM: Άνθρωπέ μου, ΜΙΛΑΣ ΕΛΛΗΝΙΚΑ; ΠΟΤΕ ΘΑ ΕΙΝΑΙ ΕΤΟΙΜΟ; Μην καθυστερείς το meeting!
DEV: Μα αν δεν έχω βοήθεια δεν…
PM: “Δεν”; ΑΡΝΗΤΙΚΟΤΗΤΑ;!; Ακουσε, στην εταιρία μας όλοι έχουμε “can-do attitude”. Δεν κάνουμε αυτό το meeting για να εκφράσεις την απαισιοδοξία σου δημοσίως, επηρεάζοντας τους άλλους συναδέλφους! Αυτό είναι ένα meeting συντονισμού, δεν μπορούμε να ασχολούμαστε με την κάθε μικρή λεπτομέρεια! Έχουμε και δουλειές να κάνουμε!
DEV: Εεεε, εντάξει, αν δουλέψω 30 ώρες σερί με κίνδυνο υπερκόπωσης, εμφάνισης κήλης και αύξησης της μυωπίας μου κατά 5 βαθμούς περίπου ίσως μέχρι αύριο μπορέσω να τα σκανάρω...
PM: Αύριο θα είναι έτοιμο λοιπόν! Τέλεια! Επόμενος!
ΟΜΩΣ, αν ο Project Manager φάει κόλλημα με κάποια εντελώς ασήμαντη λεπτομέρεια αποφασίζοντας ταυτόχρονα να διερευνήσει τεχνικά το ζήτημα, τότε τα πράγματα αλλάζουν άρδην. Για παράδειγμα:
PM: Και πού βρίσκεται η ενημέρωση της database εφαρμογής;
DEV: Πάει πολύ καλά, και κατά πάσα πιθανότητα θα παραδώσουμε στην ώρα μας. Αρκεί να καταφέρουμε να ολοκληρώσουμε σύντομα την αρχική καταχώρηση των στοιχείων των πελατών και..
PM: Για ένα λεπτό, δεν υποτίθεται ότι τα στοιχεία αυτά σας είχαν δοθεί εξ’αρχής;
DEV: Ναι, αλλά είχαν δοθεί σε ένα format που χρειαζόταν επεξεργασία, μια και πρέπει να διαχωριστούν σε δύο συσχετιζόμενους πίνακες στη database..
PM: ΓΙΑΤΙ να διαχωριστούν σε δύο πίνακες; Αφού κάθε γραμμή αφορά ένα μόνο πελάτη!
DEV: Κοιτάξτε, είναι τεχνικό το ζήτημα, υπάρχουν ιστορικά μεταβολών στα στοιχεία του πελάτη τα οποία πρέπει να καταχωρηθούν σε δεύτερο πίνακα με σχέση 1-n με τον πρώτο…
PM: Και ποιός ο λόγος; Αφού θα μπορούσες να έχεις ένα πίνακα μόνο με πολλαπλά πεδία μια και οι μεταβολές δεν ξεπερνούν ποτέ ένα συγκεκριμένο αριθμό, και να έχεις κώδικα που θα αποφασίζει τι θα δείξει κάθε φορά…(αρχίζει να σχεδιάζει διαγράμματα στο χαρτί για το επόμενο μισάωρο, αφήνοντας τους πάντες σε αναμονή). Ορίστε, κοίτα εδώ...δημιουργείς ένα πίνακα που θα έχει αυτές τις στήλες, τον συνδέεις με foreign key με τις πωλήσεις ετσι, φτιάχνεις αυτό το index εδώ...
DEV: Εεεεε, δεν ειναι ΑΚΡΙΒΩΣ βιώσιμη αυτή η σχεδίαση, γιατί το referential integrity…
PM: ΜΗΝ ΜΟΥ ΑΡΧΙΖΕΙΣ ΤΑ ΤΕΧΝΙΚΑ! Πάλι άρχισες τα τεχνικά; ΠΟΤΕ ΘΑ ΕΙΝΑΙ ΕΤΟΙΜΟ;
Και ούτω καθ’εξής.
Τα meetings αυτά δεν έχουν λόγο ύπαρξης.
Τα meetings αυτά δεν είναι meetings. Ειναι αναφορές λόχου.
Τα meetings αυτά είναι για το σύνολο των λογικών meetings ό,τι είναι το τσιμέντο ταχείας πήξεως για τις σάλτσες μακαρονάδας.
Τα meetings αυτά είναι πιό επικίνδυνα για τη σωματική και ψυχική σου υγεία από ο,τι το να κάνεις bungee jumping στους καταρράκτες του Νιαγάρα δεμένος με πετονιά κρατώντας στο ένα χέρι ένα τσιγάρο και στο άλλο μια μποτίλια ουίσκυ κακής ποιότητας, έχοντας προηγουμένως φάει ένα γουρουνόπουλο μαζί με τις πατάτες.
Έρευνες έχουν δείξει ότι η διεξαγωγή meetings όπως αυτά που περιγράφονται στην ανωτέρω ανάλυση σε συχνότητες μεγαλύτερες από κάποιο νούμερο που ακόμα δεν έχει καθοριστεί έχει ένα αποτέλεσμα που θα διευκρινιστεί όταν τελειώσει το meeting συγχρονισμού που ξεκίνησε αναπάντεχα πριν από 3 μήνες ο Project Manager του ερευνητικού ινστιτούτου, και αφού τα δύο τρίτα των συμμετεχόντων σε αυτό πάρουν εξιτήριο από το τοπικό ίδρυμα αντιμετώπισης βαρέων ψυχιατρικών περιστατικών και είναι ξανά σε θέση να αρθρώσουν τρεις λέξεις σε σειρά ώσπου να σχηματίσουν πρόταση.
(Δεν γράφω άλλα, γιατί έχω meeting συγχρονισμού σε κάποιο διάστημα από τώρα ως και σε 3 ώρες από τώρα. Τα λέμε ξανά το ερχόμενο Πάσχα).