HOIA loomine — Eesti ametliku koroonaäpi lugu


Olen tarkvaraarendaja ja kuulun Mobi Labi meeskonda, mis töötab Eesti COVID-19 rakendusega HOIA, mis on loodud koroonaviirusega nakatunutega lähikontaktis olnud inimeste tuvastamiseks ja teavitamiseks. Samuti osalen rakenduse toetamise ja edasiarendamise protsessis. See artikkel räägib süsteemide inimkesksusest ja sellest, kuidas see, mida plaanitakse, pole sageli sama, mida kasutajad eeldavad, ootavad või soovivad.

Natuke projekti taustast

Eesti COVID-19 rakendus HOIA loodi Eesti IT ettevõtete konsortsiumi koostöös ning arendati Eestile pro bono tööna.

Projekti kallal töötas umbes 30 eksperti, enamik neist erinevatest ettevõtetest ja väga erineva taustaga.

Sotsiaalministeerium juhtis üldist tööd koos Tervise ja Heaolu Infosüsteemide Keskusega (TEHIK) ja Terviseameti spetsialistidega. Konsortsium ühendas 12 ettevõtet, kes on disaini, tarkvaraarenduse ja turvalisuse eksperdid:

  • Rakenduse tehniline juhtimine ja disain - Iglu.
  • Back-end süsteemide loomine ja disain - Icefire, TEHIK ja Heisi.
  • Mobiilirakenduse arendamine: Mobi Lab, FOB Solutions, Mooncascade ja ASA Quality Solutions.
  • Turvalisuse analüüs, dokumentatsioon ja sellega seotud suhtlus - Cybernetica, Guardtime, Clarified Security.
  • Tugiteenused ja turundus - Velvet, Iglu, TEHIK.

Analoogi täiendav digitaalne lahendus

Lähikontaktide jälgimine on ajas tõestatud taktika, mida kasutatakse nakkushaiguste leviku piiramiseks ja mis pärineb 16. sajandist. Kontaktide jälgimise eesmärk on leida võimalikult kiiresti üles kõik nakatunu lähikontaktsed, et neid teavitada ja isoleerida nad üldpopulatsioonist. Mida kiiremini seda teha saab, seda väiksem on võimalus, et need kontaktid ise levitavad haigust teistele inimestele. Lähikontaktseks loetakse COVID-19 mõistes isiku, kes viibis nakatunuga koos kuni 2 meetri kaugusel ja enam kui 15 minutit ööpäevas.

Terviseametit teavitatakse iga päev inimestest, kelle COVID-19 test on positiivne. Terviseameti ametnikud helistavad kõigile neile patsientidele, annavad neile nõu järgmiste sammude kohta ning uurivad nende viimaste kontaktide ja liikumiste kohta. Seda tehakse selleks, et selgitada välja kõik lähikontaktsed, kellele nad saavad helistada ja teavitada neid nakkusohust.

Kuigi see protsess toimib väga hästi, on sellel mõned varjuküljed. Kõik inimesed ei suuda meenutada kõiki, kellega nad kohtusid ja suhtlesid. Sageli mäletavad inimesed ainult neid juhtumeid, mis olid nende jaoks kuidagi olulised. Ja kipuvad mitte mäletama kontakte avalikus ruumis või inimestega, keda nad isiklikult ei tunne. Näiteks taksojuhid, teised bussis reisijad, kinosaalis nende kõrval istuvad inimesed jne.

Siin tuleb appi mobiilirakendusepõhine märguanne, mis tuvastab ära ka need kontaktid, keda nakatunu ise ei tunne ega suuda meenutada. HOIA rakendus töötab samamoodi sõltumata sellest, kas need kaks inimest tunnevad teineteist või mitte. Kui rakendus on registreerinud lähikontakti kellegagi, kes on nüüd märgitud haigeks, siis kuvatakse anonüümne teavitus. See võimaldab veenduda, et isegi kui nakatunu kontakti ei mäleta, edastatakse teade sellest hoolimata.

HOIA Covid19 jälgimisrakenduse seadistamine ja andmeseadete ekraanipildid

Me ei leiutanud jalgratast

Samal ajal kui Prantsusmaa ja veel mõned riigid tundsid, et kõike ise teha on ainus tee, siis Eesti ei tahtnud kaasa minna Not Invented Here sündroomiga ja jalgratast leiutada. HOIA rakendus ei ole üles ehitatud nullist.

Hoia rakendus põhines juba ennast tõestatud lähikontaktide teavitamise lahendusel nimega "Decentralized Privacy-Preserving Proximity Tracing" (DP-3T, https://github.com/DP-3T/), mille ehitas Šveitsi Lausanne'i föderaalne polütehniline instituut (EPFL).

DP-3T omakorda kasutas Google'i ja Apple'i pakutavat kokkupuute märguande (GAEN) raamistikku, mis hoolitses platvormi toe ja erinevate seadmetega tegelemise keerukuse eest.

Kõik lahenduse tehnilised aspektid ja sisu on täielikult kirjeldatud https://koodivaramu.eesti.ee/tehik/hoia koos kogu lähtekoodiga.

Lahenduse inimlik element

Kuigi meil on väga mitmekesine ja kogenud meeskond on, oli projektis siiski mõningaid aspekte, mis meid suutsid üllatada. Meie teele sattus väga palju huvitavaid disainialaseid ja ka tehnilisi väljakutseid. Põhjaliku planeerimise ja analüüsiga saime neist üle. Kuid lahenduse inimlik element on midagi, mis üllatab meid ka praegu.

Usalduse ja mõistmise loomine

Me ennustasime, et kogu projekti kõige suuremaks väljakutseks saab süsteemi loomine, mis on samal ajal turvaline, privaatsust säilitav, läbipaistev ja hõlpsasti kasutatav. Nüüd võib öelda, et meie ennustus pidas vett.

Tahtsime pakkuda parimaid teadmisi ja maandusmislehte

Rakenduse selgitamiseks kasutajatele ja kõigile nende küsimustele vastamiseks arendasime https://hoia.me veebisaidi ning lisasime lihtsa graafika ja KKK rakenduse toimimise kohta. See toimis paljude, kuid mitte kõigi jaoks.

Selgus, et alustasime valest vaateviklist. Me eeldasime, et lähikontaktis olnud inimeste tuvastamise ja teavitamise olemuse mõistmine ei ole probleem. Protsess on eksisteerinud sadu aastaid. See ei ole midagi uut.

Rakenduse ainus eesmärk on teavitada kontakte, kes võivad olla nakatunud, kuid jäävad tavapärasest protsessist ilma. Oluline on seda teha nii kiiresti kui võimalik, et nad saaksid olla riskist teadlikud ja isoleerida võimalikult kiiresti, kui nad hakkavad sümptomeid tundma. See toimib ainult siis, kui rakendust kasutavad terved inimesed ja mitte ainult pärast seda, kui inimene on juba haige.

Oli veel üks kasutajate segment, kelle pärast me muretsesime. Nad mõistsid hästi HOIA rakenduse eesmärki. Nad olid ka teoreetiliselt valmis seda kasutama. Kuid ikkagi ei kasutanud seda. Nad ei saanud aru, kuidas rakendus pärast allalaadimist käitub. Ja see tekitas ärevust ja hirmu. Kuidas teated edastatakse? Kui palju neid oleks? Võib-olla teavitaks see mind iga päev? Võib-olla iga tund? Millal ja kuidas ma tean, kas saan rakendust usaldada? Kuidas seda kasutada "õigel viisil"? Kas ma saan selle ikkagi eemaldada, kui olen otsustanud, et ma ei soovi seda kasutada?

Nende murede leevendamiseks täiustasime HOIA kodulehte praktiliste ekraanipiltide ja videotega, kuidas rakendus töötab, kuidas teavitusi edastatakse, kuidas ennast edukalt nakatunuks märkida ning kuidas soovi korral rakenduse esialgset seisu taastada. Me eeldame, et see võimaldab kasutajatel ette kujutada kuidas rakendust saab kasutada ja seejärel suunata neid rakenduse kasutamiseni.

Tahtsime luua lihtsa ja mugava kasutajakogemuse rakenduse kasutajatele

Meie eesmärk oli luua rakenduse jaoks lihtne ja mugav kasutajakogemus, et peita kõik turvalisuse ja privaatsuse tagamiseks vajalikud keerulised protsessid. Tänu Cybernetica põhjalikule turvaanalüüsile ja Iglu suurepärasele disainile tunneme, et oleme jõudnud väga lähedale. Kuid meil on veel mõned võimalused olukorra parandamiseks.

Üks probleem, millega kokku puutume, tuleneb Eesti nakatumise kinnitamise protsessist, mis koosneb kahest etapist. Üks samm on enamikule eestlastele tuttav, teine on võõras ja võib segadust tekitada.

Esimese sammuna tuleb sisse logida Eesti Patsiendiportaali, et anda HOIA süsteemile luba kasutaja diagnoosi kontrollimiseks. Kuna paljud inimesed on portaaliga juba tuttavad, ei tekita see enamikule meie kasutajatest probleeme.

Teine samm on aga problemaatilisem. Pärast seda, kui COVID-19 diagnoos on kinnitatud ja backend on nõustunud lubama kasutajal end nakatunuks märkida, peab kasutaja lubama rakendusel ka anonüümsed seadme võtmed oma seadmest backend süsteemi üles laadida. See samm on oluline teavituste saatmiseks. Selle autoriseerimiseks näitab Google'i ja Apple'i GAEN API kasutajale õiguste dialoogiboxi ja palub tal vajutada nuppu "Jaga".

See dialoogibox on ülejäänud rakendusest erineva stiiliga ja on enamikule kasutajatest võõras. Mis veelgi hullem, iOS-is on see alati inglise keeles. Kasutajate alamhulk ei ühenda dialoogiboxi eesmärki üldise protsessiga (jagamine on midagi, mida teete Facebookis, eks?). Ja nad ei vajuta "Jaga". Ja ei saada oma lähikontaktsetele ühtegi teavitust.

Meie lahendus on siin mitmekülgne. Peame läbirääkimisi Google'i ja Apple'iga, et muuta dialoogiboxi sisu kasutajatele arusaadavamaks. Lisasime rakendusele ka täiendava vaate, mis selgitab protsessi 2. etappi ja eelseisva dialoogiboxi olemust. Nende muudatustega loodame muuta tundmatu tuttavamaks ja mitte kaotada selle käigus ühtegi kasutajat.

X code

Tahtsime muuta HOIA kõigile kasutatavaks

IOS-i jaoks on see enamasti lihtne ülesanne. Apple kontrollib oma seadmete kõiki aspekte. Ja see on väga hea, et mitte jätta kasutajaid tarkvarauuendustest maha. Platvormi ja GAEN SDK probleemid on õnneks pigem haruldased.

Androidiga on aga teine lugu. Kuna on palju erinevaid tootjaid ja seadmeid, millel on erinevad tarkvaraversioonid ja konfiguratsioonid, kartsime probleeme. Ja probleemid tulid, aga mitte ootusepärasest kohast.

Kuna Google kasutas Google Play teenuste teeki GAEN API juurutamiseks ja selle ajakohastamiseks kõigis seadmetes, oli API saadaval ja toimis kõigis ühilduvates seadmetes.

Kuid siis hakkasid ilmnema probleemid, kus mõned kasutajad ei saanud GAEN API-t (ja seega ka HOIA rakendust) taustal käivitada.

Selgus, et on mõned probleemsed telefonitootjad, kes ei järgi Google'i ametlikke juhiseid aku optimeerimise kohta. Nad lisavad oma optimeerimise, mis on vaikimisi lubatud ja kasutajale peidetud. See optimeerimine keelab sageli kõik taustatoimingud kohe, kui seadme ekraan on suletud. Seda selleks, et aku kestaks nii kaua kui võimalik. Kuid seetõttu GAENi aluseks olev Bluetooth-signaal ja taustaserveri sünkroonimine ei toimu. Seetõttu kannatab HOIA äpi efektiivne kasutamine.

Selle probleemi lahendamiseks oleme töötanud kahe aspektiga. Uuendasime Hoia KKK lehte , et kasutajad saaksid sellisest käitumisest teadlikumad olla. Ja me lõime lihtsad juhised kuidas olukorda avastada ja nõustada inimesi, kellel on sellised seadmed. Suureks abiks selles püüdluses on veebisait https://dontkillmyapp.com/. See kirjeldab üksikasjalikult probleemsete tootjate käitumist ja annab kasutajatele hõlpsasti järgitavad juhised nende peidetud funktsioonide keelamiseks.

Eesolev teekond

Nagu peaaegu iga projekti puhul, mis on loodud konkreetse probleemi lahendamiseks, oli selle valmis arendamine alles esimene samm. Selle toetamine ja edasiarendamine aja jooksul on see, mis lõpuks loeb. Tunnen, et kuigi meil on palju õppida ja lahendada, oleme siiski heas kohas ja valmis väljakutseid vastu võtma. Oluline on meeles pidada, et tehnilised lahendused ei ole lõppeesmärk. Kasutajad on. Seega peame pöörama oma tähelepanu tehnilistelt probleemidelt UX-i, kasutajaliidese ja kasutajate tajumise probleemide lahendamisele.

Aitäh

Harri Kirik
Tarkvaraarendaja
harri.kirik@lab.mobi

See veebileht kasutab parima kasutuskogemuse pakkumiseks küpsiseid. Meie veebilehte kasutades nõustute meie privaatsuspoliitika ja meie küpsiste kasutamise tingimustega.