Ziur nago marrarik entzun duzula edo aplikazio bat erabili duzula. Baina inoiz galdetu al zaizu zergatik diren marra hain ezagunak eta indartsuak? Bada, agerikoa da aplikazioek zure arreta ahalik eta gehien nahi dutela, baina horretaz gain, ba al zenekien Duolingo ikasteko aplikazio ezagunak iOS widget-ak marra bistaratzeko sartu zituenean, erabiltzaileen konpromisoa %60 igo zela. Ehuneko hirurogei portaeraren aldaketa izugarria da eta erakusten du nola "marra" ereduak erabil daitezkeen konpromisoa areagotzeko eta erabilera bultzatzeko. Oinarrizkoenean, marra bat erabiltzaile batek jarduera zehatz bat burutzen duen jarraian egun kopurua da. Batzuek ohitura "gamifikatua" edo erabilera koherentea bultzatzeko diseinatutako metrika gisa ere definitzen dute. Baina marraek aplikazio bateko metrika edo erregistro izatetik haratago gainditzen dute; hori baino psikologikoagoa da. Giza senak erraz eragiten ditu faktore egokiekin. Erreparatu hiru faktore hauek: aurrerapena, harrotasuna eta galtzeko beldurra (normalean FOMO deitua). Zer dute horiek guztiek komunean? Esfortzua. Zenbat eta ahalegin gehiago egin zerbaitetan, orduan eta gehiago moldatzen du zure identitatea, eta horrela gurutzatzen dira streaks jokabidearen psikologiaren mundura. Orain, botere handiarekin ardura handia dakar, eta horregatik, alde ilun bat dago streak. Artikulu honetan, marra sistema eraginkorra eraikitzearen atzean dauden psikologia, UX eta diseinu printzipioak aztertuko ditugu. Aztertuko dugu (1) zergatik gure garunak ia instintiboki erantzuten dion marra-jarduerari, (2) marra nola diseinatu erabiltzaileei benetan laguntzen dien moduan eta (3) marra eredu bat eraikitzeko lan teknikoa. Marra atzean dagoen psikologia Marra sistema eraginkor bat diseinatzeko eta eraikitzeko, gure garunak nola lotzen diren ulertu behar dugu. Esaterako, zerk egiten du hain eraginkorra gure marra babesteko hainbeste dedikazio bizia sentitzen dugun neurrian? Hiru psikologia-printzipio interesgarri eta ondo dokumentatuta daude, marra indartsuak eta mendekotasuna eragiten dutena onartzen dutenak. Galera abertsioa Hau da, ziurrenik, marra atzean dagoen indarrik indartsuena. Hau diot, gehienetan, bizitzan ia ezin duzulako saihestu. Pentsa ezazu horrela: lagun batek 100 $ ematen badizu, pozik egongo zinateke. Baina zorrotik 100 dolar galduko bazenu, horrek askoz ere min gehiago egingo luke. Egoera horien pisu emozionala ez da berdina. Galerak askoz gehiago min ematen du irabaziak ondo sentitzea baino. Har dezagun harago eta esan dezagun 100 $ ematen dizkizudala eta apustu bat egiteko eskatzen dizudala. Beste $ 100 irabazteko % 50eko aukera dago eta jatorrizko $ 100 galtzeko % 50eko aukera. Hartuko zenuke? ez nuke. Jende gehienak ez luke egingo. Hori da galerarako aversion. Pentsatzen baduzu, logikoa da, ulergarria da, gizakia da. Galera-abertsioaren atzean dagoen kontzeptua zera da: zerbait galtzearen mina balio berdineko zerbait irabazteko plazeraren bikoitza sentitzen dugula. Termino psikologikoetan, galerak irabaziak baino gehiago irauten du. Ziurrenik ikusiko duzu nola erlazionatzen den hau marraekin. Marra nabaria eraikitzeko, esfortzua behar da; marra bat hazi ahala, atzean dagoen motibazioa desagertzen hasten da; edo zehatzago esanda, bigarren mailako bihurtzen hasten da. Hona hemen adibide bat: Esan zure lagunak Apple Watch-n bere "Mugitu eraztunak" ixten dituen hiru eguneko bolada bat duela. Helburua lortu eta koherenteak izan nahiaz haratago ez dute ia ezer galtzeko. Aldi berean, 219 eguneko bolada ikusgarria duzu. Baliteke galtzeko beldurrak harrapatuta egotea. Seguruenik, momentu honetan ez duzu lorpenean pentsatzen ari; inbertitutako esfortzua babestea baino gehiago da, eta hori galerari aurre egitea da. Duolingo-k azaltzen du nola galera-gaitzespena eragiten duen erabiltzaileak bolada luze bat hausteko errezeloan, baita egun alferrenetan ere. Nolabait esateko, marra bat ohitura bilaka daiteke galera-gaitza ezartzen denean. Fogg Portaera Eredua (B = MAPA) Orain, bolada luzeagoetan inbertitutako esfortzua galtzeko beldurra ulertzen dugunean, beste galdera bat da: Zerk egiten gaitu lehenik eta behin, egunez egun, bolada handitu baino lehen ere? Horretan datza Fogg Behavior Model. Nahiko sinplea da. Jokabide bat (B) hiru faktore —motibazioa (M), gaitasuna (A) eta gonbita (P)— une berean lerrokatzen direnean bakarrik gertatzen da. Horrela, B=MAP ekuazioa. Momentu horretan faktore horietakoren bat, bat ere, falta bada, jokabidea ez da gertatuko. Beraz, marra sistema eraginkorra eta errepikakorra izan dadin, hiru faktoreak egon behar dira: Motibazioa Hau hauskorra da eta ez etengabe dagoen zerbait. Badaude egunakerdara ikasteko puztuta, eta hizkuntza ikasteko borondaterik ere sentitzen ez duzun egunetan. Motibazioa berez ohitura bat eraikitzeko ez da fidagarria eta borroka galtzailea lehen egunetik. Gaitasuna Motibazioaren mugak konpentsatzeko, gaitasuna funtsezkoa da. Testuinguru honetan, gaitasunak jarduteko erraztasuna esan nahi du, hau da, esfortzua hain erraza da, ezinezkoa dela esatea. Aplikazio gehienek nahita erabiltzen dute hau. Apple Fitness-ek ordubetean minutu bat zutik egotea besterik ez zaitu behar zure Stand-helbururako tick bat irabazteko. Duolingok amaitutako ikasgai bakarra behar du. Zeregin hauek ez dute hainbesteko esfortzua eskatzen. Oztopoa hain da baxua, non zure egun txarrenetan ere egin dezakezula. Baina etengabeko bolada baten ahalegin konbinatuan sartzen da bolada hori galtzearen ideia. GaldetuHau da ekuazioa osatzen duena. Gizakiak berez ahanzturakoak dira, beraz, bai, gaitasunak %90era eraman gaitzake. Baina gonbita batek gogorarazten digu jokatzea. Marra iraunkorrak dira diseinuz, beraz, erabiltzaileei etengabe gogorarazi behar zaie jarduteko. Galdera batek zenbaterainoko indarra izan dezakeen ikusteko, Duolingok A/B proba bat egin zuen aplikazioaren ikonoan txapa gorri txiki batek erabilera koherentea areagotzen zuen ikusteko. Eguneroko erabiltzaile aktiboen %6ko hazkundea eragin zuen. Txapa gorri bat besterik ez. Ereduaren mugak Hori guztia esanda, Fogg ereduari muga bat dago, kritikariek eta ikerketa modernoek ohartu baitituzte abisuetan gehiegi oinarritzen den diseinu batek, jakinarazpen oldarkorrak bezala, buruko nekea sortzeko arriskua duela. Etengabeko jakinarazpenek eta aparteko orduek erabiltzaileak nahastea eragin dezakete. Beraz, kontuz horretaz. Zeigarnik Efektua Nola sentitzen zara proiektuko zeregin bat erdi eginda uzten duzunean? Horrek jende asko haserretzen du, amaitu gabeko zereginek burutzen ditugun gauzek baino espazio mental gehiago hartzen dutelako. Zerbait egin eta desagertzen denean, ahaztu egin ohi dugu. Zerbait egin gabe geratzen denean, gure buruan pisua izan ohi du. Horregatik, produktu digitalek aurrerapen-adierazle artifizialak erabiltzen dituzte, hala nola Upwork-en profila osatzeko barra, erabiltzaile bati bere profila "% 60 osatua" besterik ez dagoela jakinarazteko. Erabiltzaileari bultzatzen dio hasitakoa amaitzeko.
Ikus dezagun beste adibide bat. Egiteko zerrendaren aplikazio batean bost zeregin dituzu, eta egunaren amaieran, horietako lau besterik ez dituzu egiaztatzen amaituta. Gutako asko amaitu gabe sentituko gara zeregin bakarra dela eta. Hori da, hortxe, Zeigarnik efektua. Zeigarnik efektua Bluma Zeigarnik psikologoak frogatu zuen, zeinak deskribatu zuen zeregin osatugabeak aktibo mantentzeko joera dugula gure memorian amaitutakoak baino denbora luzeagoan. Marra eredu batek modu naturalean sartzen du hori UX diseinuan. Demagun ikasketa bolada baten 63. egunean zaudela. Une horretan, amaitu gabeko negozioen etengabeko ereduan zaude. Zure garuna oso gutxitan ahaztuko litzateke zure buruaren atzealdean dagoenez. Une honetan, zure garuna bihurtzen da jakinarazpenak bidaltzen dizkizun. Indar psikologiko hauek elkartzen dituzunean, benetan ulertzen hasten zara zergatik ez diren marra arruntak aplikazioen funtzio arrunta; giza jokabidea birmoldatzeko gai dira. Baina nonbait - ezin dut zehatz esan noiz, guztiontzat desberdina denez - gauzak puntu batera iristen dira non marra bat "dibertigarri"tik galdu ezin duzula sentitzen duzun zerbaitetara pasatzen den. Ez duzu nahi 58 eguneko ahalegina alferrik galtzea, ezta? Hori da marra sistema eraginkorra egiten duena. Ongi egiten bada, marraek erabiltzaileei helburu bat betetzeko ohitura harrigarriak sortzen laguntzen diete. Egunero irakurtzea edo gimnasiora etengabe jotzea izan daiteke. Behin eta berriz errepikatzen diren ekintza hauek (batzuetan txikiak) denboran zehar konplikatzen dira eta gure eguneroko bizitzan nabariak dira. Baina txanpon bakoitzak bi alde ditu. Ohituraren eta konpultzioaren arteko lerro mehea Jarraitzen ibili bazara, dagoeneko esan dezakezu alde ilun bat dagoela marra sistemak. Ohiturak sortzea helburu errepikatu batekin koherentzia izatea da. Derrigortasuna, ordea, jada beharrezkoa ez den baina beldurragatik edo presioagatik eutsitako helburu batean lan egitearen koherentzia da. Maquinilla-lerro mehea da. Hortzak garbitzen dituzu goizero pentsatu gabe; automatikoa eta instintiboa da, arnasa ona izateko helburu argiarekin. Hori ohitura ona sortzen duen marra da. Marra etiko sistema batek erabiltzaileei arnasa hartzeko tartea ematen die. Arrazoiren batengatik ez baduzu eskuila egiten goizean, eguerdian eskuila dezakezu. Inperfekzioa onartzen da ahalegin luzea galtzeko beldurrik gabe. Derrigorrak kontrako bidea hartzen du, eta, horren bidez, arrasto batek urduri jartzen zaitu, errudun sentitzen zara edo are nekatuta, eta batzuetan, ezer lortu ez duzula sentitzen da, zure guztia gorabehera.lana. Ez duzu nahi duzulako jokatzen, inkontzienteki zure aurrerapena zerora berrezartzen ikusteak beldurra ematen dizulako baizik. Norbaitek ezin hobeto deskribatu zuen hori, "iruzur egiten ari nintzela sentitu nuen, baina ez zitzaidan axola. Ez naiz ezer nire marrarik gabe". Horrek erakusten du norbanako batengan izan dezaketen muturreko euste-marra. Erabiltzaileak beren buruaren balioa neurri arbitrario bati lotzen hasten diren heinean, hasierako helburu edo arrazoiarekin baino, marra hasi zuten. Marra norbera bihurtzen da, ez bakarrik egiten dutena. Ondo diseinatutako marra etikoen sistemak erabiltzailearentzat sustapen gisa sentitu behar du, ez presioa edo betebeharra. Honek motibazio intrintseko eta kanpoko motibazio orekari lotuta dago. Kanpoko motibazioa (kanpoko sariak, zigorrak saihestea) baliteke erabiltzaileak hastea, baina motibazio intrintsekoa (gaztelania ikastea bezalako helburu pertsonal baterako zeregina egitea, maite duzun batekin komunikatu nahi duzulako) indartsuagoa da epe luzerako konpromisorako. Sistema on batek motibazio intrintsekorantz jo behar du kanpoaldeko elementuak kontu handiz erabiliz, hau da, erabiltzaileei gogorarazi noraino iritsi diren, ez gal dezaketenarekin mehatxatu. Berriz ere, marra fina da. Proba sinple bat marra sistema bat diseinatzean denbora pixka bat hartu eta zure produktuek sortutako antsietateari irtenbideak salduz zure produktuek dirua irabazten duten pentsatzea da. Baiezkoa bada, aukera handia dago erabiltzaileak ustiatzeko. Beraz, hurrengo galdera hauxe da: marra erabiltzea aukeratzen badut, nola diseinatzen dut erabiltzaileei benetan beren helburuak lortzen laguntzen dien moduan? Good Streak System Design-aren UX Uste dut hemen proiektu gehienek marra sistema eraginkorra iltzea edo erabat nahasten dutenak. Goazen marra diseinu on baten UX printzipio batzuk. Jarrai ezazu ahaleginik gabe Seguruenik entzun izan duzu hori, agian Atomic Habits bezalako liburuetatik, baina aipatzekoa da ohiturak eratzeko modurik errazenetako bat ekintza txiki eta erraz egitea dela. Fogg Behavior Modeletik aztertu dugun gaitasun faktorearen antzekoa da. Marra-diseinuaren lehen araua beharrezkoa den ekintza gizatiarki ahalik eta txikiena egitea izan behar du, aurrerapena lortuz. Eguneroko ekintza batek burutzeko borondatea behar badu, ekintza horrek ez du bost egun igaroko. Zergatik? Ezin zara bost egun jarraian motibatu. Kasua: meditazio aplikazio bat exekutatzen baduzu, ez duzu erabiltzaileak 20 minutuko saio bat egin beharrik marra mantentzeko. Saiatu minutu bakar bat, agian hogeita hamar segundo bezain txikia den zerbait. Esaerak dioen bezala, ur tanta txikiek ozeano indartsua egiten dute). Ahalegin txikiak lorpen handietan biltzen dira denborarekin. Hori izan beharko litzateke helburua: marruskadura kentzea, batez ere unea zaila izan daitekeenean. Erabiltzaileak estresatuta edo larrituta daudenean, jakin iezaiezu agertzeak, segundo batzuetan ere, ahalegin gisa balio duela. Eman Ikusizko Iritzi Argia Gizakiak berez ikusgarriak dira. Gehienetan, sinesteko zerbait ikusi behar dugu; badago gauzak ikusteko behar hori hobeto ulertzeko eta gauzak perspektiban jartzeko. Horregatik, marra-ereduek sarritan elementu bisualak erabiltzen dituzte, hala nola grafikoak, kontrol-markak, aurrerapen-eraztunak eta saretak, ahalegina ikusteko. Begira GitHub-en ekarpen grafikoa. Koherentziaren bistaratzea sinplea da. Hala ere, garatzaileek oxigenoa bezala arnasten dute.
Gakoa marra sistema abstraktua ez sentitzea da. Benetakoa eta irabazia sentitu behar da. Esate baterako, Duolingo eta Apple-ren Fitness jarduera-eraztunek animazio-diseinu garbiak erabiltzen dituzte marra bat amaitzean, eta GitHub-ek erabiltzailearen koherentziaren datu historikoak erakusten ditu denboran zehar.
Erabili denbora ona Lehen aipatu nuen gizakiak, oro har, ahanzturak direla naturaz, eta gomendioak aurrera egiteko bultzada mantentzen lagun dezakeela. Abisurik gabe, erabiltzaile berri gehienek aurrera jarraitzea ahazten dute. Bizitza lanpetuta egon daiteke, motibazioa desagertzen da eta gauzak gertatzen dira. Aspaldiko erabiltzaileek ere gomendioei etekina ateratzen diete, nahiz eta gehienetan, dagoeneko ohitura begiztaren barruan blokeatuta egon. Hala ere, pertsona konprometituenak ere nahi gabe egun bat galdu dezake. Zure marra sistemak abisuak behar ditu zalantzarik gabe. Gehien erabiltzen diren gonbita-abisuak push jakinarazpenak dira. Denborak garrantzi handia du push jakinarazpenekin lan egiten duzunean. Aplikazio motak ere garrantzia du. 09:00etan jakinarazpena bidaltzea "Gaur ez duzu praktikatu" esanez arraroa da ikasteko aplikazio batentzat, askok ikasgai bat amaitzea pentsatu baino lehenagoko egunean egin behar dutelako. Fitness aplikazio bati buruz ari bagara, ordea, horiarrazoizkoa da eta, agian, egunean lehenago gogoratzea espero da. Push jakinarazpenak nabarmen aldatzen dira aplikazioen kategoriaren arabera. Fitness-aplikazioek, adibidez, parte-hartze handiagoa ikusten dute goizean goiz jakinarazpenekin (7etatik 8etara), eta produktibitate-aplikazioek eguerdi hasieran hobeto funtziona dezakete. Gakoa A/B zure aplikazioaren denborak zure erabiltzaileen jokabideetan oinarrituta probatzea da, gauzak neurri bakarrekoak direla pentsatzea baino. Meditazio-aplikazio baterako balio duena agian ez da funtzionatuko kode-jarraitzaile batean. Beste gonbidapen-metodo batzuk aplikazioaren ikonoko puntu gorriak eta aplikazioen widget-ak dira. Ikasketak aldatu egiten dira, baina batez besteko pertsonak egunean 50-150 aldiz desblokeatzen du gailua (PDF). Erabiltzaile batek puntu gorri bat ikusten badu aplikazio batean edo telefonoa desblokeatzen duen bakoitzean uneko marra bat adierazten duen widget batean, konpromisoa areagotzen du. Ez ezazu gehiegi egin; gonbita abisu gisa balio behar du, ez nag gisa. Ospatu Mugarriak Marra sistema batek mugarriak ospatzen saiatu behar du emozioak pizteko, batez ere marra batean sakondu duten erabiltzaileentzat. Erabiltzaile batek 7. Eguna, 30. Eguna, 50. Eguna, 100. Eguna, 365. eguna sakatzen dituenean, gauza handia egin beharko zenuke. Aitortu lorpenak, batez ere aspaldiko erabiltzaileentzat.
Lehen ikusi dugunez, Duolingok hori asmatu zuen eta mugarriak konfetiz ospatzen dituen animazio grafikoa ezarri zuen. Plataforma batzuek erabiltzaileen ahaleginak baliozkotzen dituzten bonus sari handiak ere ematen dituzte. Eta hori onuragarria izan daiteke aplikazioentzat, hala nola, erabiltzaileek euren mugarriak publikoki partekatu ohi dituzte sare sozialetan. Beste onura bat mugarrietara iritsi aurretik datorren ikusmina da. Ez da marra etengabean bizirik mantentzea soilik; erabiltzaileek badute zer itxaron. Erabili Grace Mekanismoak Bizitza ezustekoa da. Jendea distraitu egiten da. Marra sistema on batek inperfekzioa espero behar du. Marra sistema baten mehatxu psikologiko handienetako bat egun bakar baten ondoren zerora berrezartzea da. Marra sistema "etiko" batek erabiltzaileari lasaitasun pixka bat eman beharko lioke. Demagun 90 eguneko xakea ikasteko bolada bat duzula. Hiru hilabete onetan egon zara koherentea, eta egun batean, zure telefonoa hil egiten da bidaiatzean, eta halaxe, 90 0 bihurtzen da — dena, ahalegin hori guztia, ezabatu egiten da eta aurrerapena desagertu egiten da. Baliteke erabiltzailea erabat suntsituta egotea. Hutsetik berreraikitzearen pentsamendua hain da desmoralizagarria, non ahaleginak ez duela merezi. Okerrenean, erabiltzaile batek aplikazioa alde batera utzi dezake porrot bat sentitu ondoren. Demagun "grazia" mekanismo bat gehitzea zure marra sisteman:
Streak FreezeEman erabiltzaileei nahita egun bat galtzea zigorrik gabe. Aparteko denboraBaimendu ordu batzuk (2-3) ohiko epea baino gehiago berrezarri aurretik. Desintegrazio-ereduak Berrezarri gogor baten ordez, marra txiki bat gutxitzen da, adibidez, 10 egun kentzen dira egun galduko marratik.
Erabili Tonu Pozgarria Konpara ditzagun erabiltzaileei erakusten zaizkien bi mezu marra hausten denean:
"42 eguneko bolada galdu duzu. Hasi berriro". "42 egun jarraian agertu zinen. Aurrerapen ikaragarria da! Beste probatu nahi al duzu?"
Biek informazio bera transmititzen dute, baina eragin emozionala ezberdina da. Lehen mezuak, ziurrenik, erabiltzailea desmoralizatuta sentituko luke eta bertan behera uztea eragingo luke. Bigarren mezuak dagoeneko lortutakoa goraipatzen du eta emeki-emeki erabiltzailea berriro saiatzera animatzen du. Streak Systems Diseinu Erronkak Marra sistema bat eraikitzeko zehaztasun teknikoetan sartu aurretik, izan ditzakezun erronken berri izan behar duzu. Gauzak konplikatu daitezke, espero zenuten bezala. Ordu-eremuak maneiatzea Bada denbora eta data maneiatzea garatzaileek jorratzen dituzten kontzeptu zailenen artean egotearen arrazoi bat. Formateatzea, nazioartekotzea eta askoz gehiago kontuan hartu behar dira. Hau galdetzen dizut: Zer balio du egun bat? Badakigu mundua ordu-eremu ezberdinetan ibiltzen dela, eta hori gutxi balitz bezala, eskualde batzuetan urtean bitan gertatzen den Udako Ordua (DST) dute. Non hasten zara ertz-kasu hauek maneiatzen? Zer da biharko “hasiera” gisa? Garatzaile batzuk hori saihesten saiatzen dira ordu-eremu zentral bat erabiliz, UTC adibidez. Erabiltzaile batzuentzat, honek emaitza zuzenak emango lituzke, baina batzuentzat ordubete, bi ordu edo gehiago desaktibatuta egon liteke. Inkoherentzia honek erabiltzailearen esperientzia hondatzen du. Erabiltzaileei ez zaie axola agertoki atzean denbora nola kudeatzen duzun; espero dutena da 23:40etan marra-ekintza bat egiten badute, ordu zehatz horretan erregistratu behar dela, beren testuinguruan. "Egun bat" definitu beharko zenuke erabiltzailearen tokiko ordu-eremuan oinarrituta, ez zerbitzariaren orduan. Noski, lasai hartu dezakezubideratu eta berrezarri marra guztiak erabiltzaile guztientzat gauerdian UTC, baina bidegabekeria asko sortzen ari zara. Kaliforniako norbaitek zortzi ordu gehiago ditu bere zeregina betetzeko Londresen bizi den batek baino. Diseinu akats bidegabea da, erabiltzaile jakin batzuk beren kokapenagatik zigortzen dituena. Eta Londresko pertsona hori bisitatzen ari bada, zeregin bat betetzen badu eta beste ordu-eremu batera itzultzen bada? Horien guztien irtenbide eraginkor bat erabiltzaileei beren ordu-eremua esplizituki ezartzeko eskatzea da sartzean (hobe lehen autentifikazioaren ondoren). Komeni da ohar sotil bat sartzea: ordu-eremuaren informazioa ematea aplikaziorako soilik erabiltzen dela aurrerapena zehatz-mehatz jarraitzeko, pertsonalki identifikatzeko datu gisa erabili beharrean. Eta beste ideia ona da ezarpen hori aldakorra izatea. Iradokitzen dut edonork saihestea aplikazio batean ordu-eremuaren logika zuzenean kudeatzea. Erabili frogatutako data liburutegiak, Moment.js edo pytz (Python) adibidez, etab. Ez dago gurpila berrasmatu behar hau bezain konplexua den zerbaitetarako. Galdutako egunak eta ertz kasuak Kezkatu beharko zenukeen beste erronka bat kontrolaezinak diren ertz kasuak dira, hala nola erabiltzaileak lo egitea, zerbitzariaren geldialdia, atzerapena, sarearen akatsak eta abar. Grazia-mekanismoen ideia erabiltzeak, lehen aipatu ditugunak bezala, lagun dezake. Bi orduko grazia-leiho batek erabiltzaileari eta garatzaileei lagun diezaieke, erabiltzaileak ez direla zorrozki zigortzen bizitza kontrolaezinaren egoeragatik. Garatzaileentzat, grace leihoak lagungarriak dira zerbitzaria gauaren erdian jaisten den une kontrolaezin horietan. Batez ere, inoiz ez fidatu bezeroarengan. Beti baliozkotu zerbitzariaren aldean. Zerbitzariak egiaren iturri bakarra izan behar du. Iruzurren Prebentzioa Berriz ere, ezin dut nahikoa azpimarratu: ziurtatu zerbitzariaren aldetik dena baliozkotzen duzula. Erabiltzaileak gizakiak dira, eta gizakiak iruzurra egin dezake aukera ematen badiote. Saihestezina da. Proba dezakezu:
Ekintza guztiak UTC ordu-zigiluekin gordetzea. Bezeroak bere ordu lokala bidal dezake, baina zerbitzariak berehala bihur dezake hori UTCra eta zerbitzariaren orduarekin balioztatu. Horrela, bezeroaren denbora-zigilua susmagarriki urrun badago, sistemak akats gisa baztertu dezake eta UI-ak horren arabera erantzun dezake. Gertaeren araberako jarraipena erabiliz. Beste era batera esanda, gorde ekintza bakoitzaren erregistro bat metadatuekin, erabiltzailearen IDa, egindako ekintza mota eta ordu-zigilua eta ordu-zona bezalako informazioa barne. Horrek balioztatzearekin laguntzen du.
Streak System Motor bat eraikitzea Hau ez da kode-tutorial bat, beraz, kode mordo bat zure gainean botatzea saihestuko dut. Hau praktikoa mantenduko dut eta gauzek normalean marra sistemaren motorra nola funtzionatzen duten deskribatuko dut arkitektura, fluxua eta fidagarritasunari dagokionez. Oinarrizko Arkitektura Hainbat aldiz esan dudan bezala, egin zerbitzaria egia iturri bakarra marra datuetarako. Arkitektura zerbitzarian horrelako zerbait joan daiteke:
Gorde erabiltzaile bakoitzaren datuak datu-base batean. Gorde uneko marra biltegia (lehenetsia 0 gisa) zenbaki oso gisa. Gorde ordu-eremuaren hobespena, hau da, IANA Timezone katea (inplizituki tokiko ordu-zigilutik edo esplizituki erabiltzaileari bere ordu-eremua hautatzeko eskatuz). Adibidez, "Amerika/New_York". Kudeatu logika guztia marra jarraitzen edo hausten den zehazteko, erabiltzailearen tokiko ordu-eremuarekiko denbora-eremuaren egiaztapenarekin.
Bien bitartean, bezeroaren aldetik:
Bistaratu uneko marra, normalean zerbitzaritik eskuratzen dena. Bidali metadatu moduan egindako ekintza zerbitzariari, erabiltzaileak kalifikatzaileen ekintza bat benetan burutu duen ala ez egiaztatzeko. Eman iritzi bisuala zerbitzariaren erantzunetan oinarrituta.
Beraz, laburbilduz, garuna zerbitzarian dago, eta bezeroa bistaratzeko eta gertaerak bidaltzeko. Horrek hutsegite eta kasu ertain asko aurrezten ditu, eta eguneraketak eta konponketak errazten ditu. Fluxu Logikoa Simulatu dezagun jarraibide bat nola joango litzatekeen marra sistema eraginkorreko motorra erabiltzaile batek ekintza bat amaitzen duenean:
Erabiltzaileak sailkatze-marra ekintza bat betetzen du. Bezeroak gertaera bat bidaltzen dio zerbitzariari metadatu gisa. Hau izan daiteke "X erabiltzaileak Y ekintza burutu du Z denbora-zigiluan". Zerbitzariak gertaera hau jasotzen du eta oinarrizko balioztatzea egiten du. Benetako erabiltzailea al da? Autentifikatu al dira? Ekintza baliozkoa al da? Ordu-eremua koherentea al da? Hau pasatzen bada, zerbitzariak datu-basetik erabiltzailearen marra datuak berreskuratzen ditu. Ondoren, bihurtu jasotako ekintzaren denbora-zigilua erabiltzailearen tokiko ordu-eremuan. Utzi zerbitzariari egutegiko datak (ez ordu-zigiluak) konparatzen erabiltzailearen tokiko ordu-eremuan: Egun bera bada, ekintza erredundantea da eta ez dago aldaketarikmarra. Hurrengo eguna bada, marra luzatzen da eta 1ean handitzen da. Egun bat baino gehiagoko tartea badago, marra hausten da. Hala eta guztiz ere, hemen da grazia mekanika aplika dezakezu. Grazia-mekanismoa galduz gero, berrezarri marra 1era.
Mugarrien lorpenetarako datu historikoak gordetzea aukeratzen baduzu, eguneratu "marrarik luzeena" edo "egun aktibo guztira" bezalako aldagaiak. Gero zerbitzariak datu-basea eguneratzen du eta bezeroari erantzuten dio. Honelako zerbait:
{ "uneko_marra": 48, "marra_luzeena": 50, "total_active_days": 120, "streak_extended": egia, }
Beste neurri gisa, zerbitzariak berriro saiatu edo baztertu eta bezeroari jakinarazi beharko lioke prozesuan zehar zerbait huts egiten duenean. Erresilientziarako Eraikuntza Lehen esan bezala, erabiltzaileek akatsen edo zerbitzariaren geldialdiaren ondorioz marra bat galtzen duten UX izugarria da, eta erabiltzaileek ez dute espero erorketa egitea. Beraz, zure marra sistemak agertoki horietarako bermeak izan beharko lituzke. Zerbitzaria mantentze-lanagatik (edo edozein arrazoi dela medio) gelditzen bada, kontuan hartu ordu gehiagoko aldi baterako leiho bat baimentzea hura konpontzeko, ekintzak berandu bidali ahal izateko eta oraindik zenbatu ahal izateko. Erabiltzaileei jakinaraztea ere aukera dezakezu, batez ere egoerak etengabeko bolada bati eragin diezaion. Oharra: ezarri atzeko ate administratzaile bat non datuak eskuz leheneratu ahal izateko. Akatsak saihestezinak dira, eta erabiltzaile batzuek zure aplikazioari deituko liokete edo haien lerroa kontrolatu ezin duten arrazoi batengatik hautsi dela ziurtatzeko. Marra eskuz berrezartzeko gai izan beharko zenuke, ikertu ondoren, erabiltzaileak arrazoi badu. Ondorioa Gauza bat argi geratzen da: marra oso indartsuak dira giza psikologiak oinarrizko mailan funtzionatzen duelako. Hor dagoen marra sistemarik onena erabiltzaileek kontzienteki pentsatzen ez dutena da. Berehalako emaitzen edo ageriko aurrerapenen errutina bihurtu da, hortzak garbitzea bezala, ohiko ohitura bihurtzen dena. Eta esango dut: produktu guztiek ez dute marra sistemarik behar. Benetan behartu beharko zenuke koherentzia eguneroko erabiltzaile aktibo nahi duzulako? Erantzuna oso ondo "ez" izan daiteke.