Γιατί οι προγραμματιστές είναι τόσο σνομπ και αγενείς

Δημοσιεύτηκε από τον Thanos Nokas Πέμπτη, 27 Ιούνιος 2013 08:00

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

Τα παρακάτω είναι συλλογική εμπειρία δική μου και φίλων μου. Μπορεί να υπερβάλλω λίγο, αλλά είναι μόνο "to make a point". Είναι η καθημερινή κατάσταση που αντιμετωπίζει ένας προγραμματιστής. Διαβάστε τα και πείτε μου αν εσείς θα μπορούσατε να συγκρατήσετε τα νεύρα σας.


Διακοπή για διαφημίσεις

Το πιο βασικό! Όταν ο προγραμματιστής γράφει κώδικα δεν σκέφτεται την ίδια στιγμή τι θα πάρει μετά στο supermarket ή τι ταινίες παίζει το Village. Τα μόνα πράγματα που υπάρχουν εκείνη την στιγμή για τον προγραμματιστή σε όλο το εμφανές σύμπαν είναι μια οθόνη, ένα πληκτρολόγιο, ένα ποντίκι και ένας καφές.

Για τον προγραμματιστή αυτή η κατάσταση συγκρίνεται μόνο με... sex. Ναι, ακριβώς! Φανταστείτε εσάς να σας διέκοπτε κάποιος εκείνη την στιγμή, κάθε 5', με ερωτήσεις τύπου "Γιατί στον Opera 12.02 τα fonts φαίνονται πιο ομαλά από ότι στον Opera 12.01;", να δω μετά πως θα καταφέρνατε να παράγετε (DNA) κώδικα. Ε, για αυτό μην περιμένετε από τον προγραμματιστή να "τελειώσει" σωστά την δουλειά του, ενώ τον διακόπτετε ανά 2ms!

Για να καταλάβετε γιατί ένας προγραμματιστής νευριάζει, την επόμενη φορά που θα βρεθείτε με τον σύντροφό σας και θα ξεκινήσετε την "παραγωγή DNA κώδικα", μην ξεχάσετε να βάλετε το κινητό σας να χτυπάει ξυπνητήρι ανά 5'. Παρατηρήστε τα νεύρα σας :)


Μια μικρή αλλαγή

Είναι 11 το βράδυ και ο πελάτης θέλει στην εφαρμογή, που είναι να του παραδώσεις το επόμενο πρωί, να αλλάξεις το πεδίο αποθήκευσης της διεύθυνσης από single-select σε multi-select. Για τον προγραμματιστή αυτό πολύ πιθανόν να σημαίνει 2-3 επιπλέον πίνακες στην βάση, αλλαγές στα datasets, αλλαγές σε όλες τις φόρμες που χρησιμοποιείται το πεδίο και φυσικά σε όλες τις μεθόδους αποθήκευσης και εμφάνισης των συγκεκριμένων δεδομένων. Για τον πελάτη, είναι σαν να σου ζήτησε να αλλάξεις την στοίχιση στο word "από αριστερά" στο "κέντρο". Δεν μπορεί να καταλάβει γιατί κάτι τόσο απλό θέλει 2 μέρες development και 1 μέρα testing...

Με την ίδια λογική αν καλέσεις υδραυλικό στο σπίτι σου να εγκαταστήσει τη νέα μπανιέρα, ενώ βάζει το τελείωμα στόκου, του ζητάς να την βγάλει και τελικά να βάλει ντους...μέσα στα επόμενα 2-3'....αν γίνεται. 


Άκυρη η αλλαγή

Στο παραπάνω παράδειγμα, τελικά σε παίρνει τηλέφωνο ο πελάτης την επόμενη μέρα, ενώ έχεις ξενυχτίσει για να κάνεις την αλλαγή που ήθελε και σου λέει "Μου είπε ο γαμπρός του ξαδέρφου μου που είναι πληροφορικάριος(έχει πάρει ECDL!), ότι το multi-select είναι so 2012, οπότε θα το αφήσουμε προσωρινά ως έχει". Εδώ είναι που αρχίζεις και κατεβάζεις ότι καντήλι και μπινελίκι είχες αποθηκευμένο για παν ενδεχόμενο. 

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


Γιατί θέλει τόσο πολύ χρόνο, ο πελάτης θέλει απλά ένα site σαν το facebook

To δίδυμο Πελάτης-Αφεντικό και πολλές φορές ο project manager αδυνατούν να κατανοήσουν ότι η εμφάνιση και η λειτουργικότητα είναι δύο ξεχωριστά πράγματα. Πλέον πιστεύω ότι δεν έχουν τους απαραίτητους νευροδιαβιβαστές για την συγκεκριμένη λειτουργία.

Πάμε πάλι.....Το ότι ο γραφίστας έχει φτιάξει ένα mockup του website, σε .psd, δεν σημαίνει ότι το site είναι έτοιμο! Ο γραφίστας δεν σου δίνει classes και DB schema! Εδώ, δεν σου δίνει καν HTML...

Ήθελα να ήξερα, όλοι αυτοί που νομίζουν ότι το 99% ενός site γίνεται στο photoshop, αν πάνε να φτιάξουν σπίτι, νομίζουν ότι τελείωσαν με τα σχέδια του αρχιτέκτονα; Ή θα πάνε στον εργολάβο και θα του πουν "Ορίστε τα σχέδια, το μεγαλύτερο μέρος της δουλειάς είναι έτοιμο, μέχρι αύριο να είναι έτοιμο το σπίτι. Ευχαριστώ!"


Δεν έχει σημασία που δεν στο ζήτησα, έπρεπε να το μαντέψεις

Μερικές φορές ζητείται από τον προγραμματιστή να έχει πάρει master από το Μαντείο των Δελφών. Όταν ο πελάτης λέει "θέλω το site μου να έχει e-shop", o προγραμματιστής είναι υποχρεωμένος να καταλάβει ότι το e-shop πρέπει να υποστηρίζει 20 διαφορετικά payment gateways, 98 γλώσσες και σύνδεση με το CRM της εταιρίας που είναι φτιαγμένο για Windows 3.1. Αν ο προγραμματιστής αμελήσει ένα από τα μη-ζητούμενα-requirements, ο πελάτης έχει την συνήθεια να υπενθυμίζει πως πρέπει να δουλεύει ένας σωστός επαγγελματίας με φράσεις τύπου "Μα καλά, τι προγραμματιστής είσαι αν δεν καταλαβαίνεις τα αυτονόητα στον χώρο της πληροφορικής;;!".

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


Μα το αφεντικό είπε να το κάνουμε όσο πιο γρήγορα γίνεται

Για τον PM και το αφεντικό δεν έχει σημασία αν δουλεύει μία εφαρμογή σωστά ή αν δουλεύει γενικότερα, αρκεί να φαίνεται ότι δουλεύει στον πελάτη. Αυτό είναι το βασικό προσόν για να σε δεχθούν στην "Μυστική Αδελφότητα των PMs".

Τώρα αν με το που πατάς το κουμπί γίνεται backup της βάσης, delete και στο καπάκι restore, μετά φτιάχνονται 100 temp tables με 255 columns, εισάγεται η νέα εγγραφή 10.000 φορές και μετά σβήνονται οι 9.999, αν στον πελάτη φαίνεται ότι δουλεύει και το κουμπί είναι στρογγυλό με γκρι σκιά....τέλος!! Τέλος! Η εφαρμογή είναι άψογη. Δεν παίζει κανένα ρόλο που μετά τις 3 εγγραφές δεν θα δουλεύει τίποτα.


Τι εννοείς δεν γίνεται, το YouTube πως το κάνει

Αφεντικό: "Αν στο Youtube γίνεται να έχει live streaming με 1.000.000 χρήστες ταυτόχρονα σε 180 χώρες, δεν καταλαβαίνω γιατί δεν μπορούμε να το φτιάξουμε στο Joomla site του πελάτη;"

Προγραμματιστής: "Μα το YouTube έχει χιλιάδες servers παγκοσμίως και έχει φτιαχτεί ειδικά για αυτό και φυσικά έχει 100ντάδες προγραμματιστές που το συντηρούν καθημερινά."

Αφεντικό: "Δεν καταλαβαίνω γιατί κάνουν τόσες σπατάλες. Εμείς θα το κάνουμε με το shared hosting των 5€/μήνα που έχουμε στην Αμερική και θα το υποστηρίζεις εσύ μια χαρά."

Προγραμματιστής: ...


Δεν μπορούμε να αγοράσουμε νέα PC, θα συνεχίσουμε το mobile development σε DOS 6.22, όπως κάναμε τόσο καιρό

Επειδή για το αφεντικό η πιο απαιτητική εφαρμογή στον υπολογιστή του είναι τo excel, για κάποιο λόγο το compile που προσπαθείς να κάνεις στο web application, συνδεδεμένο με debugger, ενώ τρέχει σε VM δεν χρειάζεται, για κανένα λόγο, πάνω από 2GB RAM. Δεν έχει σημασία που κάθε αλλαγή στον κώδικα σου συνοδεύεται από 30' compile, πρέπει η εφαρμογή να είναι έτοιμη αύριο. Εν ανάγκη μην κάνεις τόσα tests. Αν χρειάζεται να κάνεις tests σημαίνει ότι δεν το έχεις φτιάξει σωστά στο κάτω κάτω...αμάν πια!


Θυμάσαι το CRM που φτιάξαμε, πρέπει να προσθέσουμε την δυνατότητα να ελέγχει τα air conditions της εταιρίας

Το τρίδυμο Πελάτης-Αφεντικό-PM πιστεύει ότι μία εφαρμογή πρέπει να είναι ο υπέρτατος ελβετικός σουγιάς. Δεν έχει καμία σημασία αν μια εφαρμογή σχεδιάστηκε με την λογική του CRM, αν τώρα ο πελάτης θέλει η εφαρμογή να περνάει τα εταιρικά αυτοκίνητα από ΚΤΕΟ, έτσι θα γίνει.

Δεν έχει "δεν μπορεί να γίνει", έπρεπε να είχε προβλεφθεί από τον προγραμματιστή. Το τρίδιμο δεν μπορεί να καταλάβει τι εννοεί ο προγραμματιστής όταν λέει ότι η εφαρμογή στο κινητό χρειάζεται επιπλέον δουλειά αν έχει φτιαχτεί ήδη το website....πριν 10 χρόνια...σε asp(σκέτο! Όχι .NET) 

Είναι σαν να καλέσεις τον υδραυλικό σπίτι σου και να του ζητήσεις να σου τροποποιήσει την μπανιέρα ώστε να μπορείς να τηγανίζεις.


Μα υποσχέθηκα στον πελάτη ότι στο e-shop που του φτιάχνουμε για το ανθοπωλείο, ο επισκέπτης θα μπορεί να μυρίσει τα λουλούδια από το σπίτι

Υπάρχει ένας τύπος πελάτη που είναι πολύ περίεργο είδος ανθρώπου, ενώ δεν μπορεί να καταλάβει τι είδους σατανική μαγεία επιτρέπει στα κινητά να έχουν real time navigation, απαιτεί το flash site, που είχε φτιαχτεί όταν το flash ήταν ακόμα trademark της Macromedia, να παίζει σε iPhone 2G και NOKIA 3210.

Και μετά έρχεται το άλλο είδος ανθρώπου ο "Homo Sales-Promisious Everythingious", το είδος αυτό είναι πιο γνωστό ως "πωλητής". Ο πωλητής είναι συνήθως το πρώτο άτομο της εταιρίας που έρχεται σε επαφή με τον πελάτη και το πιο άσχετο, στον χώρο της τεχνολογίας, σε όλη την εταιρία.

Ενώ, επειδή έχει την δυνατότητα να μην χρειάζεται να υλοποιήσει κάτι, λέει NAI σε ότι ζητήσει ο πελάτης, όσο διεστραμένο και να είναι. Δεν πα' να ζητήσει ο πελάτης ελεγχόμενη πυρηνική σύντηξη σε θερμοκρασία δωματίου, αν το συγκεκριμένο feature είναι απαραίτητο για την πώληση, θα υλοποιηθεί(από τον προγραμματιστή φυσικά).


Yoga, Pilates, CoreAlign...

...μπα δεν βοηθάνε. 

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

  • Το αφεντικό θέλει να τελειώσει γρήγορα για να πάρει τα λεφτά του
  • Ο PM έχει τόσα πολλά projects πάνω του που θέλει να βγάλει όσο πιο γρήγορα γίνεται το υπάρχον
  • Ο πωλητής θέλει να κάνει απλά την πώληση και να πάρει το ποσοστό του
  • Ο πελάτης θέλει να πάρει ένα σωστό αποτέλεσμα, αλλά για το custom -web services enabled- web site με e-shop και CRM σε συνδιασμό με iOS και Android εφαρμογή δεν είναι διατεθημένος να πληρώσει πάνω από 300€(μετά φόρου)

Κάθε φορά λοιπόν που μιλάτε με ένα προγραμματιστή και έχει νευριάσει με αυτά που του λέτε, σκεφτείτε τι από τα παραπάνω έχετε κάνει. Ρωτήστε τι είναι το πιο σωστό κατά την γνώμη του. Ειδικά αν είστε ο "πελάτης" θα σας πω ένα μυστικό, οι προγραμματιστές λένε πάντα την αλήθεια, αλλιώς θα ήταν πωλητές :)

Πριν αρχίσετε να μου την λέτε, είμαι σίγουρος ότι υπάρχουν αφεντικά που αποδέχονται την "ιδιοτροπία" του προγραμματιστή να θέλει να βγάλει σωστό κώδικα. Όπως και PMs που ήταν κάποτε προγραμματιστές και καταλαβαίνουν και φυσικά πωλητές που λένε την αλήθεια. 'Ντάξει, μην κάνω διαφήμιση τώρα...
Πάντως πελάτες που είναι διατεθημένοι να πληρώσουν όσο χρειαστεί για μια σωστή εφαρμογή δεν έχω γνωρίσει.

Thanos Nokas

Thanos Nokas

Find me on and twitter

Προσθήκη νέου σχολίου


Κωδικός ασφαλείας
Ανανέωση