Αυτό είναι ζόρικο.
Ας προσπαθήσω να το εξηγήσω με μια εύκολη, αρχικά, ερώτηση:
Όταν σας ζητάνε να υπολογίσετε το χρόνο που θα σας πάρει για να ολοκληρώσετε μια εργασία, ή το κόστος που αυτή συνεπάγεται, ΠΟΙΟ είναι το πράγμα που φαντάζεστε ότι σας ζητείται να υπολογίσετε;
“Το κόστος και το χρόνο”, ακούω να βουϊζει το πλήθος των ταλαιπωρημένων developers από τα βάθη των μπουντρουμιών, με την ηχώ των κουρασμένων βογγητών τους να αντανακλά στα ξεχασμένα builds και τα σπασμένα compiles προσδίδοντας μια εξωπραγματική, σχεδόν τρομακτική αύρα στην ατμόσφ...ε,γκουχ. Αυτό.
Σωστά;
ΛΑΘΟΣ.
Αν η ερώτηση έχει τεθεί από μια Αντίστροφη Πυθία, τότε η ερώτηση είναι ρητορική. Δεν χρειάζεται, στην πραγματικότητα, να υπολογίσετε τίποτα. Είναι ήδη υπολογισμένο για εσάς. Αυτό όμως που χρειάζεται να κάνετε είναι να μαντέψετε εσείς ΠΟΙΑ ΕΙΝΑΙ Η ΕΡΓΑΣΙΑ.
Εξηγούμαι:
Η Αντίστροφη Πυθία ενδέχεται να είναι το αφεντικό, ο Project Manager, ο πωλητής, ο πελάτης ή και όλοι αυτοί μαζί. Όποιος και να παίζει αυτό το ρόλο, ένα πράγμα έχει στο μυαλό του: ΞΕΡΕΙ ότι πρέπει να φέρει ένα αποτέλεσμα, ξέρει εκ των προτέρων ΠΟΣΟ θέλει να του κοστίσει αυτό το αποτέλεσμα, και ΔΕΝ ΕΧΕΙ ΤΗΝ ΠΑΡΑΜΙΚΡΗ ΙΔΕΑ για το τι απαιτείται για να φτάσει σε αυτό το αποτέλεσμα.
Έτσι λοιπόν έχουμε συνήθως κάτι σαν την παρακάτω στιχομυθία, στο παράδειγμά μας μεταξύ του συμπαθούς developer Ζαχαρία Δεντοφτιάχνω και του παρά τρίχα συμπαθούς Project Manager Πολύξερου Τοθελωχθες (η τρίχα από καραβόσκοινο):
ΠΞΧ: Λοιπόν, Ζαχαρία, πόσο λες να κοστίσει να προσαρμόσουμε την εφαρμογή τιμολόγησης που έχουμε φτιάξει ώστε να υπολογίζει real-time πορείες σύγκρουσης μετεωριτών σε σχέση με τις τροχιές των τηλεπικοινωνιακών δορυφόρων;
ΔΤΦ: (Με βλέμμα απορίας σαν σουρικάτα που παρακολουθεί εισαγωγή στην κβαντική φυσική) Τι ακριβώς χρειάζεται να κάνω για να το κάνω αυτό, πλην του να ξαναγράψω τα πάντα από την αρχή αγνοώντας τελείως την εφαρμογή τιμολόγησης;
ΠΞΧ: Ελα, έλα, υπερβολές...μια φορμίτσα tweak από εδώ, ένα table αλλαγή από εκεί και τσακ, έτοιμο. Αυτό που μου έχουν πει είναι οτι θα χρειαστεί να επισκεφθείς μερικές εγκαταστάσεις ώστε να εγκαταστήσεις εσύ την εφαρμογή εκεί μια και είναι ευαίσθητα δεδομένα.
ΔΤΦ: Ναι, αλλά πόσες;
ΠΞΧ: Ε, δεν φαντάζομαι πολλές.
ΔΤΦ: Και σε τι συστήματα θα την εγκαταστήσω;
ΠΧΞ: (Υποτιμητικό ανασήκωμα του φρυδιού, όμοιο με αυτό που θα έκανε ένας Νίντζα αν έπρεπε να απαντήσει στην ερώτηση "ποιό είναι το αγαπημένο σας χρώμα") Ε, πιστεύω οτι θα έχουν Windows...
ΔΤΦ: Φαντάζεσαι και πιστεύεις. Όμορφα. και τι Windows “φαντάζεσαι” οτι θα έχουν;
ΠΧΞ: Υπάρχουν πολλά;
ΔΤΦ: Εσύ τι φαντάζεσαι;
ΠΞΧ: …
ΔΤΦ: Για να υπολογίσω κόστος και χρόνο θα πρέπει να ξέρω σε πόσα μέρη θα πρέπει να πάω, πόσο απέχουν το ένα από το άλλο, και τι θα έχω μαζί μου - άλλα πράγματα χρειάζομαι αν έχουν Windows XP, άλλα πράγματα αν έχουν Windows 8… επίσης προδιαγραφές για τη μετατροπή της εφαρμογής έχουμε;
ΠΞΧ: Ωχου, πολύ λεπτομέρεια βρε παιδί μου. Αφού σου εξήγησα τι πρέπει να κάνεις. Βγάλε μου εσύ ένα κόστος για τη μετατροπή με ο,τι νομίζεις οτι χρειάζεται να γίνει, και υπολόγισε εσύ πόσα μέρη θα χρειαστεί να επισκεφθείς και τι θα έχουν.
ΔΤΦ: (Βαθύς αναστεναγμός που εκτοπίζει τρία περιπλανώμενα μυγάκια κάνοντάς τα να χάσουν για πάντα τον προσανατολισμό τους και να καταλήξουν στο περιθώριο της μυγοκοινωνίας) Μα, χωρίς προδιαγραφές, θα πρέπει να υποθέσω ότι θέλουν οτιδήποτε μπορεί να υλοποιηθεί. Επίσης, πώς να μαντέψω σε πόσες τοποθεσίες θα εγκατασταθεί και που βρίσκονται αυτές; Δεν μπορείς να πάρεις τις πληροφορίες από τον πελάτη;
ΠΞΧ: Ε, δεν θέλω να τους ενοχλήσω με τέτοιες λεπτομέρειες.
ΔΤΦ: ΛΕΠΤΟΜΕΡΕΙΕΣ;
ΠΞΧ: Εγώ κόστος θέλω, για να το πω στον πελάτη. Τόσο δύσκολο είναι;
ΔΤΦ: Τελος πάντων, ας πούμε λοιπόν ότι θα χρειαστεί να ξαναγράψω όλο το UI από την αρχή, κρατώντας ορισμένα κομμάτια του core…
ΠΞΧ: Ωπα, περίμενε, Ζαχαρία. ΓΙΑΤΙ να ξαναγράψεις όλο το UI; Μια απλή αλλαγή θέλουν οι άνθρωποι!
ΔΤΦ: (Ελαφρώς έξαλλος, ευτυχώς χωρίς κάτι βαρύ ή κοφτερό στην άμεση οπτική του εμβέλεια) Γιατί αλλάζουμε μια εφαρμογή που κάνει ΚΑΤΙ για να κάνει ΚΑΤΙ ΑΛΛΟ! Και επειδή δεν ξέρω τι είναι το ΚΑΤΙ ΑΛΛΟ, υπολογίζω το κόστος σχεδόν σαν να τη γράφω από την αρχή!
ΠΞΧ: Μα δεν την γράφεις από την αρχή! Αφού ήταν σαφές; Να τη μετατρέψουμε.
ΔΤΦ: Και ΠΟΥ είναι οι προδιαγραφές;
ΠΞΧ: Θα μας τις δώσουν μετά.
ΔΤΦ: ΜΕΤΑ; Άμα δεν τις έχω όμως, υπολογίζω το μέγιστο effort.
ΠΞΧ: Και ποιό είναι αυτό;
ΔΤΦ: Ας πούμε περίπου 1.000.000 ευρώ.
ΠΞΧ: (Αλλαγή χρώματος σε βαθύ πράσινο με πινελιές τυρκουάζ) ΤΙ;
ΔΤΦ: Αυτό είναι το μέγιστο effort. Μαζί με τα αεροπορικά εισιτήρια για Νεβάδα.
ΠΞΧ: Νεβ...τι; Ποιός;
ΔΤΦ: Κάνω την παραδοχή ότι θα ξαναγράψω από την αρχή το software, θα χρειαστεί να κάνω patch σε όλους τους δορυφόρους, καθώς και ότι θα χρειαστεί τουλάχιστον μια επίσκεψη στην Area 51 σε σύνολο περίπου 10 επισκέψεων σε διάφορα πυρηνικά καταφύγια ανά τον κόσμο, όπου θα πρέπει να εγκαταστήσω το software σε υπολογιστές Amiga 500, όπως “φαντάζομαι”.
ΠΞΧ: Μα ας είμαστε λογικοί…
ΔΤΦ: Εσύ το ξεκίνησες!
ΠΞΧ: Ωραία. Ακου. Βγάλε μου ένα max κόστος για προσαρμογή στο υπάρχον και ένα max κόστος για εγκατάσταση.
ΔΤΦ: Σε πόσα μέρη εγκατάσταση;
ΠΞΧ: Υπολόγισε εσύ πόσα μέρη max πιστεύεις.
ΔΤΦ: Μεγάλο δρόμο θα διαβείς.
ΠΞΧ: Ε;
ΔΤΦ: Τίποτα, κάτι δικά μου. Ωραία. Εκτιμώ λοιπόν ότι θα μας κοστίσει περίπου 10.000 ευρώ το κομμάτι της προσαρμογής και άλλα 10.000 ευρώ η εγκατάσταση, σύνολο 20.000 ευρώ και χρόνος 6 μήνες.
ΠΞΧ: (Κίτρινος σαν πατατάκι) Μα αυτά τα νούμερα είναι απαράδεκτα!
ΔΤΦ: Βάσει ΠΟΙΩΝ προδιαγραφών είναι απαράδεκτα;
ΠΞΧ: Εεεεεε...μαααα...μα ο πελάτης δεν πρόκειται να το δεχτεί ποτέ!
ΔΤΦ: Αν δεν πρόκειται να το δεχτεί είναι γιατί περιμένει κάτι λιγότερο από αυτό που φαντάζομαι εγώ. ΓΙΑΤΙ ΔΕΝ ΤΟΝ ΡΩΤΑΜΕ;
ΠΞΧ: Οπως σου είπα…
ΔΤΦ: Ναι, ναι, δεν θέλεις να τον ζαλίζεις με λεπτομέρειες…
ΠΞΧ: Οτιδήποτε πάνω από 1000 ευρώ και δυο εβδομάδες δουλειά θα το απορρίψει ο πελάτης!
ΔΤΦ: Αρα θέλεις να σου προτείνω κόστος 1000 ευρώ και χρόνο δύο εβδομάδες!
ΠΞΧ: Οοοοοχι, θέλω να μου πείς πόσο πιστεύεις ΕΣΥ ότι θα κοστίσει!
ΔΤΦ: 20000 ευρώ και 6 μήνες.
ΠΞΧ: Μα σου εξήγησα, δεν γίνεται!
ΔΤΦ: Αρα θέλεις να μου κοστίσει όσο θέλεις εσύ να κοστίσει!
ΠΞΧ: Μα για να το πάρει ο πελάτης…
ΔΤΦ: Και αν ο πελάτης με στείλει στην Ανταρκτική να κάνω εγκατάσταση; Αν με στείλει στο Διεθνή Διαστημικό Σταθμό; Αν με στείλει στον Αρη;
ΠΞΧ: Μη λες βλακείες, δεν υπάρχει κάτι στην Ανταρκτική.
ΔΤΦ: Α μπράβο σου.
ΠΞΧ: (Casual - απελπισμένο - βλέμμα που προσπαθεί να δείξει μη απελπισμένα casual) Ε, γκουχ, δηλαδή…
ΔΤΦ: Αρα τι κάνουμε;
ΠΞΧ: Κοίτα, η του λέμε 1000 ευρώ και δυο εβδομάδες και το παίρνουμε ή το χάνουμε.
ΔΤΦ: Αρα προς τι η συζήτηση; Αφού ούτως η άλλως αυτό θα του πούμε!
ΠΞΧ: Ε, ήθελα μια δεύτερη άποψη…
ΔΤΦ: ΚΑΙ ΤΗΝ ΠΗΡΕΣ! ΚΑΙ ΠΑΛΙ ΒΡΙΣΚΕΣΑΙ ΜΕ ΜΙΑ ΑΠΟΨΗ! ΤΗ ΔΙΚΗ ΣΟΥ!
Αυτή είναι, φίλοι μου, η Αντίστροφη Πυθία. Οχι, δεν είναι στάση του Καμα Σούτρα (αν και μπορεί να εκληφθεί και ως τέτοια ορισμένες φορές). Είναι ο όρος με τον οποίο χαρακτηρίζουμε τον προϊστάμενο που μας καλεί να μαντέψουμε, ουσιαστικά, αν θα πληρωθούμε για την εργασία μας ως προγραμματιστές ή ως συλλέκτες κονσερβών σε σκουπιδότοπους με ραδιενέργεια που υπερβαίνει τα επιτρεπτά όρια και κατοικημένους από random άγρια σαρκοβόρα ζώα.
Δεν μπορούμε να κάνουμε απολύτως τίποτα προκειμένου να εξαλείψουμε αυτό το φαινόμενο. Το μόνο που μπορούμε να κάνουμε είναι να ευχόμαστε τέτοιοι τύποι να μην αποφασίσουν αλλαγή αντικειμένου. Προς το παρόν τα κρούσματα περιορίζονται μόνο στην Πληροφορική και συγγενείς κλάδους, φανταστείτε όμως μια Αντίστροφη Πυθία πωλητή σε γνώστό κατάστημα επίπλων DIY: “Η τιμή είναι 100 ευρώ, με αυτά παίρνετε μια τάβλα, ένα ροδάκι, δυο βίδες και δύο πόδια άνισου ύψους, βρείτε μόνοι σας τι μπορείτε να φτιάξετε, ορίστε το ταμείο, ευχαριστούμε που μας προτιμήσατε”.