Το Μυστικό του Παγόβουνου, Η Αποκάλυψη

From The Joel on Software Translation Project

Jump to: navigation, search

από τον Ιωήλ Σπόλσκι
Μεταφραστής ο Δημήτρης Στάικος
Τετάρτη, 13 Φεβρουαρίου, 2002

"Δεν ξέρω τι πηγαίνει στραβά με την ομάδα ανάπτυξής μου" σκέφτεται ο CEO. "Τα πράγματα πηγαίναν τόσο καλά όταν ξεκινήσαμε αυτό το project. Κατά τις πρώτες εβδομάδες η ομάδα έγραφε σαν τρελή και έφτιαξε ένα καταπληκτικό πρωτότυπο. Αλλά από τότε τα πράγματα φαίνονται να έχουν επιβραδυνθεί τρομερά. Μάλλον δεν δουλεύουν σκληρά πλέον". Διαλέγει ένα μπαστούνι Callaway Titanium και στέλνει τον βοηθό να του φέρει μια παγωμένη λεμονάδα. "Ίσως αν απολύσω κάνα δυο τεμπέληδες, αυτό θα ανάψει μια φωτιά στα μπατζάκια τους!"

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

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

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

Από τότε που άρχισα να δουλεύω στη βιομηχανία λογισμικού, σχεδόν κάθε λογισμικό πάνω στο οποίο δούλεψα ήταν αυτό που θα ονομάζαμε "υποθετικό" λογισμικό. Δηλαδή, λογισμικό που δεν χτίζεται για κάποιον συγκεκριμένο πελάτη, αλλά χτίζεται με την ελπίδα ότι εκατομμύρια κόσμου θα το αγοράσουν. Αλλά πολλοί προγραμματιστές δεν έχουν αυτή την πολυτέλεια. Μπορεί να είναι σύμβουλοι που αναπτύσσουν ένα project για έναν πελάτη, ή μπορεί να είναι εσωτερικοί προγραμματιστές που δουλεύουν πάνω σε ένα πολύπλοκο εταιρικό απαυτούλι για το λογιστήριο (ή ό,τι είναι τέλος πάντων αυτό που κάνετε οι εσωτερικοί προγραμματιστές. Είναι σχετικά μυστήριο για μένα).

Έχετε ποτέ παρατηρήσει ότι σε αυτά τα ειδικά projects, η βασικότερη αιτία υπερβάσεων, αποτυχιών και γενικότερης δυστυχίας είναι βασικά το ότι "ο (βάλτε χαρακτηρισμό εδώ) πελάτης δεν ήξερε τι ήθελε";

Ορίστε τρεις εκδόσεις της ίδιας παθολογικής κατάστασης:

  1. "Ο καταραμένος ο πελάτης συνέχεια άλλαζε τη γνώμη του. Πρώτα ήθελε Client/Server. Μετά διάβασε για την XML στο περιοδικό της Delta Airlines και αποφάσισε ότι πρέπει να έχει και XML. Τώρα το ξαναγράφουμε ώστε να χρησιμοποιεί στρατιές από μικρά ρομποτάκια Lego Mindstorms".
  2. "Το χτίσαμε ακριβώς όπως το ζητήσανε. Το συμβόλαιο προσδιόριζε τα πάντα στην παραμικρότερη λεπτομέρεια. Παραδώσαμε ακριβώς αυτό που έλεγε το συμβόλαιο. Αλλά όταν τους το παραδώσαμε, απογοητεύτηκαν τρομερά".
  3. "Ο δύστυχος ο πωλητής μας συμφώνησε σε ένα συμβόλαιο κλειστού κόστους για να φτιάξουμε κάτι το οποίο βασικά ήταν απροσδιόριστο, και οι δικηγόροι του πελάτη ήταν αρκετά έξυπνοι ώστε να βάλουν έναν όρο ότι δεν είναι αναγκασμένοι να μας πληρώσουν μέχρι 'αποδοχής από τον πελάτη', και έτσι έχουμε αναγκαστεί να βάλουμε στο project τους μια ομάδα εννέα προγραμματιστών εδώ και δύο χρόνια και έχουμε πληρωθεί μόλις 800$".

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

Αντί γι'αυτό υποθέστε ότι θα πρέπει να φτιάξετε κάτι τελικά, και θα πρέπει να αρέσει στον πελάτη, αλλά θα εκπλαγούνε και λιγάκι. ΕΣΕΙΣ θα πρέπει να κάνετε την έρευνα. ΕΣΕΙΣ θα πρέπει να βρείτε μια σχεδίαση που να λύνει το πρόβλημα του πελάτη με έναν ικανοποιητικό τρόπο.

Βάλτε τον εαυτό σας στη θέση τους. Φανταστείτε ότι μόλις βγάλατε 100.000.000$ πουλώντας την εταιρία σας στο Yahoo! και αποφασίσατε ότι είναι η ώρα να ανακαινίσετε την κουζίνα σας. Έτσι προσλαμβάνετε έναν ειδικό αρχιτέκτονα με οδηγίες να την κάνουν "τόσο ωραία όσο η κουζίνα του Will και της Grace". Εσείς δεν έχετε ιδέα πώς να το κάνετε αυτό. Δεν ξέρεις ότι θέλεις ένα φούρνο Viking και ένα ψυγείο Subzero - αυτές δεν είναι λέξεις από το λεξιλόγιό σας. Θέλετε ο αρχιτέκτονας να κάνει κάτι καλό. Γι'αυτό τον προσλάβατε.

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

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

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

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

Ξέρετε ότι ένα παγόβουνο είναι κατά 90 τοις εκατό κάτω από το νερό; Λοιπόν, το περισσότερο λογισμικό είναι έτσι - υπάρχει μια όμορφη διαπροσωπεία με το χρήστη που παίρνει περίπου το 10 τοις εκατό της δουλειάς, και μετά το 90 τοις εκατό της προγραμματιστικής δουλειάς είναι αφανές. Και αν λάβετε υπόψιν σας το γεγονός ότι το μισό σας χρόνο τον περνάτε διορθώνοντας σφάλματα, τότε το UI παίρνει μόνο το 5 τοις εκατό της δουλειάς. Και αν περιοριστείτε στο οπτικό μέρος του UI, τα pixel, αυτό που θα βλέπατε στο PowerPoint, τότε μιλάμε για λιγότερο από 1 τοις εκατό.

Αυτό δεν είναι το μυστικό. Το μυστικό είναι ότι Οι Άνθρωποι Που Δεν Είναι Προγραμματιστές Δεν Το Καταλαβαίνουν Αυτό.

Υπάρχουν μερικά πολύ πολύ σημαντικά πορίσματα από το μυστικό του παγόβουνου.

Σημαντικό Πόρισμα Ένα. Αν δείξετε σε έναν μη προγραμματιστή μια οθόνη που έχει μια διαπροσωπεία χρήστη η οποία είναι 90 τοις εκατό χειρότερη, θα νομίσουν ότι το πρόγραμμα είναι 90 τοις εκατό χειρότερο.

Έμαθα αυτό το μάθημα σαν σύμβουλος, όταν έκανα ένα demo ενός σημαντικού web-based project για την εκτελεστική ομάδα του πελάτη. Το έργο ήταν σχεδόν 100 τοις εκατό ολοκληρωμένο. Περιμέναμε μόνο το γραφίστα μας να επιλέξει γραμματοσειρές και χρώματα και να ζωγραφίσει όμορφα τρισδιάστατα tabs. Στο μεταξύ χρησιμοποιήσαμε απλά fonts και μόνο άσπρο και μαύρο, υπήρχε αρκετός κενός χώρος στην οθόνη, και βασικά δεν φαινόταν καθόλου όμορφο. Αλλά το 100 τοις εκατό της λειτουργικότητας ήταν εκεί, και έκανε μερικά αρκετά εντυπωσιακά πράγματα.
Τι έγινε στη διάρκεια του demo; Οι πελάτες πέρασαν ολόκληρη τη συνάντηση γκρινιάζοντας για την γραφική εμφάνιση στην οθόνη. Δεν μιλούσαν καν για τη διαπροσωπεία. Μόνο για τη γραφική εμφάνιση. "Απλά δεν φαίνεται όμορφο" παραπονέθηκε ο υπεύθυνος του έργου. Αυτό ήταν το μόνο που μπορούσαν να σκεφτούν. Δεν μπορέσαμε να τους κάνουμε να σκεφτούν τη λειτουργικότητα καθόλου. Προφανώς, η διόρθωση της γραφικής σχεδίασης πήρε περίπου μια ημέρα. Ήταν σχεδόν σαν να νομίζαν ότι είχαν προσλάβει ζωγράφους.

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

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

Σημαντικό Πόρισμα Τρία. Το dotcom που έχει το μοδάτο, γυαλισμένο δικτυακό τόπο και περίπου τέσσερις σελίδες θα πάρει υψηλότερη αξιολόγηση από το υψηλά λειτουργικό dotcom το οποίο έχει αρχεία 3.700 ετών και ένα γκρίζο φόντο.

Α, περίμενε, τα dotcoms δεν αξίζουν τίποτα πια. Ξέχασέ το.

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

Τροποποιήστε την τοποθέτηση μερικών πραγμάτων, αλλάξτε την εμφάνιση και την αίσθηση και τις γραμματοσειρές, μετακινείστε το έμβλημα της εταιρείας και κάντε το μικρότερο ή μεγαλύτερο. Κάντε τους να νιώσουν σημαντικοί δίνοντάς τους να ανακατευτούν με μη κρίσιμα πράγματα. Εκεί δεν μπορούνε να κάνουν ζημιά στον χρονοπρογραμματισμό σας. Ένας καλός διακοσμητής εσωτερικών χώρων συνέχεια φέρνει στον πελάτη του δείγματα για να επιλέξει. Αλλά ποτέ δεν θα συζητούσε την τοποθέτηση του πλυντηρίου πιάτων με τον πελάτη. Πάει δίπλα στον νεροχύτη, ανεξάρτητα από το τι θέλει ο πελάτης. Δεν έχει νόημα να χάνετε χρόνο συζητώντας πού πάει το πλυντήριο πιάτων, πρέπει να πάει δίπλα στον νεροχύτη, συνεπώς μην το αναφέρετε καν. Αφήστε τον πελάτη να κάνει τα σχεδιαστικά κόλπα του κάνοντας κάτι ανώδυνο όπως το να αλλάξει 200 φορές τη γνώμη του για το αν θα χρησιμοποιήσει Ιταλικό γρανίτη ή Μεξικάνικα πλακάκια ή Νορβηγικό ξύλο για τον πάγκο της κουζίνας.

Σημαντικό Πόρισμα Πέντε. Όταν κάνετε επίδειξη, το μόνο πράγμα που έχει σημασία είναι η εμφάνιση της οθόνης. Κάντε τη 100% όμορφη.

Ούτε για ένα λεπτό μη σκεφτείτε ότι μπορείτε να τη γλιτώσετε λέγοντας σε κάποιον να σκεφτεί πόσο ωραία θα μπορούσε να ήταν. Μη νομίζετε ότι κοιτάνε τη λειτουργικότητα. Δεν το κάνουν. Θέλουν να δουν όμορφα pixel.
Ο Steve Jobs το καταλαβαίνει αυτό. Αγόρι μου πόσο το καταλαβαίνει. Οι μηχανικοί στην Apple έχουν μάθει να φτιάχνουν πράγματα τα οποία κάνουν όμορφες οθόνες, όπως τα νέα υπέροχα εικονίδια 1024x1024, ακόμα και αν σπαταλούν πολύτιμη επιφάνεια. Και οι οπαδοί των χώρων εργασίας του Linux κάνουν σαν τρελοί για τα ημιδιαφανή xterm, τα οποία δίνουν καλές οθονιές αλλά συνήθως είναι ενοχλητικά στη χρήση. Κάθε φορά που το Gnome ή το KDE ανακοινώνει μια νέα έκδοση, πηγαίνω απευθείας στις οθονιές και λέω "ω, αλλάξανε τον πλανήτη από τον Δία στον Κρόνο. Γουστάρω." Δεν έχει σημασία τι πραγματικά κάνανε.

Θυμάστε τον CEO στην αρχή του κεφαλαίου; Ήταν δυστυχισμένος επειδή η ομάδα του έδειξε στην αρχή φοβερά PowerPoint -- ψευτοοθόνες φτιαγμένες στο PhotoShop, ούτε καν σε VB. Και τώρα που κάνουν την αφανή δουλειά, φαίνεται σαν να μην κάνουνε τίποτα.

Τι μπορείτε να κάνετε για αυτό; Από τη στιγμή που θα καταλάβετε το μυστικό του παγόβουνου είναι εύκολο να δουλέψετε με αυτό. Κατανοήστε ότι όλες οι επιδείξεις που θα κάνετε σε ένα σκοτεινό δωμάτιο με προβολέα πρόκειται να είναι μόνο και μόνο για τα pixel. Αν μπορείτε φτιάξτε το UI σας κατά τέτοιο τρόπο ώστε τα ατελή μέρη να μην φαίνονται τελειωμένα. Για παράδειγμα, χρησιμοποιήστε μουτζούρες για τα εικονίδια στην γραμμή εργαλείων, μέχρις ότου να έχετε ολοκληρώσει τη σχετική λειτουργικότητα. Καθώς χτίζετε το web service σας, ίσως θα πρέπει να σκεφτείτε να παραλείψετε μερικές δυνατότητες από τη βασική ιστοσελίδα σας μέχρι να τις έχετε υλοποιήσει πλήρως. Με αυτόν τον τρόπο ο κόσμος μπορεί να βλέπει τη βασική σελίδα να πηγαίνει από τις 3 εντολές στις 20 εντολές καθώς φτιάχνετε περισσότερα πράγματα.

Πιο σημαντικό, επιβεβαιώστε ότι ελέγχετε τι πιστεύει ο κόσμος για τον χρονοπρογραμματισμό σας. Δώστε ένα λεπτομερές πρόγραμμα σε μορφή Excel. Κάθε εβδομάδα, στείλτε ένα email αυτοσυγχαρητηρίων αναφέροντας πώς μετακινηθήκατε από το 32 τοις εκατό στο 35 τοις εκατό και είστε εντός στόχου για παράδοση στις 25 Δεκεμβρίου. Φροντίστε ώστε τα γεγονότα να επιβάλλονται οποιασδήποτε σκέψης για το αν το έργο προχωρά εμπρός με τη σωστή ταχύτητα. Και μην αφήσετε το αφεντικό σας να χρησιμοποιήσει μπαστούνια Callaway Titanium, δεν με νοιάζει πόσο πολύ θέλετε να νικήσει, η USGA τα έχει απαγορέψει και απλά δεν είναι δίκαιο.

Personal tools