Od nacionalnih projektov do agilnega produktnega razvoja za boljše elektronsko zdravstvo
Pogovarjali smo se z Romanom Nagličem, inženirjem, ki stoji za večjimi projekti s področja elektronskega poslovanja v zdravstvu, med drugim tudi eRecepta. Razložil nam je, kakšna je razlika med načrtovanjem nacionalnih projektov in razvojem sodobnih produktov v agilnih ekipah, kjer lahko z manjšim številom ljudi razvijemo visoko skalabilen produkt.
Poznani ste kot arhitekt informacijskih sistemov, pa tudi izkušen programer. Ali lahko na kratko razložite, kje ste v preteklih letih nabirali izkušnje?
Za moje izkušnje je bilo odločilno delo v podjetju Oracle, kjer sem bil zaposlen kot svetovalec za področje srednjega sloja arhitekture (angl. Middle-Tier) na mednarodnih projektih. To je področje visoko razpoložljivih aplikacijskih strežnikov, servisno orientirane arhitekture ter Javanskega razvoja v velikih podjetjih kot so Deutche Telekom, T-Mobile, Vodacom, Ericsson ali banka VTB24. Visoko konkurenčno okolje, zahtevni projekti in povezave z izkušenimi strokovnjaki so mi zelo pomagale nadgrajevati znanje Oracle orodij in metodologij.
Želja spoznavati nove stvari in jih tudi preizkusiti, pa je vodila v iskanje alternativnih rešitev tako na tehničnem kot na metodološkem pristopu do razvoja programske opreme. Zato je bilo trčenje ob meje Oracla neizogibno, saj znotraj podjetja nisem mogel uporabljati drugih rešitev kot Oraclovih. Ravno v tem času pa je podjetje SRC Infonet začenjalo nacionalni projekt eRecept, kjer sem videl priložnost za implementacijo svojih idej, zato sem zapustil Oracle in se pridružil SRC Infonetu.
Pri eReceptu je šlo za nacionalni projekt, ki ga je razpisalo ministrstvo za zdravje, podjetje SRC Infonet pa je vodilo konzorcij sedmih partnerjev. Lahko kaj več poveste o tem projektu?
Izkušnje, ki sem jih nabral v podjetju Oracle, so odločilno vplivale na arhitekturno zasnovo pri eReceptu, saj sem dobre prakse z velikih projektov lahko prenesel na ta projekt. Arhitektura je zasnovana na visoko razpoložljivem aplikacijskem strežniku WebLogic, postavljenem v gručo (angl. cluster). Imel sem še neke ideje o še bolj moderni arhitekturi, vendar jih takrat nisem uspel izpeljati. Za uspeh eRecepta pa ni bila odločilna tehnologija, temveč odlična ekipa SRC Infoneta, ki je sodelovala pri projektu, razumevajoči uslužbenci ministrstva za zdravje RS in kakovosten konzorcij partnerjev. Vsi smo stremeli k cilju, da naredimo kar se da uporaben sistem. Danes mi je v največje veselje in ponos prav dejstvo, da sistem uspešno deluje in se prek njega izda že več kot 90% receptov.
Trenutno ste še vedno vodilni programer v podjetju SRC Infonet, obenem pa vodja razvoja v partnerskem podjetju Medifit, ki se ukvarja z razvojem informacijskega sistema za samoplačniške ambulante. Ali se razvoj v podjetju Medifit razlikuje od projektnega dela, s kakršnim ste se na primer srečali pri eReceptu?
Ta hip z ekipo delamo na dveh projektih. Prvi poteka v SRC Infonetu, gre pa za razvoj platforme Med-di-skop. Ta počasi postaja informacijska hrbtenica tistih zdravstvenih ustanov, ki uporabljajo SRC Infonetove rešitve. Pri drugem projektu pa gre za razvoj jedrnega produkta podjetja Medifit. Projekta se ne razlikujeta toliko po tehnični plati kot po metodološkem pristopu do razvoja. Prvi teče bolj kot ne po klasičnem kaskadnem razvojnem ciklu, medtem ko smo pri Medifitovem projektu uporabili agilne metodologije razvoja s hitrim prenosom poslovnih zahtev v produkcijo. To pomeni, da dobimo hiter odziv uporabnikov, ali je neka funkcionalnost uporabna ali ne. Poskušamo se držati principa MVP (angl. minimum viable product) in razvijamo le stvari, za katere smo prepričani, da jih uporabniki potrebujejo, ostale pa zavržemo že v fazi ideje.
Stalna povezava ekipe razvijalcev z domenskimi strokovnjaki pomeni, da ni težav pri prenosu znanja med enimi in drugimi. Tako lahko razvojna ekipa dejavno sodeluje že v fazi zbiranja idej. Hkrati pa to pomeni, da sta tudi implementacija oziroma razvoj veliko hitrejša in boljša. Razvojna ekipa ima namreč v glavi sliko celotnega produkta in ne samo delčka. Pri klasičnih pristopih k razvoju programske opreme sta sicer oddelka za analizo in razvoj ločena med seboj, informacije pa potujejo samo prek dokumentov.
Pa vendar je na mestu vprašanje, ali lahko rešitev, ki jo pripravljate v podjetju Medifit, konkurira resnim informacijskim sistemom, ki so že v ambulantah?
eAmbulanta podjetja Medifit je resen produkt, tako po tehnični kot po funkcionalni plati. Produkt je namreč namenjen manjšim samoplačniškim ambulantam, vendar ga uspešno uporabljajo tudi ambulante s po 30 podizvajalci. Glavno prednost eAmbulante vidim v funkcionalnosti, ki jo nameravamo implementirati do konca leta, in sicer gre za direktno povezavo z zavarovalnicami. Te ključne povezave, ki prinaša izjemno dodano vrednost vsem deležnikom, ne ponuja nobena rešitev na trgu.
Po tehnični plati pa lahko rečem, da Medifitova rešitev sledi najnovejšim trendom razvoja programske opreme. To je uporaba mikrostoritev, izvajanje v oblaku, visoka varnost zagotovljena s protokolom OAuth2, kot tudi uporaba najnovejših metodologij razvoja, npr. Event Sourcing ali Reactive. To nam prinaša občutno konkurenčno prednost, saj lahko funkcionalnosti razvijemo in testiramo ter plasiramo na trg veliko hitreje kot konkurenca.
Lahko na kratko opišete, kaj vaša eAmbulanta ponuja?
Ključnega pomena pa je, da eAmbulanta omogoča neposredno rezervacijo terminov za medicinske storitve zdravstvene ustanove. To v praksi pomeni, da bodo lahko zavarovalnice za svoje zavarovance same rezervirale proste termine pri vsaki zdravstveni ustanovi z eAmbulanto. S tem ustvarjamo win-win-win model za vse deležnike: zavarovalnice bodo bistveno hitreje in preprosteje naročevale svoje zavarovance na zdravstvene storitve; ti bodo imeli mnogo več možnosti za izbiro izvajalca in prostega termina, zdravstvene ustanove pa bodo z zavarovalnicami dobile nov, pomemben prodajni kanal.
Torej ima vaša rešitev zares vse ključne funkcionalnosti. Pa je njena uporaba že dovolj razširjena?
Kot sem že dejal, je rešitev primerna tako za samostojne zdravstvene delavce, recimo fizioterapevte, kot tudi za ustanove z več deset podizvajalci. Trenutno sistem uporablja 10 zdravstvenih ustanov, glede na povpraševanje pa računamo na hitro rast namestitev. Arhitektura rešitve je zasnovana tako, da jo je enostavno razširiti z dodatnimi sistemskimi ali infrastrukturnimi viri, sam sistem pa se potem dinamično prilagodi povečanemu obsegu dela s t. i. dinamičnimi porazdeljevalniki prometa (angl. load balancers). Ti poskrbijo, da so servisi enakomerno obremenjeni in da sistem nudi najkrajše odzivne čase.
Želimo vam torej, da bi se vse naštete tehnične rešitve za množično uporabo vašega produkta izkazale čimprej kot nujno potrebne!
Hvala za pogovor.