დარწმუნებული ვარ, გსმენიათ ზოლების შესახებ ან გამოიყენეთ აპლიკაცია. მაგრამ ოდესმე დაფიქრებულხართ, რატომ არის სტრიქები ასეთი პოპულარული და ძლიერი? აშკარაა, რომ აპებს თქვენი ყურადღების მიქცევა სჭირდებათ, მაგრამ ამას გარდა, იცოდით თუ არა, რომ როდესაც პოპულარულმა სასწავლო აპლიკაციამ Duolingo შემოიტანა iOS ვიჯეტები ზოლების საჩვენებლად, მომხმარებლის ვალდებულება 60%-ით გაიზარდა. სამოცი პროცენტი არის ქცევის მასიური ცვლილება და გვიჩვენებს, თუ როგორ შეიძლება გამოყენებულ იქნას „სტრიქონის“ შაბლონები ჩართულობის გაზრდისა და მოხმარების გასაძლიერებლად. ყველაზე ძირითადში, ზოლი არის ზედიზედ დღეების რაოდენობა, როდესაც მომხმარებელი ასრულებს კონკრეტულ აქტივობას. ზოგიერთი ადამიანი ასევე განსაზღვრავს მას, როგორც "გამიფიცირებულ" ჩვევას ან მეტრიკას, რომელიც შექმნილია თანმიმდევრული გამოყენების წასახალისებლად. მაგრამ ზოლები სცილდება აპლიკაციის მეტრიკას ან ჩანაწერს; ეს უფრო ფსიქოლოგიურია ვიდრე ეს. ადამიანის ინსტინქტებზე გავლენის მოხდენა ადვილია სწორი ფაქტორებით. შეხედეთ ამ სამ ფაქტორს: პროგრესი, სიამაყე და ხელიდან გაშვების შიში (რომელსაც ხშირად უწოდებენ FOMO). რა საერთო აქვს ამ ყველაფერს? ძალისხმევა. რაც უფრო მეტ ძალისხმევას იყენებთ რაიმეში, მით უფრო მეტად აყალიბებს თქვენს იდენტობას და ასე გადადის ზოლები ქცევითი ფსიქოლოგიის სამყაროში. ახლა, დიდ ძალასთან ერთად, დიდი პასუხისმგებლობა მოდის და ამის გამო, ზოლებს ბნელი მხარე აქვს. ამ სტატიაში ჩვენ განვიხილავთ ფსიქოლოგიას, UX-ს და დიზაინის პრინციპებს ეფექტური ზოლის სისტემის შექმნის უკან. ჩვენ განვიხილავთ (1) რატომ რეაგირებს ჩვენი ტვინი თითქმის ინსტინქტურად ზოლის აქტივობაზე, (2) როგორ შევქმნათ ზოლები ისე, რომ ჭეშმარიტად დაეხმაროს მომხმარებლებს და (3) ტექნიკური სამუშაო, რომელიც ჩართულია ზოლის ნიმუშის შექმნაში. ფსიქოლოგია ზოლების მიღმა იმისათვის, რომ შევქმნათ და ავაშენოთ ეფექტური ზოლის სისტემა, ჩვენ უნდა გვესმოდეს, თუ როგორ შეესაბამება ის ჩვენს ტვინს სადენთან. მაგალითად, რა ხდის მას ასე ეფექტურს იმდენად, რამდენადაც ჩვენ ვგრძნობთ ამდენ ერთგულებას ჩვენი ზოლების დასაცავად? არსებობს სამი საინტერესო, კარგად დოკუმენტირებული ფსიქოლოგიის პრინციპი, რომელიც მხარს უჭერს იმას, რაც სტრიქებს ასე ძლიერს და ნარკოტიკულს ხდის. ზარალის ზიზღი ეს არის ალბათ ყველაზე ძლიერი ძალა ზოლების მიღმა. ამას იმიტომ ვამბობ, რომ უმეტეს შემთხვევაში, ცხოვრებაში ამას თითქმის ვერ აირიდებ. იფიქრეთ ამაზე: თუ მეგობარი მოგცემთ 100 დოლარს, ბედნიერი იქნებით. მაგრამ თუ საფულედან 100 დოლარი დაკარგეთ, ეს უფრო მეტად დააზარალებს. ამ სიტუაციების ემოციური წონა არ არის თანაბარი. დაკარგვა უფრო მეტად მტკივნეულია, ვიდრე მოგება კარგია. ავიღოთ უფრო შორს და ვთქვათ, რომ მე გაძლევ 100 დოლარს და გთხოვ აზარტული თამაში. არსებობს 50% შანსი, რომ მოიგოთ კიდევ $100 და 50% შანსი დაკარგოთ ორიგინალური $100. აიღებდი? მე არ ვიქნებოდი. ადამიანების უმეტესობა არა. ეს არის წაგების ზიზღი. თუ დაფიქრდები, ლოგიკურია, გასაგებია, ადამიანურია. დაკარგვის ზიზღის კონცეფცია არის ის, რომ ჩვენ ვგრძნობთ რაიმეს დაკარგვის ტკივილს ორჯერ უფრო მეტს, ვიდრე სიამოვნებას რაღაც თანაბარი ღირებულების მოპოვებით. ფსიქოლოგიური თვალსაზრისით, ზარალი უფრო მეტხანს გრძელდება, ვიდრე მოგება. თქვენ ალბათ ხედავთ, როგორ უკავშირდება ეს ზოლებს. შესამჩნევი ზოლის შესაქმნელად საჭიროა ძალისხმევა; ზოლის ზრდასთან ერთად, მის უკან მოტივაცია ქრება; უფრო სწორად, ის მეორეხარისხოვანი ხდება. აი მაგალითი: თქვით, რომ თქვენს მეგობარს აქვს სამდღიანი სერია და ხურავს მათ „Move Rings“ თავის Apple Watch-ზე. მათ თითქმის არაფერი აქვთ დასაკარგი მიზნის მიღწევისა და თანმიმდევრობის სურვილის გარდა. ამავდროულად, თქვენ გაქვთ შთამბეჭდავი 219-დღიანი სერია. დიდი შანსია, რომ მისი დაკარგვის შიშის ხაფანგში მოხვდებით. თქვენ დიდი ალბათობით ამ ეტაპზე არ ფიქრობთ მიღწევაზე; ეს უფრო ეხება თქვენი ინვესტიციული ძალისხმევის დაცვას და ეს არის ზარალის ზიზღი. Duolingo განმარტავს, თუ როგორ უწყობს ხელს დაკარგვის ზიზღი მომხმარებლის უხალისობას, გაწყვიტოს გრძელი სერია, თუნდაც ყველაზე ზარმაცი დღეებში. გარკვეულწილად, სერია შეიძლება გადაიზარდოს ჩვევად, როდესაც დაკარგვის ზიზღი დამკვიდრდება. ფოგის ქცევის მოდელი (B = MAP) ახლა, როდესაც ჩვენ გვესმის შიში, რომ დავკარგოთ ძალისხმევის უფრო ხანგრძლივ სტრიქონებში, კიდევ ერთი კითხვაა: რა გვაიძულებს გავაკეთოთ საქმე პირველ რიგში, დღითი დღე, მანამდეც კი, სანამ სერია გაიზრდება? სწორედ ეს ეხება ფოგის ქცევის მოდელს. შედარებით მარტივია. ქცევა (B) ხდება მხოლოდ მაშინ, როდესაც სამი ფაქტორი - მოტივაცია (M), უნარი (A) და მოთხოვნა (P) - ერთსა და იმავე მომენტში შეესაბამება. ამრიგად, განტოლება B=MAP. თუ რომელიმე ამ ფაქტორს, თუნდაც ერთი, აკლია იმ მომენტში, ქცევა არ მოხდება. ასე რომ, იმისათვის, რომ ზოლის სისტემა იყოს ეფექტური და განმეორებადი, სამივე ფაქტორი უნდა იყოს წარმოდგენილი: მოტივაცია ეს არის მყიფე და არა ის, რაც მუდმივად არსებობს. არის დღეები, როცა ხარგეხმარებათ ესპანური ენის შესასწავლად და დღეებში არც კი გრძნობთ ნებისყოფას ენის შესასწავლად. ჩვევის ჩამოყალიბების მოტივაცია თავისთავად არასანდოა და წაგებული ბრძოლა პირველივე დღიდან. მოტივაციის შეზღუდვის კომპენსაციის უნარი, უნარი გადამწყვეტია. ამ კონტექსტში, უნარი ნიშნავს მოქმედების სიმარტივეს, ანუ ძალისხმევა იმდენად მარტივია, რომ არარეალურია იმის თქმა, რომ ეს შეუძლებელია. აპლიკაციების უმეტესობა ამას განზრახ იყენებს. Apple Fitness-ს მხოლოდ ერთი წუთი სჭირდება დგომა საათში, რათა მიაღწიოთ თქვენს მიზნის მიღწევას. Duolingo სჭირდება მხოლოდ ერთი დასრულებული გაკვეთილი. ეს ამოცანები არ მოითხოვს დიდ ძალისხმევას. ბარიერი იმდენად დაბალია, რომ ყველაზე ცუდ დღეებშიც კი შეგიძლია ამის გაკეთება. მაგრამ უწყვეტი სერიის ერთობლივი ძალისხმევით იწყება ამ სერიის წაგების იდეა. PromptThis არის ის, რაც ასრულებს განტოლებას. ადამიანები ბუნებრივად გულმავიწყები არიან, ასე რომ, დიახ, უნარს შეუძლია 90% იქამდე მიგვიყვანოს. მაგრამ მოთხოვნა გვახსენებს, რომ ვიმოქმედოთ. ზოლები დიზაინით მდგრადია, ამიტომ მომხმარებლებს მუდმივად უნდა შეახსენონ, რომ იმოქმედონ. იმის სანახავად, თუ რამდენად ძლიერი შეიძლება იყოს მოთხოვნა, Duolingo-მ ჩაატარა A/B ტესტი, რათა დაენახა, აპლიკაციის ხატულაზე პატარა წითელი ბეჯი გაზრდის თუ არა თანმიმდევრულ გამოყენებას. მან გამოიწვია ყოველდღიური აქტიური მომხმარებლების 6%-იანი ზრდა. მხოლოდ წითელი სამკერდე ნიშანი. მოდელის შეზღუდვები ყოველივე ამის შემდეგ, არსებობს ფოგის მოდელის შეზღუდვა, რომლის მიხედვითაც კრიტიკოსებმა და თანამედროვე კვლევებმა შეამჩნიეს, რომ დიზაინი, რომელიც ძალიან ეყრდნობა მოთხოვნებს, როგორიცაა აგრესიული შეტყობინებები, რისკავს ფსიქიკური დაღლილობის შექმნას. მუდმივმა შეტყობინებებმა და ზეგანაკვეთურმა დრომ შეიძლება გამოიწვიოს მომხმარებლების დათრგუნვა. ასე რომ, ამას გაუფრთხილდი. ზეიგარნიკის ეფექტი როგორ გრძნობთ თავს, როცა პროექტის დავალებას ნახევრად შესრულებული ტოვებთ? ეს ბევრ ადამიანს აღიზიანებს, რადგან დაუმთავრებელი დავალებები უფრო მეტ გონებრივ ადგილს იკავებს, ვიდრე ის, რასაც ჩვენ ვასრულებთ. როდესაც რაღაც კეთდება და წავიდა, ჩვენ მიდრეკილნი ვართ დავივიწყოთ იგი. როდესაც რაღაც რჩება გაუკეთებელი, ის ჩვენს გონებაში ამძიმებს. სწორედ ამიტომ ციფრული პროდუქტები იყენებს პროგრესის ხელოვნურ ინდიკატორებს, როგორიცაა Upwork-ის პროფილის დასრულების ზოლი, რათა მომხმარებელს აცნობოს, რომ მათი პროფილი მხოლოდ „60%-ით არის დასრულებული“. ის უბიძგებს მომხმარებელს დაასრულოს ის, რაც დაიწყო.
გადავხედოთ სხვა მაგალითს. თქვენ გაქვთ ხუთი დავალება სამუშაოების სიის აპლიკაციაში და დღის ბოლოს, თქვენ ამოწმებთ მხოლოდ ოთხ მათგანს, როგორც დასრულებულს. ბევრი ჩვენგანი თავს შეუსრულებლად იგრძნობს ამ ერთი დაუმთავრებელი ამოცანის გამო. სწორედ იქ არის ზეიგარნიკის ეფექტი. ზეიგარნიკის ეფექტი აჩვენა ფსიქოლოგმა ბლუმა ზეიგარნიკმა, რომელმაც აღწერა, რომ ჩვენ მიდრეკილნი ვართ არასრული დავალებები აქტიურ მეხსიერებაში შევინარჩუნოთ დასრულებულ დავალებებზე მეტხანს. ზოლის ნიმუში ბუნებრივად აისახება ამას UX დიზაინში. ვთქვათ, რომ თქვენ ხართ სწავლის სერიის 63-ე დღეს. ამ დროს, თქვენ ხართ დაუმთავრებელი საქმის მუდმივი ნიმუში. თქვენი ტვინი იშვიათად დაივიწყებს ამას, რადგან ის თქვენს გონებაშია. ამ დროს, თქვენი ტვინი ხდება ის, ვინც გიგზავნით შეტყობინებებს. როდესაც ამ ფსიქოლოგიურ ძალებს აერთიანებთ, თქვენ იწყებთ ჭეშმარიტად იმის გაგებას, თუ რატომ არ არის ზოლები მხოლოდ აპლიკაციის ჩვეულებრივი ფუნქცია; მათ შეუძლიათ შეცვალონ ადამიანის ქცევა. მაგრამ სადღაც ხაზის გასწვრივ - ზუსტად ვერ გეტყვით, როდის, რადგან ეს ყველასთვის განსხვავებულია - ყველაფერი მიდის იქამდე, რომ სერია "გართობიდან" გადადის ისეთზე, რისი დაკარგვაც არ შეგიძლიათ. თქვენ არ გინდათ, რომ 58 დღის ძალისხმევა ფუჭად წავიდეს, არა? სწორედ ეს ხდის სტრიქონულ სისტემას ეფექტურს. თუ სწორად გაკეთდა, ზოლები ეხმარება მომხმარებლებს შექმნან გასაოცარი ჩვევები, რომლებიც ასრულებენ მიზანს. ეს შეიძლება იყოს ყოველდღიური კითხვა ან სპორტდარბაზში მუდმივად სიარული. ეს განმეორებითი მოქმედებები (ზოგჯერ მცირე) დროთა განმავლობაში ერწყმის და აშკარა ხდება ჩვენს ყოველდღიურ ცხოვრებაში. მაგრამ ყველა მონეტას ორი მხარე აქვს. წვრილი ხაზი ჩვევასა და იძულებას შორის თუ თქვენ თვალყურს ადევნებდით, უკვე შეგიძლიათ თქვათ, რომ არსებობს ზოლის სისტემების ბნელი მხარე. ჩვევის ჩამოყალიბება არის თანმიმდევრულობა განმეორებით მიზანთან. თუმცა, იძულება არის მიზანზე მუშაობის თანმიმდევრულობა, რომელიც აღარ არის საჭირო, მაგრამ შენარჩუნებულია შიშის ან ზეწოლის გამო. ეს არის წვრილი ხაზი. ყოველ დილით იხეხავ კბილებს დაუფიქრებლად; ის ავტომატური და ინსტინქტურია, კარგი სუნთქვის მკაფიო მიზნით. ეს არის ზოლი, რომელიც ქმნის კარგ ჩვევას. ეთიკური ზოლის სისტემა მომხმარებლებს აძლევს სუნთქვის სივრცეს. თუ რაიმე მიზეზით დილით არ ივარცხნით, შეგიძლიათ შუადღისას დაივარცხნოთ. არასრულყოფილება დასაშვებია ხანგრძლივი ძალისხმევის დაკარგვის შიშის გარეშე. იძულება გადის საპირისპირო გზას, რომლის დროსაც სერი გაწუხებს, გრძნობ თავს დამნაშავედ ან თუნდაც დაღლილად და ზოგჯერ ისეთი შეგრძნება გაქვს, თითქოს ვერაფერს მიაღწიე, მიუხედავად ყველაფრისა.მუშაობა. თქვენ მოქმედებთ არა იმიტომ, რომ ასე გინდათ, არამედ იმიტომ, რომ ქვეცნობიერად გეშინიათ თქვენი პროგრესის ნულამდე გადაბრუნების დანახვის. ვიღაცამ ეს მშვენივრადაც კი აღწერა: "ვგრძნობდი, რომ ვატყუებდი, მაგრამ უბრალოდ არ მაინტერესებდა. მე არაფერი ვარ ჩემი სტრიქის გარეშე". ეს გვიჩვენებს, თუ რა ექსტრემალური შეკავების ზოლები შეიძლება ჰქონდეს ინდივიდს. იმდენად, რამდენადაც მომხმარებლები იწყებენ თავიანთი თვითშეფასების მიბმას თვითნებურ მეტრებთან და არა თავდაპირველ მიზანთან ან მიზეზთან, მათ დაიწყეს ეს სერია პირველ რიგში. სერია ხდება ის, ვინც ისინი არიან და არა მხოლოდ ის, რასაც აკეთებენ. კარგად შემუშავებული ეთიკური ზოლის სისტემა მომხმარებლისთვის წახალისებად უნდა იგრძნოს და არა ზეწოლას ან ვალდებულებას. ეს ეხება შინაგანი და გარეგანი მოტივაციის ბალანსს. გარე მოტივაციამ (გარეგან ჯილდოები, დასჯის თავიდან აცილება) შესაძლოა მომხმარებლების დაწყებას შეუწყოს ხელი, მაგრამ შინაგანი მოტივაცია (დავალების შესრულება პირადი მიზნისთვის, როგორიცაა ესპანური ენის სწავლა, რადგან ნამდვილად გსურთ საყვარელ ადამიანთან ურთიერთობა) უფრო ძლიერია გრძელვადიანი ჩართულობისთვის. კარგი სისტემა უნდა იყოს მიზიდული შინაგანი მოტივაციისკენ გარეგანი ელემენტების ფრთხილად გამოყენებით, ანუ შეახსენოს მომხმარებლებს, თუ რამდენად შორს წავიდნენ ისინი და არ დაემუქროს მათ იმით, რაც შეიძლება დაკარგონ. ისევ და ისევ, ეს არის მშვენიერი ხაზი. მარტივი ტესტი ზოლის სისტემის შემუშავებისას არის რეალურად გარკვეული დრო დაუთმოთ და ვიფიქროთ, გამოიმუშავებს თუ არა ფულს თქვენი პროდუქტები თქვენი პროდუქტის მიერ შექმნილი შფოთვის გადაწყვეტის გაყიდვით. თუ კი, დიდი შანსია, რომ გამოიყენოთ მომხმარებლები. ასე რომ, შემდეგი კითხვა ხდება, თუ მე ვირჩევ სტრიქის გამოყენებას, როგორ შევქმნა ის ისე, რომ ჭეშმარიტად დაეხმაროს მომხმარებლებს თავიანთი მიზნების მიღწევაში? კარგი სტრიქის სისტემის დიზაინის UX მე მჯერა, რომ ეს არის ის, სადაც პროექტების უმეტესობა ან აფერხებს ეფექტურ ზოლის სისტემას ან მთლიანად აფუჭებს მას. მოდით გავიაროთ კარგი ზოლის დიზაინის რამდენიმე UX პრინციპი. შეინახეთ ეს ძალისხმევის გარეშე თქვენ ალბათ გსმენიათ ეს ადრე, შესაძლოა წიგნებიდან, როგორიცაა ატომური ჩვევები, მაგრამ აღსანიშნავია, რომ ჩვევების ჩამოყალიბების ერთ-ერთი ყველაზე მარტივი გზაა მოქმედების პატარა და მარტივი. ეს არის უნარის ფაქტორის მსგავსი, რომელიც განვიხილეთ ფოგის ქცევის მოდელიდან. ნებისმიერი ზოლის დიზაინის პირველი წესი უნდა იყოს საჭირო მოქმედების რაც შეიძლება მცირე ზომის გაკეთება, პროგრესის მიღწევისას. თუ ყოველდღიური მოქმედება შესასრულებლად საჭიროებს ნებისყოფას, ეს ქმედება არ გასცდება ხუთ დღეს. რატომ? ზედიზედ ხუთი დღე ვერ იქნები მოტივირებული. მაგალითი: თუ თქვენ აწარმოებთ მედიტაციის აპს, არ გჭირდებათ მომხმარებლების 20 წუთიანი სესიის გავლა მხოლოდ იმისთვის, რომ შეინარჩუნოთ სერიები. სამაგიეროდ, სცადეთ ერთი წუთი, შესაძლოა ოცდაათი წამიც კი. როგორც ამბობენ, წყლის პატარა წვეთები ქმნის ძლიერ ოკეანეს). მცირე ძალისხმევა დროთა განმავლობაში დიდ მიღწევებად იქცევა. ეს უნდა იყოს მიზანი: მოიშორეთ ხახუნი, განსაკუთრებით მაშინ, როდესაც ეს მომენტი შეიძლება იყოს რთული. როდესაც მომხმარებლები სტრესის ქვეშ არიან ან გადატვირთული არიან, აცნობეთ მათ, რომ უბრალოდ გამოჩენა, თუნდაც რამდენიმე წამით, ძალისხმევად ითვლება. მკაფიო ვიზუალური გამოხმაურების მიწოდება ადამიანი ბუნებით ვიზუალურია. უმეტეს შემთხვევაში, ჩვენ გვჭირდება რაღაცის დაჯერება; საჭიროა ვიზუალურად ვიზუალურად გავიაზროთ ისინი, რათა უკეთ გავიგოთ და საგნები პერსპექტივაში ჩავდოთ. სწორედ ამიტომ, ზოლის შაბლონები ხშირად იყენებენ ვიზუალურ ელემენტებს, როგორიცაა გრაფიკები, გამშვები ნიშნები, პროგრესის რგოლები და ბადეები ძალისხმევის ვიზუალიზაციისთვის. შეხედეთ GitHub-ის წვლილის გრაფიკს. ეს არის თანმიმდევრულობის მარტივი ვიზუალიზაცია. თუმცა დეველოპერები მას ჟანგბადის მსგავსად სუნთქავენ.
მთავარი ის არის, რომ სტრიქის სისტემა აბსტრაქტული არ იყოს. ეს უნდა იგრძნოს რეალურად და დამსახურებულად. მაგალითად, Duolingo და Apple's Fitness-ის აქტივობების რგოლები იყენებენ სუფთა ანიმაციის დიზაინს სერიების დასრულების შემდეგ, ხოლო GitHub აჩვენებს მომხმარებლის თანმიმდევრულობის ისტორიულ მონაცემებს დროთა განმავლობაში.
გამოიყენეთ კარგი დრო ადრე აღვნიშნე, რომ ადამიანები, როგორც წესი, გულმავიწყები არიან ბუნებით, და რომ მოთხოვნებს შეუძლიათ ხელი შეუწყონ წინსვლის იმპულსის შენარჩუნებას. მოთხოვნის გარეშე, ახალი მომხმარებლების უმეტესობას ავიწყდება გაგრძელება. ცხოვრება შეიძლება დატვირთული იყოს, მოტივაცია ქრება და რაღაცეები ხდება. გრძელვადიანი მომხმარებლებიც კი სარგებლობენ მოთხოვნით, თუმცა უმეტეს შემთხვევაში ისინი უკვე ჩაკეტილნი არიან ჩვევების მარყუჟში. მიუხედავად ამისა, ყველაზე ერთგული ადამიანიც კი შეიძლება შემთხვევით გამოტოვოს დღე. თქვენს ზოლის სისტემას აუცილებლად სჭირდება შეხსენებები. ყველაზე ხშირად გამოყენებული სწრაფი შეხსენებები არის push-შეტყობინებები. დრო ნამდვილად მნიშვნელოვანია Push შეტყობინებებთან მუშაობისას. ასევე მნიშვნელოვანია აპლიკაციის ტიპი. დილის 9 საათზე შეტყობინების გაგზავნა, რომელშიც ნათქვამია: „დღეს არ ივარჯიშე“ უბრალოდ უცნაურია სასწავლო აპლიკაციისთვის, რადგან ბევრს აქვს სამუშაო დღის განმავლობაში, სანამ გაკვეთილის დასრულებაზეც კი ფიქრობს. თუმცა, თუ ვსაუბრობთ ფიტნეს აპლიკაციაზე, ისარის გონივრული და შესაძლოა მოსალოდნელიც კი იყოს შეხსენება უფრო ადრე. Push შეტყობინებები მნიშვნელოვნად განსხვავდება აპლიკაციის კატეგორიის მიხედვით. ფიტნეს აპები, მაგალითად, ხედავენ უფრო მაღალ ჩართულობას დილის ადრეული შეტყობინებებით (7-8 AM), ხოლო პროდუქტიულობის აპები შეიძლება უკეთესად მუშაობდნენ შუადღისას. მთავარია A/B შეამოწმოთ თქვენი აპლიკაციის დრო თქვენი მომხმარებლების ქცევებზე დაფუძნებული, ვიდრე ვივარაუდოთ, რომ ყველაფერი ერთნაირია. ის, რაც მუშაობს მედიტაციის აპისთვის, შესაძლოა არ იმუშაოს კოდირების ტრეკერისთვის. სხვა სწრაფი მეთოდებია წითელი წერტილები აპის ხატულაზე და აპლიკაციის ვიჯეტებიც კი. კვლევები განსხვავებულია, მაგრამ საშუალოდ ადამიანი ხსნის მოწყობილობას დღეში 50-150-ჯერ (PDF). თუ მომხმარებელი ხედავს წითელ წერტილს აპზე ან ვიჯეტზე, რომელიც მიუთითებს მიმდინარე ზოლზე ყოველ ჯერზე, როცა ისინი განბლოკავს ტელეფონის, ეს ზრდის ვალდებულებას. უბრალოდ არ გადააჭარბოთ მას; მოწოდება უნდა იყოს შეხსენების ფუნქცია და არა ნაღდად. იზეიმეთ ეტაპები სტრიქების სისტემა უნდა ცდილობდეს აღნიშნოს ეტაპები ემოციების აღორძინების მიზნით, განსაკუთრებით მომხმარებლებისთვის, რომლებიც ღრმა ზოლში არიან. როდესაც მომხმარებელი ხვდება დღეს 7, დღე 30, დღე 50, დღე 100, დღე 365, თქვენ უნდა გააკეთოთ დიდი საქმე. აღიარეთ მიღწევები - განსაკუთრებით დიდი ხნის მომხმარებლებისთვის.
როგორც ადრე ვნახეთ, დუოლინგომ გაარკვია ეს და დანერგა ანიმაციური გრაფიკა, რომელიც აღნიშნავს ეტაპებს კონფეტით. ზოგიერთი პლატფორმა კი იძლევა მნიშვნელოვან ბონუს ჯილდოს, რომელიც ადასტურებს მომხმარებლების ძალისხმევას. და ეს შეიძლება იყოს მომგებიანი აპებისთვის, ასე რომ, მომხმარებლები მიდრეკილნი არიან თავიანთი ეტაპების საჯაროდ გაზიარებას სოციალურ მედიაში. კიდევ ერთი სარგებელი არის მოლოდინი, რომელიც დგება ეტაპების მიღწევამდე. ეს არ არის მხოლოდ სერიის უსასრულოდ შენარჩუნება; მომხმარებლებს მოუთმენლად უნდა ელოდონ. გამოიყენეთ Grace მექანიზმები ცხოვრება არაპროგნოზირებადია. ხალხი იფანტება. ნებისმიერი კარგი ზოლის სისტემა უნდა მოელოდეს არასრულყოფილებას. ერთ-ერთი ყველაზე დიდი ფსიქოლოგიური საფრთხე სტრიქის სისტემისთვის არის მძიმე გადატვირთვა ნულამდე მხოლოდ ერთი გამოტოვებული დღის შემდეგ. „ეთიკურმა“ ზოლის სისტემამ უნდა უზრუნველყოს მომხმარებლის გარკვეული დეფექტი. ვთქვათ, თქვენ გაქვთ ჭადრაკის სწავლის 90-დღიანი სერია. სამი კარგი თვე იყავი თანმიმდევრული და ერთ მშვენიერ დღეს ტელეფონი კვდება მოგზაურობისას და ზუსტად ასე, 90 ხდება 0 - ყველაფერი, მთელი ეს ძალისხმევა წაიშლება და პროგრესი ქრება. მომხმარებელი შეიძლება მთლიანად განადგურებული იყოს. მისი ნულიდან აღდგენის ფიქრი იმდენად დემორალიზებულია, რომ ძალისხმევა არ ღირს. უარეს შემთხვევაში, მომხმარებელმა შეიძლება მიატოვოს აპი მას შემდეგ, რაც თავს წარუმატებლად გრძნობს. იფიქრეთ თქვენს სტრიქონულ სისტემაში „მადლის“ მექანიზმის დამატებაზე:
Streak Freeze ნება მიეცით მომხმარებლებს განზრახ გამოტოვონ დღე ჯარიმების გარეშე. დამატებითი დრო დაუშვით რამდენიმე საათი (2–3) გასცდეს ჩვეულ ვადას გადატვირთვის დაწყებამდე. დაშლის მოდელები, მყარი გადატვირთვის ნაცვლად, სტრიქონი მცირდება მცირე რაოდენობით, მაგ., 10 დღე აკლდება სტრიქონს ყოველ გამოტოვებულ დღეს.
გამოიყენეთ გამამხნევებელი ტონი მოდით შევადაროთ ორი შეტყობინება, რომელიც ნაჩვენებია მომხმარებლებს, როდესაც წყდება სერი:
"თქვენ დაკარგეთ 42-დღიანი სერია. დაიწყეთ თავიდან." "თქვენ გამოჩნდით ზედიზედ 42 დღის განმავლობაში. ეს წარმოუდგენელი პროგრესია! გსურთ კიდევ ერთხელ სცადოთ?"
ორივე ერთსა და იმავე ინფორმაციას გადმოსცემს, მაგრამ ემოციური გავლენა განსხვავებულია. პირველი შეტყობინება, სავარაუდოდ, აგრძნობინებს მომხმარებელს დემორალიზებულ გრძნობას და აიძულებს მათ დატოვოს. მეორე შეტყობინება აღნიშნავს უკვე მიღწეულს და ნაზად მოუწოდებს მომხმარებელს ხელახლა სცადოს. Streak Systems დიზაინის გამოწვევები სანამ ზოლის სისტემის აგების ტექნიკურ სპეციფიკას გადავიდოდეთ, უნდა იცოდეთ რა გამოწვევები შეიძლება შეგექმნათ. რამ შეიძლება გართულდეს, როგორც თქვენ შეიძლება მოელოდეთ. დროის სარტყლების მართვა არსებობს მიზეზი, რის გამოც დროისა და თარიღის მართვა ყველაზე რთულ კონცეფციებს შორისაა დეველოპერები. გასათვალისწინებელია ფორმატირება, ინტერნაციონალიზაცია და მრავალი სხვა. ნება მომეცით გკითხოთ: რა ითვლება დღედ? ჩვენ ვიცით, რომ სამყარო მუშაობს სხვადასხვა დროის ზონაში და თითქოს ეს საკმარისი არ არის, ზოგიერთ რეგიონში არის დღის სინათლის დრო (DST), რომელიც წელიწადში ორჯერ ხდება. საიდან იწყებთ ამ საპირისპირო შემთხვევების დამუშავებას? რა ითვლება ხვალინდელი დღის „დასაწყისად“? ზოგიერთი დეველოპერი ცდილობს ამის თავიდან აცილებას ერთი ცენტრალური დროის ზონის გამოყენებით, როგორიცაა UTC. ზოგიერთი მომხმარებლისთვის ეს გამოიღებს სწორ შედეგებს, მაგრამ ზოგიერთისთვის ის შეიძლება გამორთული იყოს ერთი საათით, ორი საათით ან მეტით. ეს შეუსაბამობა ანგრევს მომხმარებლის გამოცდილებას. მომხმარებლებს ნაკლებად აინტერესებთ, როგორ ატარებთ დროს კულისებში; მხოლოდ ისინი ელიან, რომ თუ ისინი შეასრულებენ სტრიქონულ მოქმედებას 23:40 საათზე, მაშინ ის უნდა დარეგისტრირდეს ზუსტად იმ დროს, მათ კონტექსტში. თქვენ უნდა განსაზღვროთ „ერთი დღე“ მომხმარებლის ლოკალური დროის ზონის საფუძველზე და არა სერვერის დროზე. რა თქმა უნდა, შეგიძლიათ მარტივად მიიღოთმარშრუტი და გადატვირთეთ ზოლები გლობალურად ყველა მომხმარებლისთვის შუაღამისას UTC, მაგრამ თქვენ ძალიან ქმნით უსამართლობას. ვინმეს კალიფორნიაში ყოველთვის აქვს რვა დამატებითი საათი თავისი დავალების შესასრულებლად, ვიდრე ლონდონში მცხოვრებს. ეს არის უსამართლო დიზაინის ხარვეზი, რომელიც სჯის გარკვეულ მომხმარებლებს მათი მდებარეობის გამო. და რა მოხდება, თუ ის ადამიანი ლონდონში მხოლოდ სტუმრობს, ასრულებს დავალებას და შემდეგ ბრუნდება სხვა დროის სარტყელში? ამ ყველაფრის ერთ-ერთი ეფექტური გამოსავალია სთხოვოთ მომხმარებლებს მკაფიოდ დააყენონ სასაათო სარტყელი ჩასვლისას (სასურველია პირველი ავტორიზაციის შემდეგ). კარგი იდეაა დახვეწილი შენიშვნა, რომ დროის სარტყლის შესახებ ინფორმაციის მიწოდება გამოიყენება მხოლოდ აპისთვის, რათა ზუსტად თვალყური ადევნოს პროგრესს და არა პერსონალურად იდენტიფიცირებულ მონაცემებად. და კიდევ ერთი კარგი იდეაა, რომ ეს ცვალებადი პარამეტრი იყოს. მე ვთავაზობ, რომ ვინმემ თავი აარიდოს აპში დროის სარტყელის ლოგიკის პირდაპირ დამუშავებას. გამოიყენეთ გამოცდილი და ჭეშმარიტი თარიღების ბიბლიოთეკები, როგორიცაა Moment.js ან pytz (Python) და ა.შ. არ არის საჭირო ბორბლის ხელახლა გამოგონება ისეთი რთული ნივთისთვის. Missed Days და Edge Cases კიდევ ერთი გამოწვევა, რაზეც უნდა ინერვიულოთ, არის უკონტროლო ზღვრული შემთხვევები, როგორიცაა მომხმარებლების ზედმეტად ძილი, სერვერის შეფერხება, შეფერხება, ქსელის გაუმართაობა და ა.შ. მადლის მექანიზმების იდეის გამოყენება, როგორიც ადრე განვიხილეთ, შეიძლება დაგვეხმაროს. ორსაათიანი მადლის ფანჯარა შეიძლება დაეხმაროს როგორც მომხმარებელს, ასევე დეველოპერს, იმ გაგებით, რომ მომხმარებლები მკაცრად არ ისჯებიან უკონტროლო ცხოვრებისეული გარემოებების გამო. დეველოპერებისთვის, Grace Windows სასარგებლოა იმ უკონტროლო მომენტებში, როდესაც სერვერი იშლება შუაღამისას. უპირველეს ყოვლისა, არასოდეს ენდოთ კლიენტს. ყოველთვის გადაამოწმეთ სერვერის მხარეს. სერვერი უნდა იყოს სიმართლის ერთადერთი წყარო. მოტყუების პრევენცია კიდევ ერთხელ, მე არ შემიძლია საკმარისად ხაზგასმით აღვნიშნო ეს: დარწმუნდით, რომ დაადასტურეთ ყველაფერი სერვერის მხრიდან. მომხმარებლები ადამიანები არიან და ადამიანებმა შეიძლება მოატყუონ, თუ ამის საშუალება მიეცემათ. ეს გარდაუვალია. შეგიძლიათ სცადოთ:
ყველა მოქმედების შენახვა UTC დროის შტამპებით. კლიენტს შეუძლია გამოაგზავნოს ადგილობრივი დრო, მაგრამ სერვერს შეუძლია დაუყოვნებლივ გადაიყვანოს ის UTC-ში და გადაამოწმოს სერვერის დროზე. ამგვარად, თუ კლიენტის დროის ანაბეჭდი საეჭვოდ შორს არის, სისტემას შეუძლია უარყოს იგი შეცდომის სახით და UI-ს შეუძლია შესაბამისი რეაგირება. მოვლენებზე დაფუძნებული თვალთვალის გამოყენებით. სხვა სიტყვებით რომ ვთქვათ, შეინახეთ თითოეული მოქმედების ჩანაწერი მეტამონაცემებით, მათ შორის ისეთი ინფორმაციის ჩათვლით, როგორიცაა მომხმარებლის ID, შესრულებული მოქმედების ტიპი და დროის ანაბეჭდი და დროის სარტყელი. ეს ხელს უწყობს დადასტურებას.
Streak სისტემის ძრავის აგება ეს არ არის კოდის გაკვეთილი, ასე რომ, მე თავიდან ავიცილებ თქვენზე კოდების დაყრას. მე შევინარჩუნებ ამას პრაქტიკულს და აღვწერ, თუ როგორ მუშაობს ზოგადად სტრიქონული სისტემის ძრავა, რამდენადაც არქიტექტურა, ნაკადი და საიმედოობა. ძირითადი არქიტექტურა როგორც რამდენჯერმე ვთქვი, გახადეთ სერვერი სიმართლის ერთ წყაროდ ზოლის მონაცემებისთვის. არქიტექტურა შეიძლება ასე წავიდეს სერვერზე:
შეინახეთ თითოეული მომხმარებლის მონაცემები მონაცემთა ბაზაში. შეინახეთ მიმდინარე ზოლის შენახვა (ნაგულისხმევი როგორც 0) მთელ რიცხვად. შეინახეთ დროის სარტყლის პრიორიტეტი, ე.ი., IANA Timezone სტრიქონი (ან იმპლიციტურად ლოკალური დროის ნიშნულიდან, ან ცალსახად მომხმარებლის თხოვნით, შეარჩიოს თავისი დროის სარტყელი). მაგალითად, "ამერიკა/ნიუ_იორკი". გაუმკლავდეთ ყველა ლოგიკას, რათა დაადგინოთ, სტრიქონი გრძელდება თუ წყდება, დროის ზონის შემოწმებით, რომელიც შეესაბამება მომხმარებლის ლოკალურ სასაათო სარტყელს.
იმავდროულად, კლიენტის მხრიდან:
აჩვენეთ მიმდინარე სტრიქონი, რომელიც ჩვეულებრივ მიღებულია სერვერიდან. გაგზავნეთ სერვერზე მეტამონაცემების სახით შესრულებული ქმედება, რათა დაადასტუროთ, დაასრულა თუ არა მომხმარებელმა საკვალიფიკაციო ზოლის მოქმედება. უზრუნველყოს ვიზუალური გამოხმაურება სერვერის პასუხებზე დაყრდნობით.
ასე რომ, მოკლედ, ტვინი სერვერზეა, კლიენტი კი ჩვენების მიზნებისთვის და მოვლენების წარდგენისთვის. ეს დაზოგავს უამრავ წარუმატებლობას და ზღვრულ შემთხვევას, ასევე ამარტივებს განახლებებსა და გამოსწორებებს. ლოგიკური ნაკადი მოდით შევამოწმოთ მიმოხილვა, თუ როგორ წარიმართება მინიმალური ეფექტური ზოლის სისტემის ძრავა, როდესაც მომხმარებელი ასრულებს მოქმედებას:
მომხმარებელი ასრულებს საკვალიფიკაციო ზოლის მოქმედებას. კლიენტი აგზავნის მოვლენას სერვერზე მეტამონაცემების სახით. ეს შეიძლება იყოს „მომხმარებელმა X-მა დაასრულა მოქმედება Y დროის ნიშნულზე Z“. სერვერი იღებს ამ მოვლენას და აკეთებს ძირითად ვალიდაციას. ეს რეალური მომხმარებელია? ისინი დამოწმებულია? მოქმედებს თუ არა აქცია? არის დროის სარტყელი თანმიმდევრული? თუ ეს გაივლის, სერვერი ამოიღებს მომხმარებლის ზოლის მონაცემებს მონაცემთა ბაზიდან. შემდეგ გადააკეთეთ მიღებული ქმედების დროის შტამპი მომხმარებლის ლოკალურ სასაათო სარტყელში. ნება მიეცით სერვერს შეადაროს კალენდარული თარიღები (არა დროის ანაბეჭდები) მომხმარებლის ლოკალურ სასაათო სარტყელში: თუ ეს არის იმავე დღეს, მაშინ მოქმედება ზედმეტია და არ არის ცვლილებასტრიქონი. თუ ეს მეორე დღეა, მაშინ ზოლი ვრცელდება და იზრდება 1-ით. თუ უფსკრული ერთ დღეზე მეტია, ზოლი წყდება. თუმცა, ეს არის ის, სადაც შეგიძლიათ მიმართოთ გრეის მექანიკას. თუ გრეის მექანიზმი გამოტოვებულია, მაშინ გადააყენეთ ზოლი 1-ზე.
თუ აირჩევთ ისტორიული მონაცემების შენახვას საეტაპო მიღწევებისთვის, მაშინ განაახლეთ ცვლადები, როგორიცაა „ყველაზე გრძელი სერია“ ან „სულ აქტიური დღეები“. შემდეგ სერვერი განაახლებს მონაცემთა ბაზას და პასუხობს კლიენტს. რაღაც ამდაგვარი:
{ "current_streak": 48, "longest_streak": 50, "სულ_აქტიური_დღეები": 120, "streak_extended": true, }
როგორც შემდგომი ზომა, სერვერმა უნდა სცადოს ხელახლა, ან უარყოს და შეატყობინოს კლიენტს, როდესაც პროცესი ვერ ხერხდება. შენობა გამძლეობისთვის როგორც უკვე აღვნიშნეთ, მომხმარებლების დაკარგვის სერია შეცდომების ან სერვერის შეფერხების გამო არის საშინელი UX და მომხმარებლები არ ელოდებათ, რომ ეს დაცემას მიიღებს. ამრიგად, თქვენს ზოლის სისტემას უნდა ჰქონდეს გარანტიები ამ სცენარებისთვის. თუ სერვერი გათიშულია ტექნიკური მომსახურების გამო (ან რაიმე მიზეზით), განიხილეთ დამატებითი საათების დროებითი ფანჯრის დაშვება მისი გამოსწორების მიზნით, რათა ქმედებები დაგვიანებული იყოს და კვლავ გათვლილი იყოს. თქვენ ასევე შეგიძლიათ აირჩიოთ მომხმარებლების შეტყობინება, განსაკუთრებით იმ შემთხვევაში, თუ სიტუაციას შეუძლია გავლენა მოახდინოს მიმდინარე სტრიქონზე. შენიშვნა: შექმენით ადმინისტრატორის უკანა კარი, სადაც შესაძლებელია მონაცემების ხელით აღდგენა. შეცდომები გარდაუვალია და ზოგიერთი მომხმარებელი დაურეკავს თქვენს აპს ან მიმართავს მხარდასაჭერად, რომ მათი სერია გაწყდა იმ მიზეზით, რომ მათ ვერ აკონტროლებდნენ. თქვენ უნდა შეგეძლოთ ხელით აღადგინოთ ზოლები, თუ გამოძიების შემდეგ მომხმარებელი მართალია. დასკვნა ერთი რამ ცხადი რჩება: ზოლები მართლაც ძლიერია იმის გამო, თუ როგორ მუშაობს ადამიანის ფსიქოლოგია ფუნდამენტურ დონეზე. საუკეთესო ზოლის სისტემა არის ის, რომელზეც მომხმარებლები შეგნებულად არ ფიქრობენ. ეს გახდა მყისიერი შედეგების ან თვალსაჩინო პროგრესის რუტინა, როგორიცაა კბილების გახეხვა, რაც ჩვეულებრივ ჩვევად იქცევა. და მე უბრალოდ ვიტყვი: ყველა პროდუქტს არ სჭირდება ზოლის სისტემა. ნამდვილად უნდა აიძულოთ თანმიმდევრულობა მხოლოდ იმიტომ, რომ გსურთ ყოველდღიური აქტიური მომხმარებლები? პასუხი შეიძლება იყოს "არა".