Είμαι βέβαιος ότι έχετε ακούσει για ραβδώσεις ή έχετε χρησιμοποιήσει μια εφαρμογή με ένα. Αλλά αναρωτηθήκατε ποτέ γιατί τα σερί είναι τόσο δημοφιλή και ισχυρά; Λοιπόν, υπάρχει το προφανές ότι οι εφαρμογές θέλουν όσο το δυνατόν περισσότερη προσοχή, αλλά εκτός από αυτό, γνωρίζατε ότι όταν η δημοφιλής εφαρμογή εκμάθησης Duolingo παρουσίασε τα γραφικά στοιχεία iOS για την εμφάνιση γραμμών, η δέσμευση των χρηστών αυξήθηκε κατά 60%. Το εξήντα τοις εκατό είναι μια τεράστια αλλαγή συμπεριφοράς και δείχνει πώς μπορούν να χρησιμοποιηθούν τα μοτίβα «ραβδώσεων» για να αυξηθεί η αφοσίωση και να αυξηθεί η χρήση. Στην πιο βασική του μορφή, μια σειρά είναι ο αριθμός των διαδοχικών ημερών που ένας χρήστης ολοκληρώνει μια συγκεκριμένη δραστηριότητα. Μερικοί άνθρωποι το ορίζουν επίσης ως μια «παιχνιδοποιημένη» συνήθεια ή μια μέτρηση που έχει σχεδιαστεί για να ενθαρρύνει τη συνεπή χρήση. Αλλά οι ραβδώσεις ξεπερνούν το να είναι μια μέτρηση ή μια εγγραφή σε μια εφαρμογή. είναι πιο ψυχολογικό από αυτό. Τα ανθρώπινα ένστικτα είναι εύκολο να επηρεαστούν με τους σωστούς παράγοντες. Κοιτάξτε αυτούς τους τρεις παράγοντες: την πρόοδο, την υπερηφάνεια και τον φόβο της απώλειας (κοινώς ονομάζεται FOMO). Τι κοινό έχουν όλα αυτά; Προσπάθεια. Όσο περισσότερη προσπάθεια καταβάλλετε για κάτι, τόσο περισσότερο διαμορφώνει την ταυτότητά σας, και έτσι οι ραβδώσεις διασχίζουν τον κόσμο της συμπεριφορικής ψυχολογίας. Τώρα, με τη μεγάλη δύναμη έρχεται μεγάλη ευθύνη, και εξαιτίας αυτού, υπάρχει μια σκοτεινή πλευρά στα σερί. Σε αυτό το άρθρο, θα εξετάσουμε τις αρχές της ψυχολογίας, του UX και του σχεδιασμού πίσω από τη δημιουργία ενός αποτελεσματικού συστήματος σειρών. Θα εξετάσουμε (1) γιατί ο εγκέφαλός μας ανταποκρίνεται σχεδόν ενστικτωδώς στη δραστηριότητα ραβδώσεων, (2) πώς να σχεδιάζουμε ραβδώσεις με τρόπους που πραγματικά βοηθούν τους χρήστες και (3) την τεχνική εργασία που απαιτείται για τη δημιουργία ενός μοτίβου ραβδώσεων. Η ψυχολογία πίσω από τις ραβδώσεις Για να σχεδιάσουμε και να δημιουργήσουμε ένα αποτελεσματικό σύστημα γραμμών, πρέπει να καταλάβουμε πώς ευθυγραμμίζεται με τον τρόπο σύνδεσης του εγκεφάλου μας. Για παράδειγμα, τι το κάνει τόσο αποτελεσματικό στο βαθμό που νιώθουμε τόσο έντονη αφοσίωση για να προστατεύσουμε τα σερί μας; Υπάρχουν τρεις ενδιαφέρουσες, καλά τεκμηριωμένες αρχές ψυχολογίας που υποστηρίζουν αυτό που κάνει τα σερί τόσο ισχυρά και εθιστικά. Αποστροφή για την απώλεια Αυτή είναι ίσως η ισχυρότερη δύναμη πίσω από τα σερί. Το λέω αυτό γιατί τις περισσότερες φορές, σχεδόν δεν μπορείς να το αποφύγεις αυτό στη ζωή. Σκεφτείτε το ως εξής: Εάν ένας φίλος σας δώσει 100 $, θα ήσασταν ευτυχισμένοι. Αλλά αν χάσατε 100 $ από το πορτοφόλι σας, αυτό θα πονούσε πολύ περισσότερο. Το συναισθηματικό βάρος αυτών των καταστάσεων δεν είναι ίσο. Η απώλεια πονάει πολύ περισσότερο από το κέρδος είναι καλό. Ας το πάμε παρακάτω και ας πούμε ότι σας δίνω 100 $ και σας ζητώ να παίξετε ένα στοίχημα. Υπάρχει 50% πιθανότητα να κερδίσετε άλλα 100 $ και 50% πιθανότητα να χάσετε τα αρχικά 100 $. Θα το έπαιρνες; δεν θα το έκανα. Οι περισσότεροι άνθρωποι δεν θα το έκαναν. Αυτή είναι η αποστροφή για την απώλεια. Αν το καλοσκεφτείς, είναι λογικό, είναι κατανοητό, είναι ανθρώπινο. Η ιδέα πίσω από την αποστροφή της απώλειας είναι ότι νιώθουμε τον πόνο να χάσουμε κάτι διπλάσιο από την ευχαρίστηση να κερδίσουμε κάτι ίσης αξίας. Με ψυχολογικούς όρους, η απώλεια παραμένει περισσότερο από τα κέρδη. Πιθανότατα βλέπετε πώς σχετίζεται αυτό με τα σερί. Για να δημιουργηθεί ένα αξιοσημείωτο σερί, απαιτεί προσπάθεια. Καθώς ένα σερί μεγαλώνει, το κίνητρο πίσω από αυτό αρχίζει να εξασθενεί. ή ακριβέστερα, αρχίζει να γίνεται δευτερεύον. Ακολουθεί ένα παράδειγμα: Ας υποθέσουμε ότι ο φίλος σας έχει μια σειρά τριών ημερών κλείνοντας τα "Δαχτυλίδια κίνησης" στο Apple Watch του. Δεν έχουν σχεδόν τίποτα να χάσουν πέρα από το να θέλουν να πετύχουν τον στόχο τους και να είναι συνεπείς. Ταυτόχρονα, έχετε ένα εντυπωσιακό σερί 219 ημερών. Οι πιθανότητες είναι να παγιδευτείτε από τον φόβο να το χάσετε. Πιθανότατα δεν σκέφτεστε το επίτευγμα σε αυτό το σημείο. έχει να κάνει περισσότερο με την προστασία της επενδυμένης προσπάθειάς σας και αυτό είναι η αποστροφή για την απώλεια. Το Duolingo εξηγεί πώς η αποστροφή για τις απώλειες συμβάλλει στην απροθυμία ενός χρήστη να σπάσει ένα μεγάλο σερί, ακόμη και τις πιο τεμπέλικες μέρες του. Κατά κάποιον τρόπο, ένα σερί μπορεί να μετατραπεί σε συνήθεια όταν η αποστροφή για την απώλεια καταλαγιάζει. Το μοντέλο συμπεριφοράς Fogg (B = MAP) Τώρα που καταλαβαίνουμε τον φόβο να χάσουμε την προσπάθεια που καταβάλλεται σε μεγαλύτερα σερί, ένα άλλο ερώτημα είναι: Τι μας κάνει να κάνουμε αυτό το πράγμα αρχικά, μέρα με τη μέρα, ακόμη και πριν το σερί γίνει μεγάλο; Αυτό είναι το μοντέλο συμπεριφοράς Fogg. Είναι σχετικά απλό. Μια συμπεριφορά (Β) εμφανίζεται μόνο όταν τρεις παράγοντες — Κίνητρο (Μ), Ικανότητα (Α) και Προτροπή (Ρ) — ευθυγραμμίζονται την ίδια στιγμή. Έτσι, η εξίσωση B=MAP. Εάν κάποιος από αυτούς τους παράγοντες, έστω και ένας, λείπει εκείνη τη στιγμή, η συμπεριφορά δεν θα συμβεί. Έτσι, για να είναι αποτελεσματικό και επαναλαμβανόμενο ένα σύστημα σερί, πρέπει να υπάρχουν και οι τρεις παράγοντες: Κίνητρο Αυτό είναι εύθραυστο και δεν είναι κάτι που υπάρχει συνεχώς. Υπάρχουν μέρες που είσαιώθησε να μάθεις ισπανικά και μέρες που δεν νιώθεις ούτε ένα γιορτή θέλησης για να μάθεις τη γλώσσα. Το κίνητρο από μόνο του για την οικοδόμηση μιας συνήθειας είναι αναξιόπιστο και είναι μια χαμένη μάχη από την πρώτη μέρα. Ικανότητα Για να αντισταθμίσετε τους περιορισμούς των κινήτρων, η ικανότητα είναι κρίσιμη. Σε αυτό το πλαίσιο, ικανότητα σημαίνει την ευκολία δράσης, δηλαδή η προσπάθεια είναι τόσο εύκολη που δεν είναι ρεαλιστικό να πούμε ότι δεν είναι δυνατή. Οι περισσότερες εφαρμογές το χρησιμοποιούν σκόπιμα. Το Apple Fitness χρειάζεται απλώς να στέκεστε όρθιοι για ένα λεπτό σε μια ώρα για να κερδίσετε ένα σημάδι προς τον στόχο σας στο Stand. Το Duolingo χρειάζεται μόνο ένα ολοκληρωμένο μάθημα. Αυτές οι εργασίες δεν απαιτούν τόση μεγάλη προσπάθεια. Το εμπόδιο είναι τόσο χαμηλό που ακόμα και τις χειρότερες μέρες σου, μπορείς να το κάνεις. Αλλά η συνδυασμένη προσπάθεια ενός συνεχόμενου σερί είναι εκεί που ξεκινά η ιδέα της απώλειας αυτού του σερί. PromptThis είναι που συμπληρώνει την εξίσωση. Οι άνθρωποι είναι εκ φύσεως ξεχασιάρηδες, οπότε ναι, η ικανότητα μπορεί να μας οδηγήσει κατά 90% εκεί. Αλλά μια προτροπή μας υπενθυμίζει να δράσουμε. Οι ραβδώσεις είναι επίμονες από τη σχεδίασή τους, επομένως οι χρήστες πρέπει να υπενθυμίζονται συνεχώς να ενεργούν. Για να δει πόσο ισχυρό μπορεί να είναι ένα μήνυμα, το Duolingo έκανε μια δοκιμή A/B για να δει αν ένα μικρό κόκκινο σήμα στο εικονίδιο της εφαρμογής αύξησε τη συνεπή χρήση. Προκάλεσε αύξηση 6% στους καθημερινούς ενεργούς χρήστες. Μόνο ένα κόκκινο σήμα. Περιορισμοί μοντέλου Με όλα αυτά, υπάρχει ένας περιορισμός στο μοντέλο Fogg, σύμφωνα με τον οποίο οι κριτικοί και η σύγχρονη έρευνα έχουν παρατηρήσει ότι ένας σχεδιασμός που βασίζεται πολύ σε προτροπές, όπως οι επιθετικές ειδοποιήσεις, κινδυνεύει να δημιουργήσει ψυχική κόπωση. Οι συνεχείς ειδοποιήσεις και οι υπερωρίες θα μπορούσαν να προκαλέσουν αναστάτωση στους χρήστες. Λοιπόν, προσέξτε το. Το φαινόμενο Zeigarnik Πώς νιώθετε όταν αφήνετε ένα έργο μισοτελειωμένο; Αυτό εκνευρίζει πολλούς ανθρώπους επειδή οι ημιτελείς εργασίες καταλαμβάνουν περισσότερο διανοητικό χώρο από τα πράγματα που ολοκληρώνουμε. Όταν κάτι γίνεται και έχει φύγει, τείνουμε να το ξεχνάμε. Όταν κάτι δεν γίνεται, τείνει να βαραίνει το μυαλό μας. Αυτός είναι ακριβώς ο λόγος για τον οποίο τα ψηφιακά προϊόντα χρησιμοποιούν τεχνητούς δείκτες προόδου, όπως τη γραμμή ολοκλήρωσης προφίλ του Upwork, για να ενημερώνουν έναν χρήστη ότι το προφίλ του είναι μόνο "60% ολοκληρωμένο". Παρακινεί τον χρήστη να ολοκληρώσει αυτό που ξεκίνησε.
Ας δούμε ένα άλλο παράδειγμα. Έχετε πέντε εργασίες σε μια εφαρμογή λίστας υποχρεώσεων και στο τέλος της ημέρας, ελέγχετε μόνο τέσσερις από αυτές ως ολοκληρωμένες. Πολλοί από εμάς θα νιώθουμε ανολοκλήρωτοι εξαιτίας αυτού του ενός ημιτελούς έργου. Εκεί ακριβώς είναι το φαινόμενο Zeigarnik. Το φαινόμενο Zeigarnik αποδείχθηκε από την ψυχολόγο Bluma Zeigarnik, η οποία περιέγραψε ότι τείνουμε να κρατάμε τις ημιτελείς εργασίες ενεργές στη μνήμη μας περισσότερο από τις ολοκληρωμένες εργασίες. Ένα μοτίβο ραβδώσεων εμπλέκεται φυσικά σε αυτό στη σχεδίαση UX. Ας υποθέσουμε ότι βρίσκεστε στην 63η ημέρα ενός σερί μάθησης. Σε εκείνο το σημείο, βρίσκεστε σε ένα συνεχές μοτίβο ημιτελών εργασιών. Ο εγκέφαλός σας σπάνια θα το ξεχνούσε καθώς βρίσκεται στο πίσω μέρος του μυαλού σας. Σε αυτό το σημείο, ο εγκέφαλός σας γίνεται αυτός που σας στέλνει ειδοποιήσεις. Όταν συνδυάζετε αυτές τις ψυχολογικές δυνάμεις, αρχίζετε να καταλαβαίνετε πραγματικά γιατί οι ραβδώσεις δεν είναι απλώς μια κανονική λειτουργία εφαρμογής. είναι ικανά να αναδιαμορφώσουν την ανθρώπινη συμπεριφορά. Αλλά κάπου στη γραμμή - δεν μπορώ να πω ακριβώς πότε, καθώς διαφέρει για τον καθένα - τα πράγματα φτάνουν σε ένα σημείο όπου ένα σερί μετατοπίζεται από τη «διασκέδαση» σε κάτι που αισθάνεσαι ότι δεν έχεις την πολυτέλεια να χάσεις. Δεν θέλετε να πάνε χαμένες 58 μέρες προσπάθειας, σωστά; Αυτό είναι που κάνει ένα σύστημα σερί αποτελεσματικό. Εάν γίνουν σωστά, οι ραβδώσεις βοηθούν τους χρήστες να δημιουργήσουν εκπληκτικές συνήθειες που επιτυγχάνουν έναν στόχο. Θα μπορούσε να είναι το καθημερινό διάβασμα ή το γυμναστήριο με συνέπεια. Αυτές οι επαναλαμβανόμενες ενέργειες (μερικές φορές μικρές) ενώνονται με την πάροδο του χρόνου και γίνονται εμφανείς στην καθημερινή μας ζωή. Αλλά υπάρχουν δύο όψεις σε κάθε νόμισμα. Η λεπτή γραμμή μεταξύ συνήθειας και καταναγκασμού Εάν παρακολουθείτε, μπορείτε ήδη να πείτε ότι υπάρχει μια σκοτεινή πλευρά στα συστήματα ραβδώσεων. Ο σχηματισμός συνήθειας αφορά τη συνέπεια με έναν επαναλαμβανόμενο στόχο. Καταναγκασμός, ωστόσο, είναι η συνέπεια να δουλεύεις πάνω σε έναν στόχο που δεν χρειάζεται πλέον, αλλά τον κρατάς από φόβο ή πίεση. Είναι μια λεπτή σαν ξυράφι γραμμή. Βουρτσίζετε τα δόντια σας κάθε πρωί χωρίς να σκέφτεστε. είναι αυτόματο και ενστικτώδες, με ξεκάθαρο στόχο την καλή αναπνοή. Αυτό είναι ένα σερί που σχηματίζει μια καλή συνήθεια. Ένα σύστημα ηθικής σειράς δίνει στους χρήστες χώρο να αναπνεύσουν. Εάν, για κάποιο λόγο, δεν βουρτσίζετε το πρωί, μπορείτε να βουρτσίσετε το μεσημέρι. Η ατέλεια επιτρέπεται χωρίς φόβο να χαθεί μια μεγάλη προσπάθεια. Ο ψυχαναγκασμός ακολουθεί την αντίθετη διαδρομή, όπου ένα σερί σε κάνει ανήσυχο, νιώθεις ένοχος ή ακόμα και εξαντλημένος, και μερικές φορές νιώθεις σαν να μην έχεις καταφέρει τίποτα, παρά τα πάνταεργασία. Δεν ενεργείτε επειδή το θέλετε, αλλά επειδή υποσυνείδητα φοβάστε να δείτε την πρόοδό σας να μηδενίζεται. Κάποιος μάλιστα το περιέγραψε τέλεια, "Ένιωσα ότι απατούσα, αλλά απλά δεν με ένοιαζε. Δεν είμαι τίποτα χωρίς το σερί μου". Αυτό δείχνει τις ακραίες ραβδώσεις που μπορεί να έχει σε ένα άτομο. Στο βαθμό που οι χρήστες αρχίζουν να συνδέουν την αυτοεκτίμησή τους με μια αυθαίρετη μέτρηση και όχι με τον αρχικό στόχο ή λόγο για τον οποίο ξεκίνησαν το σερί από την πρώτη θέση. Το σερί γίνεται αυτό που είναι, όχι μόνο αυτό που κάνουν. Ένα καλά σχεδιασμένο σύστημα ηθικής σειράς θα πρέπει να μοιάζει με ενθάρρυνση για τον χρήστη, όχι πίεση ή υποχρέωση. Αυτό σχετίζεται με την ισορροπία του εσωτερικού και του εξωτερικού κινήτρου. Το εξωτερικό κίνητρο (εξωτερικές ανταμοιβές, αποφυγή τιμωρίας) μπορεί να κάνει τους χρήστες να ξεκινήσουν, αλλά το εσωτερικό κίνητρο (η εργασία για έναν προσωπικό στόχο όπως η εκμάθηση ισπανικών επειδή πραγματικά θέλετε να επικοινωνήσετε με ένα αγαπημένο σας πρόσωπο) είναι ισχυρότερο για τη μακροχρόνια δέσμευση. Ένα καλό σύστημα θα πρέπει να έλκεται προς τα εγγενή κίνητρα με προσεκτική χρήση εξωτερικών στοιχείων, δηλαδή να υπενθυμίζει στους χρήστες πόσο μακριά έχουν φτάσει, όχι να τους απειλεί με τι μπορεί να χάσουν. Και πάλι, είναι μια λεπτή γραμμή. Ένα απλό τεστ όταν σχεδιάζετε ένα σύστημα σειρών είναι να αφιερώσετε λίγο χρόνο και να σκεφτείτε εάν τα προϊόντα σας κερδίζουν χρήματα πουλώντας λύσεις στο άγχος που δημιούργησε το προϊόν σας. Εάν ναι, υπάρχει μεγάλη πιθανότητα να εκμεταλλεύεστε χρήστες. Έτσι, η επόμενη ερώτηση είναι: Εάν επιλέξω να χρησιμοποιήσω το streak, πώς μπορώ να το σχεδιάσω με τρόπο που να βοηθάει πραγματικά τους χρήστες να επιτύχουν τους στόχους τους; Το UX του Good Streak System Design Πιστεύω ότι αυτό είναι όπου τα περισσότερα έργα είτε καρφώνουν ένα αποτελεσματικό σύστημα γραμμών είτε το ανακατεύουν εντελώς. Ας δούμε μερικές αρχές UX ενός καλού σχεδίου σειρών. Κρατήστε το χωρίς κόπο Πιθανότατα το έχετε ξανακούσει αυτό, ίσως από βιβλία όπως το Atomic Habits, αλλά αξίζει να αναφέρουμε ότι ένας από τους ευκολότερους τρόπους με τους οποίους μπορείτε να διαμορφώσετε συνήθειες είναι να κάνετε τη δράση μικροσκοπική και εύκολη. Αυτό είναι παρόμοιο με τον παράγοντα ικανότητας που συζητήσαμε από το μοντέλο συμπεριφοράς Fogg. Ο πρώτος κανόνας οποιουδήποτε σχεδίου ράβδων θα πρέπει να είναι να κάνετε την απαιτούμενη ενέργεια όσο το δυνατόν μικρότερη από ανθρώπινη άποψη, ενώ παράλληλα επιτυγχάνετε πρόοδο. Εάν μια καθημερινή ενέργεια απαιτεί δύναμη θέλησης για να ολοκληρωθεί, αυτή η ενέργεια δεν θα περάσει τις πέντε ημέρες. Γιατί; Δεν μπορείτε να έχετε κίνητρο πέντε συνεχόμενες ημέρες. Παράδειγμα: Εάν εκτελείτε μια εφαρμογή διαλογισμού, δεν χρειάζεται να κάνετε τους χρήστες να περάσουν από μια περίοδο σύνδεσης 20 λεπτών μόνο και μόνο για να διατηρήσετε το σερί. Αντί γι' αυτό, δοκιμάστε ένα λεπτό, ίσως ακόμη και κάτι τόσο μικρό όσο τριάντα δευτερόλεπτα. Όπως λέει και η παροιμία, μικρές σταγόνες νερού κάνουν τον πανίσχυρο ωκεανό). Οι μικρές προσπάθειες συγκεντρώνονται σε μεγάλα επιτεύγματα με τον καιρό. Αυτός πρέπει να είναι ο στόχος: αφαιρέστε την τριβή, ειδικά όταν η στιγμή μπορεί να είναι δύσκολη. Όταν οι χρήστες είναι αγχωμένοι ή καταπονημένοι, ενημερώστε τους ότι η απλή εμφάνιση, έστω και για λίγα δευτερόλεπτα, μετράει ως προσπάθεια. Παρέχετε σαφή οπτική ανατροφοδότηση Οι άνθρωποι είναι οπτικοί από τη φύση τους. Τις περισσότερες φορές, πρέπει να δούμε κάτι για να πιστέψουμε. υπάρχει αυτή η ανάγκη να οραματιστούμε τα πράγματα για να τα κατανοήσουμε καλύτερα και να βάλουμε τα πράγματα στη θέση τους. Αυτός είναι ο λόγος για τον οποίο τα μοτίβα ραβδώσεων χρησιμοποιούν συχνά οπτικά στοιχεία, όπως γραφήματα, σημάδια επιλογής, δαχτυλίδια προόδου και πλέγματα, για να οπτικοποιήσουν την προσπάθεια. Δείτε το γράφημα συνεισφοράς του GitHub. Είναι μια απλή απεικόνιση της συνέπειας. Ωστόσο, οι προγραμματιστές το εισπνέουν σαν οξυγόνο.
Το κλειδί είναι να μην κάνει ένα σύστημα σερί να αισθάνεται αφηρημένο. Θα πρέπει να αισθάνεται αληθινό και κερδισμένο. Για παράδειγμα, οι δακτύλιοι δραστηριότητας του Duolingo και της Apple Fitness χρησιμοποιούν καθαρά σχέδια κινουμένων σχεδίων μετά την ολοκλήρωση μιας σειράς και το GitHub εμφανίζει ιστορικά δεδομένα της συνέπειας ενός χρήστη με την πάροδο του χρόνου.
Χρησιμοποιήστε τον καλό συγχρονισμό Ανέφερα προηγουμένως ότι οι άνθρωποι είναι γενικά ξεχασιάρηδες από τη φύση τους και ότι οι προτροπές μπορούν να βοηθήσουν στη διατήρηση της δυναμικής προς τα εμπρός. Χωρίς προτροπές, οι περισσότεροι νέοι χρήστες ξεχνούν να συνεχίσουν. Η ζωή μπορεί να είναι απασχολημένη, τα κίνητρα εξαφανίζονται και πράγματα συμβαίνουν. Ακόμη και οι μακροχρόνιοι χρήστες επωφελούνται από τις προτροπές, αν και τις περισσότερες φορές είναι ήδη κλειδωμένοι μέσα στον βρόχο συνήθειας. Ωστόσο, ακόμη και ο πιο αφοσιωμένος άνθρωπος μπορεί να χάσει κατά λάθος μια μέρα. Το σύστημα γραμμών σας χρειάζεται σίγουρα υπενθυμίσεις. Οι πιο χρησιμοποιούμενες υπενθυμίσεις προτροπής είναι οι ειδοποιήσεις push. Ο χρόνος είναι πραγματικά σημαντικός όταν εργάζεστε με ειδοποιήσεις push. Ο τύπος της εφαρμογής έχει επίσης σημασία. Η αποστολή μιας ειδοποίησης στις 9 π.μ. λέγοντας "Δεν έχετε εξασκηθεί σήμερα" είναι απλώς περίεργο για μια εφαρμογή εκμάθησης, επειδή πολλοί έχουν πράγματα να κάνουν την ημέρα πριν καν σκεφτούν να ολοκληρώσουν ένα μάθημα. Αν μιλάμε για μια εφαρμογή γυμναστικής, όμως, αυτόείναι λογικό και ίσως αναμένεται ακόμη και να υπενθυμιστεί νωρίτερα μέσα στην ημέρα. Οι ειδοποιήσεις push διαφέρουν σημαντικά ανά κατηγορία εφαρμογής. Οι εφαρμογές γυμναστικής, για παράδειγμα, έχουν υψηλότερη αφοσίωση με ειδοποιήσεις νωρίς το πρωί (7–8 π.μ.), ενώ οι εφαρμογές παραγωγικότητας ενδέχεται να έχουν καλύτερη απόδοση νωρίς το μεσημέρι. Το κλειδί είναι να δοκιμάσετε το A/B το χρονοδιάγραμμα της εφαρμογής σας με βάση τις συμπεριφορές των χρηστών σας αντί να υποθέσετε ότι τα πράγματα ταιριάζουν σε όλα. Αυτό που λειτουργεί για μια εφαρμογή διαλογισμού μπορεί να μην λειτουργεί για έναν ιχνηλάτη κωδικοποίησης. Άλλες μέθοδοι προτροπής είναι οι κόκκινες κουκκίδες στο εικονίδιο της εφαρμογής και ακόμη και τα γραφικά στοιχεία της εφαρμογής. Οι μελέτες ποικίλλουν, αλλά ο μέσος άνθρωπος ξεκλειδώνει τη συσκευή του μεταξύ 50-150 φορές την ημέρα (PDF). Εάν ένας χρήστης βλέπει μια κόκκινη κουκκίδα σε μια εφαρμογή ή ένα γραφικό στοιχείο που υποδεικνύει μια τρέχουσα σειρά κάθε φορά που ξεκλειδώνει το τηλέφωνό του, αυξάνει τη δέσμευσή του. Απλώς μην το παρακάνετε. η προτροπή πρέπει να χρησιμεύει ως υπενθύμιση, όχι ως γκρίνια. Γιορτάστε τα ορόσημα Ένα σύστημα σερί θα πρέπει να προσπαθεί να γιορτάζει ορόσημα για να αναζωπυρώσει συναισθήματα, ειδικά για τους χρήστες που βρίσκονται βαθιά μέσα σε ένα σερί. Όταν ένας χρήστης χτυπά την Ημέρα 7, Ημέρα 30, Ημέρα 50, Ημέρα 100, Ημέρα 365, θα πρέπει να κάνετε πολλά από αυτό. Αναγνωρίστε τα επιτεύγματα — ειδικά για μακροχρόνιους χρήστες.
Όπως είδαμε νωρίτερα, το Duolingo το κατάλαβε και υλοποίησε ένα κινούμενο γραφικό που γιορτάζει ορόσημα με κομφετί. Ορισμένες πλατφόρμες προσφέρουν ακόμη και σημαντικές ανταμοιβές μπόνους που επικυρώνουν τις προσπάθειες των χρηστών. Και αυτό μπορεί να είναι επωφελές για τις εφαρμογές, έτσι ώστε οι χρήστες τείνουν να μοιράζονται δημόσια τα ορόσημα τους στα μέσα κοινωνικής δικτύωσης. Ένα άλλο όφελος είναι η προσμονή που έρχεται πριν φτάσει σε ορόσημα. Δεν είναι απλώς να διατηρείς το σερί ζωντανό ατελείωτα. οι χρήστες έχουν κάτι να περιμένουν. Χρησιμοποιήστε Μηχανισμούς Χάριτος Η ζωή είναι απρόβλεπτη. Οι άνθρωποι αποσπώνται. Οποιοδήποτε καλό σύστημα σερί θα πρέπει να περιμένει ατέλεια. Μία από τις μεγαλύτερες ψυχολογικές απειλές για ένα σύστημα σερί είναι η σκληρή επαναφορά στο μηδέν μετά από μία μόνο χαμένη ημέρα. Ένα «ηθικό» σύστημα γραμμών θα πρέπει να παρέχει στον χρήστη κάποια χαλαρότητα. Ας υποθέσουμε ότι έχετε ένα σερί εκμάθησης σκακιού 90 ημερών. Ήσασταν συνεπής για τρεις καλούς μήνες και μια μέρα, το τηλέφωνό σας πεθαίνει ενώ ταξιδεύετε, και κάπως έτσι, το 90 γίνεται 0 — όλα, όλη αυτή η προσπάθεια, διαγράφονται και η πρόοδος εξαφανίζεται. Ο χρήστης μπορεί να έχει καταστραφεί εντελώς. Η σκέψη να το ξαναχτίσεις από την αρχή είναι τόσο αποθαρρυντική που η προσπάθεια δεν αξίζει τον κόπο. Στη χειρότερη περίπτωση, ένας χρήστης μπορεί να εγκαταλείψει την εφαρμογή αφού αισθάνεται σαν αποτυχία. Εξετάστε το ενδεχόμενο να προσθέσετε έναν μηχανισμό "χάρης" στο σύστημα γραμμών σας:
Streak Freeze Επιτρέπει στους χρήστες να χάσουν σκόπιμα μια μέρα χωρίς κυρώσεις. Πρόσθετος χρόνοςΕπιτρέψτε μερικές ώρες (2–3) μετά τη συνήθη προθεσμία προτού ενεργοποιήσετε μια επαναφορά. Μοντέλα αποσύνθεσης Αντί για σκληρή επαναφορά, το σερί μειώνεται κατά ένα μικρό ποσό, π.χ. αφαιρούνται 10 ημέρες από το σερί ανά χαμένη ημέρα.
Χρησιμοποιήστε έναν ενθαρρυντικό τόνο Ας συγκρίνουμε δύο μηνύματα που εμφανίζονται στους χρήστες όταν διακόπτεται ένα σερί:
"Έχασες το σερί των 42 ημερών. Ξεκίνα από την αρχή." "Εμφανίστηκες για 42 συνεχόμενες ημέρες. Αυτή είναι απίστευτη πρόοδος! Θέλετε να το δοκιμάσετε ξανά;"
Και οι δύο μεταφέρουν τις ίδιες πληροφορίες, αλλά ο συναισθηματικός αντίκτυπος είναι διαφορετικός. Το πρώτο μήνυμα πιθανότατα θα έκανε έναν χρήστη να αισθανθεί απογοητευμένος και θα τον έκανε να σταματήσει το κάπνισμα. Το δεύτερο μήνυμα γιορτάζει αυτό που έχει ήδη επιτευχθεί και ενθαρρύνει απαλά τον χρήστη να προσπαθήσει ξανά. Streak Systems Design Challenges Πριν προχωρήσουμε στις τεχνικές προδιαγραφές της κατασκευής ενός συστήματος γραμμών, θα πρέπει να γνωρίζετε τις προκλήσεις που ενδέχεται να αντιμετωπίσετε. Τα πράγματα μπορεί να γίνουν πολύπλοκα, όπως θα περίμενε κανείς. Χειρισμός ζωνών ώρας Υπάρχει ένας λόγος για τον οποίο ο χειρισμός της ώρας και της ημερομηνίας είναι από τις πιο δύσκολες ιδέες που αντιμετωπίζουν οι προγραμματιστές. Υπάρχει μορφοποίηση, διεθνοποίηση και πολλά άλλα που πρέπει να λάβετε υπόψη. Επιτρέψτε μου να σας ρωτήσω αυτό: Τι μετράει ως ημέρα; Γνωρίζουμε ότι ο κόσμος τρέχει σε διαφορετικές ζώνες ώρας και σαν να μην αρκεί αυτό, ορισμένες περιοχές έχουν θερινή ώρα (DST) που συμβαίνει δύο φορές το χρόνο. Από πού αρχίζετε να χειρίζεστε αυτές τις ακραίες θήκες; Τι μετράει ως «αρχή» του αύριο; Ορισμένοι προγραμματιστές προσπαθούν να το αποφύγουν χρησιμοποιώντας μια κεντρική ζώνη ώρας, όπως το UTC. Για ορισμένους χρήστες, αυτό θα απέφερε σωστά αποτελέσματα, αλλά για κάποιους, θα μπορούσε να είναι απενεργοποιημένο κατά μία ώρα, δύο ώρες ή περισσότερο. Αυτή η ασυνέπεια καταστρέφει την εμπειρία χρήστη. Οι χρήστες ενδιαφέρονται λιγότερο για το πώς διαχειρίζεστε τον χρόνο στα παρασκήνια. το μόνο που περιμένουν είναι ότι αν εκτελέσουν μια ενέργεια σερί στις 23:40, τότε θα πρέπει να εγγραφεί ακριβώς εκείνη την ώρα, στο πλαίσιο τους. Θα πρέπει να ορίσετε το "one day" με βάση την τοπική ζώνη ώρας του χρήστη και όχι την ώρα του διακομιστή. Σίγουρα, μπορείτε να πάρετε το εύκολοδρομολογήστε και επαναφέρετε ραβδώσεις παγκοσμίως για όλους τους χρήστες τα μεσάνυχτα UTC, αλλά δημιουργείτε σε μεγάλο βαθμό αδικία. Κάποιος στην Καλιφόρνια έχει πάντα οκτώ επιπλέον ώρες για να ολοκληρώσει την εργασία του από κάποιον που ζει στο Λονδίνο. Αυτό είναι ένα άδικο σχεδιαστικό ελάττωμα που τιμωρεί ορισμένους χρήστες λόγω της τοποθεσίας τους. Και τι γίνεται αν αυτό το άτομο στο Λονδίνο επισκέπτεται μόνο, ολοκληρώσει μια εργασία και μετά επιστρέψει σε άλλη ζώνη ώρας; Μια αποτελεσματική λύση για όλα αυτά είναι να ζητήσετε από τους χρήστες να ορίσουν ρητά τη ζώνη ώρας τους κατά την ενσωμάτωση (κατά προτίμηση μετά τον πρώτο έλεγχο ταυτότητας). Είναι καλή ιδέα να συμπεριλάβετε μια λεπτή σημείωση ότι η παροχή πληροφοριών ζώνης ώρας χρησιμοποιείται μόνο για την εφαρμογή για την ακριβή παρακολούθηση της προόδου, αντί να χρησιμοποιείται ως δεδομένα προσωπικής ταυτοποίησης. Και είναι άλλη μια καλή ιδέα να το κάνετε αυτό μια μεταβλητή ρύθμιση. Προτείνω σε οποιονδήποτε να αποφύγει τον απευθείας χειρισμό της λογικής ζώνης ώρας σε μια εφαρμογή. Χρησιμοποιήστε δοκιμασμένες και αληθινές βιβλιοθήκες ημερομηνιών, όπως το Moment.js ή το pytz (Python) κ.λπ. Δεν χρειάζεται να εφεύρετε ξανά τον τροχό για κάτι τόσο περίπλοκο όπως αυτό. Missed Days And Edge Cases Μια άλλη πρόκληση για την οποία θα πρέπει να ανησυχείτε είναι οι ανεξέλεγκτες ακραίες περιπτώσεις, όπως ο υπερβολικός ύπνος των χρηστών, ο χρόνος διακοπής λειτουργίας διακομιστή, η καθυστέρηση, οι αποτυχίες δικτύου κ.λπ. Η χρήση της ιδέας των μηχανισμών χάριτος, όπως αυτοί που συζητήσαμε νωρίτερα, μπορεί να βοηθήσει. Ένα παράθυρο χάριτος δύο ωρών μπορεί να βοηθήσει τόσο τον χρήστη όσο και τον προγραμματιστή, με την έννοια ότι οι χρήστες δεν τιμωρούνται αυστηρά για ανεξέλεγκτες συνθήκες ζωής. Για τους προγραμματιστές, τα grace windows είναι χρήσιμα σε εκείνες τις ανεξέλεγκτες στιγμές που ο διακομιστής σβήνει στη μέση της νύχτας. Πάνω από όλα, μην εμπιστεύεστε ποτέ τον πελάτη. Πάντα επικύρωση από την πλευρά του διακομιστή. Ο διακομιστής πρέπει να είναι η μοναδική πηγή αλήθειας. Πρόληψη της εξαπάτησης Και πάλι, δεν μπορώ να το τονίσω αρκετά: Φροντίστε να επικυρώσετε τα πάντα από την πλευρά του διακομιστή. Οι χρήστες είναι άνθρωποι και οι άνθρωποι μπορεί να εξαπατήσουν αν τους δοθεί η ευκαιρία. Είναι αναπόφευκτο. Μπορείτε να δοκιμάσετε:
Αποθήκευση όλων των ενεργειών με χρονικές σημάνσεις UTC. Ο πελάτης μπορεί να στείλει την τοπική του ώρα, αλλά ο διακομιστής μπορεί αμέσως να τη μετατρέψει σε UTC και να την επικυρώσει σε σχέση με την ώρα του διακομιστή. Με αυτόν τον τρόπο, εάν η χρονική σήμανση του πελάτη είναι ύποπτα μακριά, το σύστημα μπορεί να την απορρίψει ως σφάλμα και η διεπαφή χρήστη μπορεί να ανταποκριθεί ανάλογα. Χρήση παρακολούθησης βάσει συμβάντων. Με άλλα λόγια, αποθηκεύστε μια εγγραφή κάθε ενέργειας με μεταδεδομένα, συμπεριλαμβανομένων πληροφοριών όπως το αναγνωριστικό του χρήστη, τον τύπο της ενέργειας που εκτελείται και τη χρονική σήμανση και τη ζώνη ώρας. Αυτό βοηθά στην επικύρωση.
Δημιουργία μηχανής συστήματος γραμμών Αυτό δεν είναι σεμινάριο κώδικα, επομένως θα αποφύγω να σας ρίξω ένα σωρό κώδικα. Θα το διατηρήσω πρακτικό και θα περιγράψω πώς τα πράγματα γενικά λειτουργούν έναν κινητήρα συστήματος σειρών όσον αφορά την αρχιτεκτονική, τη ροή και την αξιοπιστία. Βασική Αρχιτεκτονική Όπως έχω πει πολλές φορές, κάντε τον διακομιστή τη μοναδική πηγή αλήθειας για τα δεδομένα σειρών. Η αρχιτεκτονική μπορεί να πάει κάπως έτσι στον διακομιστή:
Αποθηκεύστε τα δεδομένα κάθε χρήστη σε μια βάση δεδομένων. Αποθηκεύστε την τρέχουσα αποθήκευση γραμμών (προεπιλογή ως 0) ως ακέραιο. Αποθηκεύστε την προτίμηση ζώνης ώρας, δηλαδή τη συμβολοσειρά ζώνης ώρας IANA (είτε σιωπηρά από την τοπική χρονική σήμανση είτε ρητά ζητώντας από τον χρήστη να επιλέξει τη ζώνη ώρας του). Για παράδειγμα, "America/New_York". Χειριστείτε όλη τη λογική για να προσδιορίσετε εάν το σερί συνεχίζεται ή διακόπτεται, με έλεγχο ζώνης ώρας που είναι σχετικός με την τοπική ζώνη ώρας του χρήστη.
Εν τω μεταξύ, από την πλευρά του πελάτη:
Εμφάνιση της τρέχουσας σειράς, που συνήθως λαμβάνεται από τον διακομιστή. Στείλτε την ενέργεια που έγινε με τη μορφή μεταδεδομένων στον διακομιστή για να επιβεβαιώσετε εάν ο χρήστης ολοκλήρωσε πράγματι μια ενέργεια σειρής που πληροί τις προϋποθέσεις. Παρέχετε οπτική ανατροφοδότηση με βάση τις απαντήσεις του διακομιστή.
Έτσι, με λίγα λόγια, ο εγκέφαλος βρίσκεται στον διακομιστή και ο πελάτης είναι για σκοπούς προβολής και υποβολής συμβάντων. Αυτό σας εξοικονομεί πολλές αποτυχίες και περιπτώσεις άκρων, ενώ διευκολύνει τις ενημερώσεις και τις επιδιορθώσεις. Η Λογική Ροή Ας προσομοιώσουμε μια αναλυτική περιγραφή του τρόπου με τον οποίο θα πήγαινε μια ελάχιστη αποτελεσματική μηχανή συστήματος γραμμών όταν ένας χρήστης ολοκληρώνει μια ενέργεια:
Ο χρήστης ολοκληρώνει μια προκριματική ενέργεια σερί. Ο πελάτης στέλνει ένα συμβάν στον διακομιστή ως μεταδεδομένα. Αυτό θα μπορούσε να είναι "Ο χρήστης X ολοκλήρωσε την ενέργεια Y στη χρονική σήμανση Z". Ο διακομιστής λαμβάνει αυτό το συμβάν και κάνει βασική επικύρωση. Είναι πραγματικός χρήστης; Είναι επικυρωμένα; Ισχύει η ενέργεια; Είναι η ζώνη ώρας συνεπής; Εάν αυτό περάσει, ο διακομιστής ανακτά τα δεδομένα γραμμών του χρήστη από τη βάση δεδομένων. Στη συνέχεια, μετατρέψτε τη χρονική σήμανση ενέργειας που λάβατε στην τοπική ζώνη ώρας του χρήστη. Αφήστε τον διακομιστή να συγκρίνει τις ημερολογιακές ημερομηνίες (όχι τις χρονικές σημάνσεις) στην τοπική ζώνη ώρας του χρήστη: Αν είναι την ίδια μέρα, τότε η ενέργεια είναι περιττή και δεν υπάρχει αλλαγή στοράβδωση. Αν είναι η επόμενη μέρα, τότε το σερί επεκτείνεται και αυξάνεται κατά 1. Εάν υπάρχει κενό μεγαλύτερη από μία ημέρα, το σερί σπάει. Ωστόσο, εδώ μπορείτε να εφαρμόσετε τη μηχανική χάρη. Εάν παραλείψετε τον μηχανισμό χάρης, επαναφέρετε τη ράβδωση στο 1.
Εάν επιλέξετε να αποθηκεύσετε δεδομένα ιστορικού για επιτεύγματα ορόσημων, τότε ενημερώστε μεταβλητές όπως "μακρύτερο σερί" ή "συνολικές ενεργές ημέρες". Στη συνέχεια, ο διακομιστής ενημερώνει τη βάση δεδομένων και ανταποκρίνεται στον πελάτη. Κάτι σαν αυτό:
{ "current_streak": 48, "longest_streak": 50, "total_active_days": 120, "streak_extended": true, }
Ως περαιτέρω μέτρο, ο διακομιστής θα πρέπει είτε να προσπαθήσει ξανά είτε να απορρίψει και να ειδοποιήσει τον πελάτη όταν κάτι αποτύχει κατά τη διάρκεια της διαδικασίας. Κτίριο για την Ανθεκτικότητα Όπως αναφέρθηκε προηγουμένως, οι χρήστες που χάνουν ένα σερί λόγω σφαλμάτων ή διακοπής λειτουργίας διακομιστή είναι τρομερό UX και οι χρήστες δεν περιμένουν να το δεχτούν. Επομένως, το σύστημα ράβδων σας θα πρέπει να έχει διασφαλίσεις για αυτά τα σενάρια. Εάν ο διακομιστής είναι εκτός λειτουργίας λόγω συντήρησης (ή για οποιονδήποτε λόγο), εξετάστε το ενδεχόμενο να επιτρέψετε ένα προσωρινό παράθυρο επιπλέον ωρών για να το διορθώσετε, ώστε οι ενέργειες να μπορούν να υποβάλλονται καθυστερημένα και να εξακολουθούν να μετρούν. Μπορείτε επίσης να επιλέξετε να ειδοποιήσετε τους χρήστες, ειδικά εάν η κατάσταση είναι ικανή να επηρεάσει ένα συνεχές σερί. Σημείωση: Δημιουργήστε μια κερκόπορτα διαχειριστή όπου τα δεδομένα μπορούν να αποκατασταθούν με μη αυτόματο τρόπο. Τα σφάλματα είναι αναπόφευκτα και ορισμένοι χρήστες καλούν την εφαρμογή σας ή επικοινωνούν για να υποστηρίξουν ότι το σερί τους έσπασε για έναν λόγο που δεν μπορούσαν να ελέγξουν. Θα πρέπει να μπορείτε να επαναφέρετε χειροκίνητα τις ραβδώσεις εάν, μετά από έρευνα, ο χρήστης έχει δίκιο. Συμπέρασμα Ένα πράγμα παραμένει σαφές: Οι ραβδώσεις είναι πραγματικά ισχυρές λόγω του πώς λειτουργεί η ανθρώπινη ψυχολογία σε θεμελιώδες επίπεδο. Το καλύτερο σύστημα σειρών που υπάρχει είναι αυτό που οι χρήστες δεν σκέφτονται συνειδητά. Έχει γίνει μια ρουτίνα με άμεσα αποτελέσματα ή ορατή πρόοδο, όπως το βούρτσισμα των δοντιών, που γίνεται τακτική συνήθεια. Και απλά θα το πω: Δεν χρειάζονται όλα τα προϊόντα ένα σύστημα γραμμών. Θα έπρεπε πραγματικά να επιβάλλετε συνέπεια μόνο και μόνο επειδή θέλετε καθημερινούς ενεργούς χρήστες; Η απάντηση μπορεί κάλλιστα να είναι «όχι».