Περιβάλλον χρήσης: Μια ιστορία πόνου
Ο σωστός σχεδιασμός του user interface (γραφικού περιβάλλοντος) μιας εφαρμογής είναι κατά τη γνώμη μου βασική προϋπόθεση για τη βιωσιμότητα της εφαρμογής. Το θέμα είναι τι σημαίνει "σωστός σχεδιασμός".
Το βιβλίο του Joel Spolsky ( Joel On Software) με τίτλο User Interface Design for Programmers προσπαθεί να σου δώσει την απάντηση. Ο συγγραφέας εξηγεί ότι ο χρήστης έχει ένα μοντέλο στο μυαλό του που περιγράφει μια διαδικασία. Ο προγραμματιστής έχει ένα μοντέλο που περιγράφει την διαδικασία αυτή αλλά στα πλαίσια της εφαρμογής που αναπτύσσει. Όταν το μοντέλο του προγραμματιστή ταυτίζεται με το μοντέλο του χρήστη τότε έχουμε το σωστό σχεδιασμό.
Ως προγραμματιστής πρέπει να έχεις πάντα τον τελικό χρήστη της εφαρμογής στο μυαλό σου όταν σχεδιάζεις το γραφικό περιβάλλον. Το λάθος που κάνεις συνήθως είναι ότι γίνεσαι ένα με την εφαρμογή που αναπτύσσεις. Την γνωρίζεις πιθαμή προς πιθαμή, με αποτέλεσμα να μη μπορείς να την εξετάσεις αντικειμενικά για να ανακαλύψεις τα λειτουργικά της προβλήματα. Σε πολλές περιπτώσεις μάλιστα, ειδικά αν είσαι χρόνια στο επάγγελμα, θα έχεις δώσει την πρώτη έκδοση της εφαρμογής στους χρήστες περιμένοντας να ακούσεις τα πρώτα σχόλια, πεπεισμένος ότι όλα θα πάνε καλά. Προς μεγάλη σου έκπληξη, η οποία μπορεί να μεταφράστηκε σε εκνευρισμό, άκουσες ότι η εφαρμογή σου δεν είναι σωστή και ότι δυσκολεύονται να εκτελέσουν κάποιες ενέργειες και ότι γκρινιάζουν. Πριν αρχίσεις να φωνάζεις ότι συμφωνείς μαζί μου σβήσε λίγο το χαμόγελο που έχει φτάσει ως τα αυτιά και προσπάθησε να πάρεις τη θέση των χρηστών. Μήπως έχουν δίκιο τελικά; Τους ζήτησες ποτέ να σου πούνε πως φαντάζονται το γραφικό περιβάλλον της εφαρμογής που ανέπτυξες γι' αυτούς; Η εφαρμογή πρέπει να καλύπτει τις ανάγκες των χρηστών και όχι τις δικές σου.
Ένας τρόπος να ανακαλύψεις τις αδυναμίες στο σχεδιασμό του γραφικού περιβάλλοντος μιας εφαρμογής, είναι να πιάσεις έναν συνάδελφο από το γραφείο που να μην έχει εμπλακεί στη διαδικασία ανάπτυξης. Του ζητάς, λοιπόν, να χρησιμοποιήσει την εφαρμογή δίχως να του εξηγήσεις πως. Καθόλη τη διάρκεια είσαι από δίπλα και κρατάς σημειώσεις. Αν μπορούσες να κινηματογραφήσεις τη διαδικασία τότε ακόμα καλύτερα, αλλά και οι σημειώσεις είναι εξίσου καλές. Αν ο συνάδελφός σου καταφέρει να βγάλει εις πέρας την αποστολή, τότε μπορείς να πεις ότι η εφαρμογή σου μπορεί να χρησιμοποιηθεί ενστικτωδώς. Διαφορετικά, παίρνεις τις σημειώσεις σου και αποσύρεσαι μέχρι να βγάλεις την επόμενη έκδοση όπου θα έχεις προσπαθήσει να απαντήσεις στα προβλήματα που κατέγραψες. Την επόμενη φορά βρίσκεις άλλον συνάδελφο και επαναλαμβάνεις το ίδιο. Μπορείς αν θέλεις να χρησιμοποιήσεις τον ίδιο για να σου πει αν βελτιώθηκε ή όχι η εφαρμογή. Τέλος, αυτήν τη διαδικασία μπορείς να την εντάξεις επίσημα στον κύκλο ανάπτυξης μιας εφαρμογής.
Οι εφαρμογές μπορούν να χωριστούν σε κατηγορίες βάσει της ομάδας των τελικών χρηστών στην οποία απευθύνονται. Έτσι, μπορεί να αναπτύσσεις μια εφαρμογή για ένα και μοναδικό χρήστη που χρειάζεται κάτι εξαιρετικά ειδικό που να είναι κομμένο και ραμμένο στα μέτρα του ή να αναπτύσσεις μια εφαρμογή που απευθύνεται σε χιλιάδες χρήστες. Στην πρώτη κατηγορία ανήκουν οι λεγόμενες εφαρμογές κατά παραγγελία. Στις περιπτώσεις αυτές είναι δύσκολο να δώσεις στον τελικό χρήστη το καλύτερο σχεδιασμό διότι ο τελικός χρήστης βρίσκεται σε άμεση επαφή με το έργο και θέλει κάποια πράγματα να γίνουν όπως θα πει αυτός. Υπάρχουν περιπτώσεις που σχεδιάζεις εφαρμογές, τις αναπτύσσεις, τις δίνεις στον τελικό χρήστη και μετά από αρκετό καιρό δέχεσαι κριτική από τον χρήστη διότι δεν έκανες το γραφικό περιβάλλον έτσι όπως θα "έπρεπε". Δηλαδή, έτσι όπως είχες στο μυαλό σου από την αρχή, αλλά ο χρήστης (ο παραπονούμενος τώρα) δε σε άφησε να σχεδιάσεις. Σε αυτές τις περιπτώσεις, απλά πληρώνεσαι για την επιπλέον δουλειά που θα προκύψει και ελπίζεις να καταλάβει ο χρήστης ότι είσαι εκεί για να του προτείνεις καλύτερες λύσεις, πάντα με τη βοήθειά του φυσικά.
Οι εφαρμογές που απευθύνονται μαζικά σε μεγάλο αγοραστικό κοινό, πρέπει να λάβουν υπόψη ότι οι απαιτήσεις μπορεί να αλλάζουν από ομάδα ανθρώπων σε ομάδα ανθρώπων. Πάρε για παράδειγμα τους διαλόγους που ανοίγουν κάθε τόσο και λιγάκι για να μας εξηγήσουν τι κάνουμε σε κάθε βήμα μας. Αυτό μπορεί να είναι χρήσιμο για έναν άπειρο χρήστη αλλά την ίδια στιγμή πολύ εκνευριστικό για έναν έμπειρο χρήστη. Η λύση, που έχουν σκεφτεί πολλοί προγραμματιστές και έχουν βάλει στις εφαρμογές τους, είναι η δυνατότητα να επιλέξεις ανάμεσα στην εμφάνιση αυτών των διαλόγων ή στη μη εμφάνισή τους. Είναι η λεγόμενη προσωποποίηση της εφαρμογής. Για να δημιουργήσεις μια εφαρμογή που να μην προκαλεί τον εκνευρισμό του χρήστη, πρέπει να έρθεις στη θέση όλων των διαφορετικών ομάδων στις οποίες απευθύνεται η εφαρμογή. Οι ομάδες μπορούν να χωριστούν:
- βάσει εμπειρίας (έμπειρος, άπειρος),
- βάσει εθνικότητας (διαφορετική γλώσσα, διαφορετική θρησκεία, διαφορετικό χρώμα),
- βάσει αναγκών (απλή χρήση, επαγγελματική χρήση)
- κλπ.
Ένα σημείο που πρέπει να λάβεις υπόψη όταν σχεδιάζεις το γραφικό περιβάλλον είναι η ευκολία με την οποία κάποιος κάνει κάτι. Για παράδειγμα, για να εισάγεις μια νέα εγγραφή στη λίστα με τους πελάτες της εφαρμογής, πόσα κλικ πρέπει να κάνεις. Η επιλογή της νέας εισαγωγής βρίσκεται σε ένα σημείο μέσα στην εφαρμογή ή σε πολλά; Για να πάς από το ένα σημείο της εφαρμογής σε ένα άλλο πόσα βήματα πρέπει να κάνεις;
Η εφαρμογή σου είναι ομοιόμορφη; Έχω δει σε διάφορες εφαρμογές να έχουν επιλογές μια στο κεντρικό μενού του παραθύρου, μια σε popup μενού που είναι κρυμμένα σε διάφορα control, μια αριστερά σε στήλες τύπου Outlook. Αυτό περισσότερο μπερδεύει τον χρήστη παρά ωφελεί σε κάτι. Ο χρήστης πρέπει να βρίσκει εύκολα όλες τις ενέργεις που έχει τη δυνατότητα να εκτελέσει όταν βρίσκεται σε κάποιο σημείο της εφαρμογής σου.
Εκτός από τον κλασσικό παραθυρικό τρόπο που μπορείς να ακολουθήσεις όταν σχεδιάζεις την εφαρμογή σου, μπορείς να δοκιμάσεις και τον τρόπο που ακολούθησε η Microsoft στην εφαρμογή της Money. Η Microsoft από την πρώτη έκδοση της εφαρμογής αυτής επέλεξε να δοκιμάσει το λεγόμενο διαισθητικό γραφικό περιβάλλον (Intuitive User Interface). Δηλαδή το γραφικό περιβάλλον που επιτρέπει σε ένα άπειρο χρήστη της εφαρμογής να τη δουλέψει δίχως να διαβάσει κάποιο εγχειρίδιο ή να του δείξει κάποιος άλλος τον τρόπο. Αυτό το πετυχαίνει σχεδιάζοντας κάθε οθόνη της εφαρμογής προσεκτικά ώστε να εκτελεί κάποιος μια και μόνο βασική ενέργεια. Επίσης, σε όλη την εφαρμογή επικρατεί η αίσθηση ότι ο χρήστης βρίσκεται στο Web με όλα τα πλεονεκτήματα φυσικά των εφαρμογών με πλούσιο παραθυρικό γραφικό περιβάλλον.
Αν θέλεις λοιπόν να βελτιώσεις την εμπειρία που νοιώθουν οι χρήστες των εφαρμογών σου, δεν έχεις παρά να τους ακούσεις και να τους σκεφτείς όταν τις σχεδιάζεις.