Nina hakika umesikia kuhusu misururu au umetumia programu na moja. Lakini umewahi kujiuliza kwa nini michirizi ni maarufu na yenye nguvu? Kweli, kuna ile iliyo dhahiri ambayo programu zinataka umakini wako mwingi iwezekanavyo, lakini kando na hilo, je, unajua kwamba wakati programu maarufu ya kujifunza Duolingo ilipoanzisha wijeti za iOS ili kuonyesha misururu, kujitolea kwa watumiaji kuliongezeka kwa 60%. Asilimia sitini ni mabadiliko makubwa katika tabia na huonyesha jinsi mifumo ya "misururu" inaweza kutumika kuongeza ushiriki na kuendesha matumizi. Kwa msingi kabisa, mfululizo ni idadi ya siku zinazofuatana ambazo mtumiaji anakamilisha shughuli mahususi. Baadhi ya watu pia wanaifafanua kuwa tabia "iliyobadilishwa" au kipimo kilichoundwa ili kuhimiza matumizi ya mara kwa mara. Lakini misururu inavuka zaidi ya kuwa kipimo au rekodi katika programu; ni kisaikolojia zaidi ya hapo. Silika za kibinadamu ni rahisi kuathiriwa na sababu zinazofaa. Angalia mambo haya matatu: maendeleo, kiburi, na woga wa kukosa (huitwa FOMO). Je, haya yote yanafanana nini? Juhudi. Kadiri unavyoweka bidii katika kitu, ndivyo kinavyounda utambulisho wako zaidi, na hivyo ndivyo misururu inavyovuka katika ulimwengu wa saikolojia ya kitabia. Sasa, kwa nguvu nyingi huja wajibu mkubwa, na kwa sababu hiyo, kuna upande wa giza wa michirizi. Katika nakala hii, tutazingatia saikolojia, UX, na kanuni za muundo nyuma ya kuunda mfumo mzuri wa mfululizo. Tutaangalia (1) kwa nini ubongo wetu hujibu kwa kiasi kikubwa shughuli za mfululizo, (2) jinsi ya kuunda mfululizo kwa njia zinazowasaidia watumiaji kikweli, na (3) kazi ya kiufundi inayohusika katika kuunda muundo wa mfululizo. Saikolojia Nyuma ya Michirizi Ili kubuni na kujenga mfumo mzuri wa mfululizo, tunahitaji kuelewa jinsi unavyolingana na jinsi akili zetu zinavyounganishwa. Kama, ni nini kinachoifanya iwe yenye ufanisi kiasi kwamba tunahisi kujitolea sana kulinda misururu yetu? Kuna kanuni tatu za saikolojia za kuvutia, zilizohifadhiwa vizuri ambazo zinaunga mkono kile kinachofanya misururu kuwa na nguvu na ya kulevya. Uchukizo wa Kupoteza Labda hii ndiyo nguvu kali zaidi nyuma ya misururu. Ninasema hivi kwa sababu mara nyingi, karibu huwezi kuepuka hili maishani. Ifikirie hivi: Rafiki akikupa $100, utafurahi. Lakini ikiwa umepoteza $100 kutoka kwa mkoba wako, hiyo ingeumiza zaidi. Uzito wa kihisia wa hali hizo sio sawa. Hasara inaumiza zaidi kuliko faida inavyojisikia vizuri. Hebu tuipeleke mbele zaidi na kusema kwamba ninakupa $100 na kukuuliza ucheze kamari. Kuna uwezekano wa 50% kushinda $100 nyingine na uwezekano wa 50% kupoteza $100 ya awali. Je, ungeichukua? nisingefanya. Watu wengi hawangefanya. Huo ni chuki ya hasara. Ikiwa unafikiri juu yake, ni mantiki, inaeleweka, ni binadamu. Dhana ya kuchukia hasara ni kwamba tunahisi uchungu wa kupoteza kitu mara mbili ya raha ya kupata kitu chenye thamani sawa. Kwa maneno ya kisaikolojia, hasara hudumu zaidi kuliko faida. Labda unaona jinsi hii inahusiana na michirizi. Ili kujenga mfululizo unaoonekana, inahitaji jitihada; msururu unapokua, motisha nyuma yake huanza kufifia; au kwa usahihi zaidi, huanza kuwa sekondari. Huu ni mfano: Sema rafiki yako ana mfululizo wa siku tatu kufunga "Move Rings" kwenye Apple Watch yake. Hawana chochote cha kupoteza zaidi ya kutaka kufikia lengo lao na kuwa thabiti. Wakati huo huo, una mfululizo wa kuvutia wa siku 219. Uwezekano ni kwamba umenaswa na hofu ya kuipoteza. Kuna uwezekano mkubwa haufikirii juu ya mafanikio katika hatua hii; ni zaidi kuhusu kulinda juhudi zako ulizowekeza, na hiyo ni chuki ya hasara. Duolingo anaeleza jinsi chuki ya hasara inavyochangia kusita kwa mtumiaji kuvunja mfululizo mrefu, hata katika siku zake za uvivu zaidi. Kwa njia fulani, mfululizo unaweza kugeuka kuwa tabia wakati chuki ya hasara inapoingia. Mfano wa Tabia ya Fogg (B = RAMANI) Sasa kwa kuwa tunaelewa hofu ya kupoteza juhudi iliyowekezwa katika misururu mirefu, swali lingine ni: Ni nini hutufanya tufanye jambo hapo kwanza, siku baada ya siku, hata kabla ya mfululizo kuwa mkubwa? Hiyo ndio Fogg Behavior Model inahusu. Ni rahisi kiasi. Tabia (B) hutokea tu wakati vipengele vitatu - Motisha (M), Uwezo (A), na Prompt (P) - vinapolingana kwa wakati mmoja. Kwa hivyo, equation B = MAP. Ikiwa mojawapo ya mambo haya, hata moja, haipo wakati huo, tabia haitatokea. Kwa hivyo, ili mfumo wa mfululizo uwe mzuri na unaorudiwa, mambo yote matatu lazima yawepo: MotishaHii ni tete na si kitu ambacho kipo mara kwa mara. Kuna siku upoimesukumwa kujifunza Kihispania, na siku ambazo huhisi hata chembe ya utashi wa kujifunza lugha. Kuhamasishwa yenyewe ya kujenga tabia haitegemei na ni vita ya kupoteza kutoka siku ya kwanza. Uwezo wa kufidia mapungufu ya motisha, uwezo ni muhimu. Katika muktadha huu, uwezo unamaanisha urahisi wa hatua, yaani, jitihada ni rahisi sana kwamba haiwezekani kusema kuwa haiwezekani. Programu nyingi hutumia hii kwa makusudi. Apple Fitness inakuhitaji tu kusimama kwa dakika moja ndani ya saa moja ili kupata tiki kuelekea lengo lako la Stand. Duolingo inahitaji somo moja tu lililokamilika. Kazi hizi hazihitaji juhudi nyingi. Kizuizi ni cha chini sana hata siku zako mbaya zaidi, unaweza kuifanya. Lakini juhudi za pamoja za mfululizo unaoendelea ndipo wazo la kupoteza msururu huo linapoanza. PromptHii ndiyo inakamilisha mlinganyo. Binadamu kwa asili ni wasahaulifu, kwa hivyo ndio, uwezo unaweza kutufikisha 90%. Lakini haraka hutukumbusha kuchukua hatua. Mifululizo inaendelea kulingana na muundo, kwa hivyo watumiaji wanahitaji kukumbushwa kila mara kuchukua hatua. Ili kuona jinsi kidokezo kinavyoweza kuwa na nguvu, Duolingo ilifanya jaribio la A/B ili kuona kama beji nyekundu kwenye aikoni ya programu iliongeza matumizi thabiti. Imezalisha ongezeko la 6% la watumiaji wanaofanya kazi kila siku. Beji nyekundu tu. Mapungufu ya Mfano Haya yote yakisemwa, kuna kikomo kwa mtindo wa Fogg ambapo wakosoaji na utafiti wa kisasa wamegundua kuwa muundo unaotegemea sana vishawishi, kama vile arifa kali, huhatarisha kuunda uchovu wa akili. Arifa za mara kwa mara na muda wa ziada unaweza kusababisha watumiaji kusumbua. Kwa hiyo, jihadhari na hilo. Athari ya Zeigarnik Je, unajisikiaje unapoacha kazi ya mradi kukamilika nusu-nusu? Hilo linakera watu wengi kwa sababu kazi ambazo hazijakamilika huchukua nafasi zaidi ya kiakili kuliko mambo tunayokamilisha. Kitu kinapofanywa na kuondoka, huwa tunasahau. Kitu kinapoachwa bila kufanywa, huwa na uzito kwenye akili zetu. Hii ndiyo sababu hasa bidhaa za kidijitali hutumia viashirio ghushi vya maendeleo, kama vile upau wa kukamilisha wasifu wa Upwork, ili kumfahamisha mtumiaji kuwa wasifu wake ni "60% kamili". Inamsukuma mtumiaji kumaliza alichoanzisha.
Hebu tuangalie mfano mwingine. Una majukumu matano katika programu ya orodha ya mambo ya kufanya, na mwisho wa siku, unaangalia manne tu kama yamekamilika. Wengi wetu tutahisi kutokamilika kwa sababu ya kazi hiyo ambayo haijakamilika. Hiyo, hapo hapo, ni athari ya Zeigarnik. Athari ya Zeigarnik ilionyeshwa na mwanasaikolojia Bluma Zeigarnik, ambaye alielezea kuwa huwa tunaweka kazi zisizo kamili katika kumbukumbu zetu kwa muda mrefu kuliko kazi zilizokamilishwa. Mchoro wa mfululizo huingia kwenye hili katika muundo wa UX. Hebu tuseme uko katika siku ya 63 ya mfululizo wa kujifunza. Wakati huo, uko katika muundo unaoendelea wa biashara ambayo haijakamilika. Ubongo wako mara chache haungesahau kuihusu kwani inakaa nyuma ya akili yako. Katika hatua hii, ubongo wako ndio unakutumia arifa. Unapoweka nguvu hizi za kisaikolojia pamoja, unaanza kuelewa kwa nini misururu sio tu kipengele cha kawaida cha programu; wana uwezo wa kurekebisha tabia za binadamu. Lakini mahali pengine kwenye mstari - siwezi kusema ni lini haswa, kwa vile ni tofauti kwa kila mtu - mambo hufikia hatua ambapo mfululizo hubadilika kutoka "kufurahisha" hadi kitu ambacho unahisi huwezi kumudu kupoteza. Hutaki siku 58 za juhudi kupotea, sivyo? Hiyo ndiyo inafanya mfumo wa mfululizo kuwa mzuri. Ikifanywa vyema, misururu huwasaidia watumiaji kujenga mazoea ya kushangaza ambayo hutimiza lengo. Inaweza kuwa kusoma kila siku au kupiga mazoezi mara kwa mara. Matendo haya yanayorudiwa (wakati mwingine madogo) huchanganyika kwa muda na kuwa dhahiri katika maisha yetu ya kila siku. Lakini kuna pande mbili kwa kila sarafu. Mstari Mwembamba Kati ya Tabia na Kulazimisha Ikiwa umekuwa ukifuata, unaweza tayari kusema kuna upande mweusi wa mifumo ya mfululizo. Uundaji wa tabia ni juu ya uthabiti na lengo linalorudiwa. Kulazimishwa, hata hivyo, ni uthabiti wa kufanya kazi kwa lengo ambalo halihitajiki tena lakini limeshikiliwa kwa hofu au shinikizo. Ni mstari mwembamba-nyembe. Unapiga mswaki kila asubuhi bila kufikiria; ni ya kiotomatiki na ya silika, yenye lengo la wazi la kuwa na pumzi nzuri. Huo ni msururu unaounda tabia nzuri. Mfumo wa mfululizo wa maadili huwapa watumiaji nafasi ya kupumua. Ikiwa, kwa sababu fulani, huna mswaki asubuhi, unaweza kupiga mswaki saa sita mchana. Kutokamilika kunaruhusiwa bila hofu ya kupoteza jitihada ndefu. Kulazimishwa huchukua njia iliyo kinyume, ambapo mfululizo hukufanya uwe na wasiwasi, ujisikie hatia au hata kuchoka, na wakati mwingine, huhisi kama hujatimiza lolote, licha ya yote uliyofanya.kazi. Huchukui hatua kwa sababu unataka, lakini kwa sababu unaogopa kuona maendeleo yako yakiwekwa upya hadi sufuri. Mtu hata alielezea hili kikamilifu, "Nilihisi kwamba nilikuwa nikidanganya, lakini sikujali. Mimi si kitu bila mfululizo wangu". Hii inaonyesha misururu ya kushikilia iliyokithiri inaweza kuwa kwa mtu binafsi. Kwa kiwango ambacho watumiaji huanza kulingania thamani yao ya kibinafsi na kipimo kiholela badala ya lengo la asili au sababu iliyowafanya waanzishe mfululizo. Mfululizo unakuwa wao ni nani, sio tu kile wanachofanya. Mfumo wa kimaadili uliobuniwa vyema unapaswa kuhisi kama himizo kwa mtumiaji, si shinikizo au wajibu. Hii inahusiana na usawa wa motisha ya ndani na ya nje. Motisha ya nje (zawadi za nje, kuepuka adhabu) inaweza kuwafanya watumiaji kuanza, lakini motisha ya ndani (kufanya kazi kwa lengo la kibinafsi kama vile kujifunza Kihispania kwa sababu unataka kuwasiliana na mpendwa wako) ina nguvu zaidi kwa uchumba wa muda mrefu. Mfumo mzuri unapaswa kuwa na msukumo kuelekea motisha ya ndani kwa matumizi makini ya vipengele vya nje, yaani, kuwakumbusha watumiaji jinsi wametoka mbali, sio kuwatishia kile ambacho wanaweza kupoteza. Tena, ni mstari mwembamba. Jaribio rahisi wakati wa kuunda mfumo wa mfululizo ni kuchukua muda na kufikiria kama bidhaa zako zitatengeneza pesa kwa kuuza suluhu za wasiwasi ambazo bidhaa yako ilitengeneza. Kama ndiyo, kuna uwezekano mkubwa wa kuwanyonya watumiaji. Kwa hivyo swali linalofuata litakuwa, Nikichagua kutumia mfululizo, nitauundaje kwa njia ambayo huwasaidia watumiaji kufikia malengo yao kikweli? UX ya Muundo wa Mfumo Mzuri wa Misururu Ninaamini hapa ndipo ambapo miradi mingi huweka mfumo mzuri wa mfululizo au kuuharibu kabisa. Hebu tupitie kanuni za UX za muundo mzuri wa mfululizo. Weka Bila Juhudi Huenda umesikia hili hapo awali, labda kutoka kwa vitabu kama vile Tabia za Atomiki, lakini inafaa kutaja kwamba mojawapo ya njia rahisi zaidi za mazoea zinaweza kuunda ni kwa kufanya kitendo kiwe kidogo na rahisi. Hii ni sawa na kipengele cha uwezo tulichojadili kutoka kwa Fogg Behavior Model. Kanuni ya kwanza ya muundo wowote wa mfululizo inapaswa kuwa kufanya hatua inayohitajika kuwa ndogo kadri inavyowezekana kibinadamu huku bado ikipata maendeleo. Ikiwa kitendo cha kila siku kinahitaji nia ya kukamilika, kitendo hicho hakitapitisha siku tano. Kwa nini? Huwezi kuhamasishwa siku tano mfululizo. Mfano halisi: Ikiwa unaendesha programu ya kutafakari, huhitaji kuwafanya watumiaji kupitia kipindi cha dakika 20 ili kudumisha mfululizo. Jaribu dakika moja, labda hata kitu kidogo kama sekunde thelathini, badala yake. Kama msemo unavyokwenda, matone madogo ya maji hufanya bahari kuu). Juhudi ndogo hukusanya katika mafanikio makubwa na wakati. Hilo linapaswa kuwa lengo: ondoa msuguano, haswa wakati wakati unaweza kuwa mgumu. Watumiaji wanapofadhaika au kulemewa, wajulishe kuwa kujitokeza, hata kwa sekunde chache, kunahesabiwa kama juhudi. Toa Maoni Wazi ya Kuonekana Wanadamu wanaonekana kwa asili. Mara nyingi, tunahitaji kuona kitu ili kuamini; kuna hitaji hili la kuibua mambo ili kuyaelewa vizuri na kuyaweka mambo sawa. Hii ndiyo sababu ruwaza za mfululizo mara nyingi hutumia vipengee vya kuona, kama vile grafu, alama za kuteua, pete za maendeleo na gridi, ili kuibua juhudi. Angalia grafu ya mchango wa GitHub. Ni taswira rahisi ya uthabiti. Bado watengenezaji huipumua kama oksijeni.
Jambo kuu sio kufanya mfumo wa mfululizo uhisi kuwa wa kawaida. Inapaswa kujisikia halisi na kulipwa. Kwa mfano, pete za Duolingo na Apple's Fitness hutumia miundo safi ya uhuishaji inapokamilisha mfululizo, na GitHub inaonyesha data ya kihistoria ya uthabiti wa mtumiaji kwa wakati.
Tumia Wakati Mzuri Nilitaja hapo awali kwamba wanadamu kwa ujumla ni wasahaulifu kwa asili, na kwamba vidokezo vinaweza kusaidia kudumisha kasi ya mbele. Bila vidokezo, watumiaji wengi wapya husahau kuendelea. Maisha yanaweza kuwa na shughuli nyingi, motisha hupotea, na mambo kutokea. Hata watumiaji wa muda mrefu hunufaika kutokana na vidokezo, ingawa mara nyingi, tayari wamefungwa ndani ya kitanzi cha mazoea. Walakini, hata mtu aliyejitolea zaidi anaweza kukosa siku kwa bahati mbaya. Mfumo wako wa mfululizo unahitaji vikumbusho. Vikumbusho vinavyotumiwa zaidi ni arifa zinazotumwa na programu hata wakati huitumii. Muda ni muhimu sana unapofanya kazi na arifa zinazotumwa na programu hata wakati huitumii. Aina ya programu ni muhimu pia. Kutuma arifa saa 9 asubuhi ikisema "Hujafanya mazoezi leo" ni jambo la ajabu kwa programu ya kujifunza kwa sababu wengi wana mambo ya kufanya siku moja kabla hata ya kufikiria kukamilisha somo. Ikiwa tunazungumzia kuhusu programu ya fitness, ingawa, nini busara na labda hata inatarajiwa kukumbushwa mapema katika siku. Arifa zinazotumwa na programu hata wakati huitumii hutofautiana sana kulingana na aina ya programu. Programu za siha, kwa mfano, huona ushiriki wa juu zaidi na arifa za asubuhi (7-8 AM), ilhali programu za tija zinaweza kufanya vizuri zaidi mapema mchana. Jambo kuu ni kujaribu A/B kupima muda wa programu yako kulingana na tabia za watumiaji wako badala ya kudhani kuwa mambo yanafaa kwa kila kitu. Kinachofanya kazi kwa programu ya kutafakari huenda kisifanye kazi kwa kifuatiliaji cha usimbaji. Mbinu nyingine za haraka ni nukta nyekundu kwenye ikoni ya programu na hata wijeti za programu. Uchunguzi hutofautiana, lakini mtu wa kawaida hufungua kifaa chake kati ya mara 50-150 kwa siku (PDF). Ikiwa mtumiaji ataona kitone chekundu kwenye programu au wijeti inayoonyesha mfululizo wa sasa kila anapofungua simu yake, huongeza kujitolea. Usizidishe tu; haraka lazima kutumika kama ukumbusho, si kugombana. Sherehekea Maadhimisho Mfumo wa mfululizo unapaswa kujaribu kusherehekea matukio muhimu ili kuamsha hisia, haswa kwa watumiaji ndani ya mfululizo. Mtumiaji anapofikia Siku ya 7, Siku ya 30, Siku ya 50, Siku ya 100, Siku ya 365, unapaswa kufanya jambo kubwa kutokana nayo. Thibitisha mafanikio - haswa kwa watumiaji wa muda mrefu.
Kama tulivyoona hapo awali, Duolingo alibaini hili na kutekeleza mchoro uliohuishwa unaoadhimisha matukio muhimu kwa kutumia confetti. Mifumo mingine hata hutoa zawadi kubwa za bonasi ambazo huthibitisha juhudi za watumiaji. Na hii inaweza kuwa na manufaa kwa programu, kama vile watumiaji huwa wanashiriki matukio yao muhimu hadharani kwenye mitandao ya kijamii. Faida nyingine ni matarajio ambayo huja kabla ya kufikia hatua muhimu. Sio tu kuweka mfululizo hai bila mwisho; watumiaji wana kitu cha kutarajia. Tumia Mbinu za Neema Maisha hayatabiriki. Watu hukengeushwa. Mfumo wowote mzuri wa mfululizo unapaswa kutarajia kutokamilika. Mojawapo ya matishio makubwa zaidi ya kisaikolojia kwa mfumo wa mfululizo ni kuweka upya kwa bidii hadi sufuri baada ya siku moja tu ambayo haukufanya. Mfumo wa mfululizo wa "maadili" unapaswa kumpa mtumiaji ulegevu. Hebu tuseme una mfululizo wa siku 90 wa kujifunza chess. Umekuwa thabiti kwa miezi mitatu nzuri, na siku moja, simu yako hufa ukiwa unasafiri, na hivyo hivyo, 90 inakuwa 0 - kila kitu, juhudi zote hizo, zinafutwa, na maendeleo yanatoweka. Mtumiaji anaweza kuharibiwa kabisa. Mawazo ya kuijenga upya tangu mwanzo ni ya kudhoofisha sana kwamba jitihada haifai. Mbaya zaidi, mtumiaji anaweza kuacha programu baada ya kuhisi kama ameshindwa. Fikiria kuongeza utaratibu wa "neema" kwenye mfumo wako wa mfululizo:
Streak FreezeRuhusu watumiaji wakose siku kwa makusudi bila adhabu. Muda wa ZiadaRuhusu saa chache (2–3) kupita makataa ya kawaida kabla ya kuanzisha uwekaji upya. Miundo ya KuozaBadala ya kuweka upya kwa bidii, mfululizo hupungua kwa kiasi kidogo, kwa mfano, siku 10 hutolewa kutoka kwa mfululizo kwa siku iliyokosa.
Tumia Toni ya Kutia Moyo Hebu tulinganishe jumbe mbili zinazoonyeshwa kwa watumiaji mfululizo unapokatika:
"Umepoteza mfululizo wako wa siku 42. Anza upya." "Ulijitokeza kwa siku 42 mfululizo. Hayo ni maendeleo ya ajabu! Unataka kujaribu tena?"
Zote mbili hutoa habari sawa, lakini athari ya kihemko ni tofauti. Ujumbe wa kwanza unaweza kumfanya mtumiaji ahisi amekata tamaa na kumfanya aache. Ujumbe wa pili husherehekea kile ambacho tayari kimepatikana na huhimiza kwa upole mtumiaji kujaribu tena. Changamoto za Ubunifu wa Mifumo ya Mfululizo Kabla ya kuingia katika maelezo ya kiufundi ya kuunda mfumo wa mfululizo, unapaswa kufahamu changamoto ambazo unaweza kukabiliana nazo. Mambo yanaweza kuwa magumu, kama unavyotarajia. Kushughulikia Saa za Kanda Kuna sababu kwa nini kushughulikia wakati na tarehe ni kati ya dhana ngumu zaidi ambayo watengenezaji hushughulikia. Kuna uumbizaji, kimataifa, na mengi zaidi ya kuzingatia. Hebu nikuulize hivi: Je! ni siku gani? Tunajua ulimwengu unatumia saa za kanda tofauti, na kana kwamba hiyo haitoshi, baadhi ya maeneo yana Muda wa Kuokoa Mchana (DST) ambao hufanyika mara mbili kwa mwaka. Unaanza wapi kushughulikia kesi hizi za makali? Ni nini kinachohesabiwa kuwa "mwanzo" wa kesho? Wasanidi wengine hujaribu kuzuia hili kwa kutumia saa za eneo moja kuu, kama vile UTC. Kwa watumiaji wengine, hii inaweza kutoa matokeo sahihi, lakini kwa wengine, inaweza kuwa imezimwa kwa saa moja, saa mbili au zaidi. Utofauti huu unaharibu uzoefu wa mtumiaji. Watumiaji hawajali jinsi unavyoshughulikia wakati nyuma ya pazia; wanachotarajia ni kwamba ikiwa watafanya kitendo cha mfululizo saa 11:40 jioni, basi inapaswa kujiandikisha wakati huo huo, katika muktadha wao. Unapaswa kufafanua "siku moja" kulingana na saa za eneo la mtumiaji, sio saa ya seva. Hakika, unaweza kuchukua rahisinjia na uweke upya mfululizo kimataifa kwa watumiaji wote usiku wa manane wa UTC, lakini unaleta ukosefu wa haki. Mtu huko California huwa na saa nane za ziada kukamilisha kazi yake kuliko mtu anayeishi London. Hiyo ni kasoro ya muundo isiyo ya haki ambayo huwaadhibu watumiaji fulani kwa sababu ya eneo lao. Na vipi ikiwa mtu huyo aliye London anatembelea tu, anakamilisha kazi fulani, kisha anarudi kwenye saa za eneo lingine? Suluhisho mojawapo faafu kwa haya yote ni kuwauliza watumiaji kuweka kwa uwazi eneo lao la saa wakati wa kuabiri (ikiwezekana baada ya uthibitishaji wa kwanza). Ni vyema kujumuisha dokezo fiche kwamba kutoa maelezo ya saa za eneo kunatumika tu kwa programu kufuatilia kwa usahihi maendeleo, badala ya kutumiwa kama data inayomtambulisha mtu binafsi. Na ni wazo lingine nzuri kufanya hiyo kuwa mpangilio unaobadilika. Ninapendekeza kwamba mtu yeyote aepuke kushughulikia moja kwa moja mantiki ya saa za eneo kwenye programu. Tumia maktaba za tarehe zilizojaribiwa na za kweli, kama Moment.js au pytz (Python), n.k. Hakuna haja ya kuanzisha upya gurudumu kwa kitu tata kama hiki. Siku Zilizopita Na Kesi Za Ukali Changamoto nyingine ambayo unapaswa kuwa na wasiwasi nayo ni kesi za makali zisizoweza kudhibitiwa kama vile watumiaji kulala kupita kiasi, wakati wa kupumzika kwa seva, kuchelewa, kushindwa kwa mtandao, na kadhalika. Kutumia wazo la mifumo ya neema, kama zile tulizojadili hapo awali, kunaweza kusaidia. Dirisha la ziada la saa mbili linaweza kusaidia mtumiaji na msanidi, kwa maana kwamba watumiaji hawaadhibiwi vikali kwa hali ya maisha isiyoweza kudhibitiwa. Kwa wasanidi programu, madirisha ya neema husaidia katika nyakati hizo zisizoweza kudhibitiwa wakati seva inapungua katikati ya usiku. Zaidi ya yote, usimwamini mteja kamwe. Thibitisha kila wakati kwenye upande wa seva. Seva inapaswa kuwa chanzo kimoja cha ukweli. Kuzuia Kudanganya Tena, siwezi kusisitiza hili vya kutosha: Hakikisha kuhalalisha kila kitu upande wa seva. Watumiaji ni wanadamu, na wanadamu wanaweza kudanganya wakipewa fursa. Haiepukiki. Unaweza kujaribu:
Kuhifadhi vitendo vyote kwa kutumia mihuri ya muda ya UTC.Mteja anaweza kutuma saa yake ya ndani, lakini seva inaweza kubadilisha mara moja hadi UTC na kuthibitisha kulingana na muda wa seva. Kwa njia hiyo, ikiwa muhuri wa muda wa mteja uko mbali kwa kutiliwa shaka, mfumo unaweza kuikataa kama hitilafu, na UI inaweza kujibu ipasavyo. Kwa kutumia ufuatiliaji kulingana na tukio. Kwa maneno mengine, hifadhi rekodi ya kila kitendo na metadata ikijumuisha maelezo kama vile kitambulisho cha mtumiaji, aina ya kitendo kilichofanywa na muhuri wa saa na eneo la saa. Hii husaidia na uthibitishaji.
Kujenga Injini ya Mfumo wa Michirizi Haya si mafunzo ya msimbo, kwa hivyo nitaepuka kukutupia rundo la msimbo. Nitaweka hili la vitendo na kuelezea jinsi mambo kwa ujumla yanaendesha injini ya mfumo wa mfululizo hadi usanifu, mtiririko, na kuegemea. Usanifu wa Msingi Kama nilivyosema mara kadhaa, fanya seva kuwa chanzo kimoja cha ukweli kwa data ya mfululizo. Usanifu unaweza kwenda kitu kama hiki kwenye seva:
Hifadhi data ya kila mtumiaji kwenye hifadhidata. Hifadhi duka la sasa la mfululizo (chaguo-msingi kama 0) kama nambari kamili. Hifadhi mapendeleo ya eneo la saa, yaani, mfuatano wa Saa wa IANA (ama kwa njia dhahiri kutoka kwa muhuri wa saa wa ndani au kwa uwazi kwa kumwomba mtumiaji kuchagua saa za eneo). Kwa mfano, “Amerika/New_York”. Shikilia mantiki yote ili kubaini ikiwa mfululizo unaendelea au kukatika, kwa kuangalia saa za eneo ambalo linahusiana na saa za eneo la mtumiaji.
Wakati huo huo, kwa upande wa mteja:
Onyesha mfululizo wa sasa, unaoletwa kwa kawaida kutoka kwa seva. Tuma kitendo kilichofanywa kwa njia ya metadata kwa seva ili kuthibitisha ikiwa mtumiaji alikamilisha hatua ya mfululizo inayofuzu. Toa maoni ya kuona kulingana na majibu ya seva.
Kwa hiyo, kwa kifupi, ubongo uko kwenye seva, na mteja ni kwa madhumuni ya kuonyesha na kuwasilisha matukio. Hili hukuokolea kushindwa na visa vingi vya kutofaulu, na pia hurahisisha masasisho na urekebishaji. Mtiririko wa Kimantiki Hebu tuige muhtasari wa jinsi injini ya mfumo bora wa mfululizo itaenda wakati mtumiaji anakamilisha kitendo:
Mtumiaji anakamilisha hatua ya mfululizo inayofuzu. Mteja hutuma tukio kwa seva kama metadata. Hii inaweza kuwa "Mtumiaji X alikamilisha kitendo cha Y kwa muhuri wa wakati Z". Seva hupokea tukio hili na hufanya uthibitishaji wa kimsingi. Je, huyu ni mtumiaji halisi? Je, zimethibitishwa? Je, kitendo hicho ni halali? Je, saa za eneo ni sawa? Ikiwa hii itapita, seva hurejesha data ya mfululizo ya mtumiaji kutoka kwa hifadhidata. Kisha, badilisha muhuri wa muda uliopokewa kuwa saa za eneo la mtumiaji. Ruhusu seva ilinganishe tarehe za kalenda (sio mihuri ya muda) katika saa za eneo la mtumiaji: Ikiwa ni siku hiyo hiyo, basi hatua ni ya ziada na hakuna mabadiliko katikamfululizo. Iwapo ni siku inayofuata, basi msururu hurefuka na kuongezeka kwa 1. Ikiwa kuna pengo la zaidi ya siku moja, mfululizo huvunjika. Walakini, hapa ndipo unaweza kutumia mechanics ya neema. Ikiwa utaratibu wa kufadhili haupo, basi weka upya mfululizo hadi 1.
Ukichagua kuhifadhi data ya kihistoria kwa mafanikio makubwa, basi sasisha vigeu kama vile "mfululizo mrefu zaidi" au "jumla ya siku za kazi". Seva basi husasisha hifadhidata na kujibu mteja. Kitu kama hiki:
{ "current_streak": 48, "msururu_ mrefu zaidi": 50, "jumla_siku_zinazotumika": 120, "streak_extended": kweli, }
Kama hatua zaidi, seva inapaswa kujaribu tena au kukataa na kumjulisha mteja wakati chochote kinaposhindikana wakati wa mchakato. Kujenga kwa Ustahimilivu Kama ilivyotajwa hapo awali, watumiaji kupoteza mfululizo kwa sababu ya hitilafu au kukatika kwa seva ni UX mbaya, na watumiaji hawatarajii kuangukia. Kwa hivyo, mfumo wako wa mfululizo unapaswa kuwa na ulinzi kwa hali hizo. Ikiwa seva iko chini kwa matengenezo (au sababu yoyote), zingatia kuruhusu kidirisha cha muda cha saa za ziada ili kusuluhisha ili vitendo viweze kuwasilishwa kwa kuchelewa na bado kuhesabiwa. Unaweza pia kuchagua kuwaarifu watumiaji, hasa ikiwa hali inaweza kuathiri mfululizo unaoendelea. Kumbuka: Weka mlango wa nyuma wa msimamizi ambapo data inaweza kurejeshwa mwenyewe. Hitilafu haziepukiki, na baadhi ya watumiaji wanaweza kupigia programu yako simu au kufikia kuunga mkono kwamba mfululizo wao ulivunjika kwa sababu ambayo hawakuweza kudhibiti. Unapaswa kuwa na uwezo wa kurejesha misururu wewe mwenyewe ikiwa, baada ya uchunguzi, mtumiaji yuko sahihi. Hitimisho Jambo moja linabaki kuwa wazi: Mifululizo ina nguvu sana kwa sababu ya jinsi saikolojia ya binadamu inavyofanya kazi katika kiwango cha kimsingi. Mfumo bora zaidi wa mfululizo huko nje ni ule ambao watumiaji hawafikirii kwa uangalifu. Imekuwa utaratibu wa matokeo ya haraka au maendeleo yanayoonekana, kama vile kupiga mswaki, ambayo inakuwa tabia ya kawaida. Na nitasema tu: Sio bidhaa zote zinahitaji mfumo wa mfululizo. Je, unapaswa kulazimisha uthabiti kwa sababu tu unataka watumiaji wanaofanya kazi kila siku? Jibu linaweza kuwa "hapana".