Nový level podpory a poradenstva počas tehotenstva. To znie inovatívne, však? Tím unique odborníkov z Košíc mal možnosť podieľať sa na vývoji a údržbe tejto aplikácie už od roku 2019. Ak sa chcete dozvedieť viac o projekte, držte si klobúky… Ste pripravení ponoriť sa do divov technológií, ktoré sú za touto výkonnou a komplexnou tehotenskou aplikáciou?
Aby sme pochopili a naplno ocenili prácu, ktorá stojí za projektom, musíme spoznať developerov a testerov, vďaka ktorým appka beží bez problémov a plní svoj účel. O backend sa postarali Danka, Jakub, Filip, Vlado a Marek. Naši kreatívni frontend developeri Robo, Majo a Kika pracovali na vizuálnych prvkoch aplikácie. A nakoniec, testeri: Stano, Timea, Lucka a Peťo robili automatizované testovanie, aby našli každú možnú chybu. Niekoľko týždňov dozadu sme si k projektu dali stretnutie s našimi skúsenými developermi a testermi. Hneď bolo jasné, že atmosféra v kolektíve je uvoľnená a priateľská. Pri otázke na tajomstvo ich úspechu všetci hovorili o dôležitosti dobrých vzťahov, efektívnej komunikácii a silnej spolupráci. Tieto faktory sú základom ich spolupráce a pomáhajú im prekonať náročné výzvy. Z ich inside jokov ohľadom teambuildingov či srandovných memes je jasné, že si v tíme dôverujú.
Poďme pekne po poriadku
V roku 2019 sa náš klient obrátil na Unique People s naliehavou žiadosťou o vybudovanie developerského tímu na vytvorenie tehotenskej aplikácie, pretože ich predchádzajúci dodávateľ odstúpil. Naša spoločnosť je známa svojím „can-do“ prístupom a rýchlymi riešeniami, takže keď v decembri 2019 prišla požiadavka klienta, náš manažment okamžite zareagoval. Po niekoľkých interných diskusiách sme v prvom januárovom týždni vykročili do nových vôd. Marek, konateľ, odišiel s tímom do Nemecka, aby sa zúčastnil workshopu nášho klienta, a tak zistil, čo presne klient očakáva. 2. a 3. januárový týždeň sme použili na vybudovanie tímu IT špecialistov s pomocou nášho subdodávateľa. Produkt s najmenšou možnou funkcionalitou (minimum viable product) bol hotový v marci. Aplikáciu sme dokončili v septembri, no a samozrejme, klient si vyžiadal nejaké zmeny. Tieto zmeny sme implementovali a do konca roka 2020 bola aplikácia pripravená na prechod z fázy vývoja do fázy údržby.
Keďže projekt začal veľmi dynamicky, na začiatku sme pár mesiacov spolupracovali s tímom nášho subdodávateľa. Ale ako sa naša Unique People rodina rozrastala, dokázali sme dokončiť vývoj tejto robustnej aplikácie a pokračovať v jej údržbe sami. Význam údržby tejto aplikácie spočíva v jej veľkom rozsahu. Keďže produkt obsahuje osobné údaje týkajúce sa zdravotného stavu pacientov, údržba a bezpečnosť boli mimoriadne dôležité. Náš tím bol zodpovedný za plynulý chod aplikácie, dodržiavanie bezpečnostných predpisov, ako aj za pravidelné aktualizácie backendu a frontendu aplikácie v Google a Apple store.
Počas projektu sa k tímu pridali noví kolegovia, pozrime sa, ako to vnímajú
Robo: „Kvôli svojej dĺžke a komplexnosti bola aplikácia dosť robustná. Pri takej robustnej aplikácii je zložité aj pochopiť ako je tá aplikácia stavaná, takže onboarding pre nového človeka trval dosť dlho. A druhá dôležitá vec je, že sme potom zakomponovali špičkových testerov, ktorí odhalia každý jeden ten bod problému v appke. Z pohľadu frontendu, vyšperkovanie aplikácie trvalo dosť dlho, potrebovali sme vyriešiť niekoľko problémov s dizajnom vrátane posunov pixeláže. Trvalo mi týždeň alebo dva prejsť celú aplikáciu, zistiť, ako je postavená a čo s tým súvisí.“
Filip: „Keď som prišiel na projekt, začal som tým, že som si pozeral kód a študoval ho. Potom sme vytvárali integračné testy s Kubom a Dankou. Potom sme začali implementovať malé zmeny, napríklad sme pridali údaje, vytvorili nové záznamy alebo stĺpce v tabuľkách…“
Kubo: „…ako povedal Filip, po integračných testoch sme zapracovali požiadavky klienta. Malo to aj svoje slabšie stránky. Boli prípady, keď sme dookola pridávali a prerábali funkcie na základe spätnej väzby od klienta. Napriek výzvam sme sa naučili čítať a upravovať kód podľa súčasných štandardov, čo bolo pre mňa ako juniora v mojej prvej práci dôležité.“
Kristína: „Tento projekt bol môj prvý reálny kód, s ktorým som sa stretla v ozajstnej aplikácii. Najkomplikovanejšie bolo pochopiť to, samozrejme, ale bolo to pre mňa dobré na naučenie sa ako čítať kód. Zo začiatku som mala také jednoduchšie tasky, že tu niečo chýba, treba doplniť, posunúť a na tom som sa postupne začala učiť po takých malých krôčikoch.“
Stano: „Čoskoro sme implementovali testing. Vyklikanie formulára zaberie aj 10 – 15 minút. Čiže sme mohli využiť aj frontend testovanie a automatizovať tvorbu používateľov, a tak každý test, ako prešiel, vytvoril nového používateľa, čo znamená, že sme mali v databáze stále viac a viac ľudí na testovacie účely. Databázu sme naplnili používateľskými údajmi, ako je pohlavie, mesiac tehotenstva atď., a vytvorili sme veľa používateľov na simuláciu reálnych používateľských scenárov. Vďaka používateľom sme mali možnosť aj filtrovať a skúmať funkcie a pri tom odhaliť chybičky.“
Akým výzvam ste museli čeliť počas práce na projekte?
Robo: „Niekedy sa stáva, že klient vyžaduje zdanlivo malú dizajnovú zmenu. Ale keď to analyzujeme, zistíme, že sa týka aj frontendu aj backendu a treba všetko prerobiť. Napríklad v našej tehotenskej knižke sme pridávali hodnotu pre lekárov, no a si klient myslel, že ju len rýchlo pridáme do frontendu a backendu. Ale tak isto ešte treba v pozadí napísať testy a nie je to taká jednoduchá implementácia. Niekedy malá zmena ovplyvňuje aj PDF reporty, takže treba vadu zanalyzovať, zvalidovať ju atď.“
Napriek výzvam sa tímu darí udržiavať pozitívnu a veselú atmosféru počas celého projektu. Často si zdieľajú memes alebo vtipy, najmä Stano, Robo a Kubo, a dokonca nájdu humor v bugoch, s ktorými sa stretávajú v kóde.
Kto robí najviac bugov?
Marián: „Fakt neviem, kto robí bugy. Vo fáze údržby sa totiž často stáva, že opravujeme existujúci kód. Kód je však veľmi komplexný. Takže ak sa niečo opravuje alebo dorába, samotný kód je už nastavený tak, že je veľká šanca, že počas toho developer urobí chybu. Nepovedal by som, že je to konkrétne niekoho vina z nepozornosti, ale je to tým, že aký to je typ kódu.“
Danka: „Aj developer je len človek, každý môže urobiť chybu.“
Kto z vás najviac hundre a sťažuje sa?
Filip: „Kubo veľa dudre, podľa mňa…“
Kubo: „Danka ma naučila,???? ako team leader.“
Celý tím súhlasí s tým, že komunikácia a spolupráca od začiatku fungovali dobre. Dokázali si rozdeliť úlohy, brainstormovať, analyzovať problémy a navzájom si pomáhať.
Kto sa najviac stará o ostatných?
Najprv sa všetci pozerali na Danku, ale neskôr Kristína dodala, že Robo bol vždy nápomocný pri akýchkoľvek problémoch týkajúcich sa frontendu, backendu, ako aj testovania. Musí to byť pravda. Dokonca aj Timea, ktorá sa vyjadrovala len ku kľúčovým veciam, cítila potrebu prispieť do debaty.
Timea: „On si vie nájsť čas, keď potrebujeme jeho pomoc, správne veci povedať a usmerniť priateľským a ľudským spôsobom.“
Robo: „Sa budem červenať! To platí o celom tíme. Mám už dosť pracovných skúseností, ale nikdy som sa nestretol s takýmto tímom. Napríklad, keď máme problém na backende, nikto nemá problém zapojiť sa a pomôcť hľadať riešenie. Taký všestranný tím sme, snažíme sa riešiť problémy spoločne. Najväčším plusom tímu je komunikácia. Nikto sa nebojí spýtať… Takže ak má niekto problém a pošle správu, radi pomôžeme. Netreba sa hanbiť priznať, keď niečo neviete, stále môžeme nájsť riešenie spoločne.“
Pozadie aplikácie
Spočiatku, počas vývojovej fázy, tím pracoval v scrum šprintoch. Počas údržby sa rozhodli pre kvartálne releasy plus, v prípade potreby, so špeciálnymi releasmi na opravu chýb. Pokiaľ ide o technológie, pracuje sa s nemeckým štandardom. Pre backend sa používa Java, zatiaľ čo pre frontend sa používa Angular a Ionic. Pracuje sa aj s Java Spring Boot, MariaDB databázou a s GitLabom. DevOps používa Azure a Ranger. Sledovanie úloh sa spravuje prostredníctvom Jira a Confluence. Vďaka Selenide môže tím dôkladne otestovať frontendové komponenty aplikácie.
Zložitosť tejto aplikácie zvýrazňuje skutočnosť, že vyplnenie formulára automatizovaným testovacím softvérom trvá dve minúty. V reálnom živote lekári vkladajú dáta do systému manuálne, čo môže trvať oveľa dlhšie. Je tam veľa možností a políčok s výberom vrátane otázok týkajúcich sa užívania návykových látok pacientom, lekárskych vyšetrení aj ich výsledkov. Tieto zaznamenané údaje sa používajú na predpovedanie zdravotných rizík dieťaťa. Lekár má vlastnú webovú aplikáciu na vyplnenie všetkých informácií o matke a jej dieťati až do času pôrodu. Pacienti majú rozhranie mobilnej aplikácie, ktoré im umožňuje zobraziť si ich údaje, naplánovať vyšetrenia a komunikovať s lekármi prostredníctvom správ v reálnom čase. Viacerí lekári môžu spravovať údaje jednej pacientky a pôrodné asistentky majú taktiež prístup do systému.
Pre registráciu používateľov existuje viacúrovňová hierarchia a štandardom je dvojfaktorová autentifikácia. Bezpečnosť je pri práci s takýmito citlivými údajmi nevyhnutná. Nie je to len GDPR, v aplikácii je vyššia úroveň osobných údajov. Na druhej strane, bezpečnosť pacientov a ich detí je ešte dôležitejšia, takže tím musí zabezpečiť, aby bolo všetko zobrazené a zaznamenané správne po celý čas.
Jednou z hlavných výziev bolo, že na rozdiel od štandardizovaných iOS zariadení, existuje veľa rôznych typov Android telefónov. To viedlo k problému, že niektoré pluginy nefungovali na určitých zariadeniach a na vyriešenie tohto problému bola potrebná hĺbková analýza. Aplikácia navyše zahŕňala niekoľko doplnkových služieb, ako je odosielanie správ v reálnom čase, upozornenia pre správcov a skenovanie QR kódov, čo všetko prispelo k zložitosti systému.
Zasekli ste sa niekedy na probléme a nemohli sa s projektom posunúť dopredu?
Marián: „Áno, zrazu aplikácia vypovedala používanie fotoaparátu. Brainstormovali sme a hľadali riešenie – ale nedávalo to zmysel, pretože to padalo len na určitých zariadeniach. Po mnohých pokusoch sme zistili, že problém bol v starej verzii knižnice, ktorá nebola podporovaná v niektorých verziách Androidu. Trvalo nám to asi týždeň pátrania. Nakoniec sme knižnicu nahradili novšou verziou, takže sme dokázali problém prekonať a posunúť sa ďalej.“
Prečo bol tento projekt pre vás zmysluplný a dôležitý?
Danka: „Začať projekt po materskej dovolenke môže byť výzvou, ale pre mňa to bol perfektný spôsob, ako sa vrátiť do práce. Prirástlo mi to k srdcu. Nie vždy je to bez problémov, ale ja mám ten projekt fakt rada. Jednou z najlepších vecí na tomto projekte je príležitosť, ktorú poskytol nášmu tímu. Všetci sme dostali možnosť pracovať na skutočnom projekte a získať cenné skúsenosti, ktoré môžeme využiť v budúcnosti.“
Robo: „No, myslím, že keď ste developer a váš kód sa dostane do produkcie, je to také uspokojenie, že to dávalo zmysel a že ho ľudia naozaj používajú.“
…a čerešnička na torte!
Marián: „Chcel by som vyzdvihnúť aj jednu konkrétnu vec. Dankinu schopnosť vytvárať mená pre pacientov. Počas tohto projektu vznikli legendy ako pani Štachitková.“
Filip: „… ešte že krstné meno bolo Jozefína. To je pekné ????. “
Danka: „Nie tak potom už boli len také obyčajné, ale Jozefína Štachitková… ???? tá mala všetko, tá mala… Neviem koľko dotazníkov vyplnených, prešla všetkými liečeniami, vyšetreniami a ….už porodila.“
Táto humorná konverzácia medzi našimi developermi je skvelým príkladom priateľskej atmosféry, ktorú u nás, v Unique People, máme. Ak chcete pracovať na zaujímavých projektoch, pokojne nás kontaktujte a možno z nás budú kolegovia.
Pridajte komentár