Henrieta Mladar, dSPACE - Kod razvoja proizvoda bitan je cjelovit pogled iz perspektive korisnika
Nakon otvorenja druge dSPACE lokacije u osječkom Eurodomu, razgovarali smo s Henrietom Mladar, zaposlenom na poziciji Product Owner u dSPACE-u
dSPACE nudi cjelovito i integrirano okruženje za razvoj ugradbenog softvera i sustava. dSPACE alate uspješno koriste svi vodeći svjetski proizvođači automobila za razvoj i testiranje elektroničkih kontrolnih jedinica. Između ostalog, dSPACE nudi i opsežni portfelj rješenja za razvoj i testiranje električnih motora, baterijskih sustava, gorivih ćelija i infrastrukture za punjenje.
Nakon otvorenja druge dSPACE lokacije u osječkom Eurodomu, razgovarali smo s Henrietom Mladar, zaposlenom na poziciji vlasnice proizvoda (hrvatski prijevod poznatiji u engleskom originalu „product owner“). Henrieta je podijelila s nama što konkretno radi i koje su sličnosti i razlike u odnosu na njezina prethodna radna iskustva.
Kada u ste počeli raditi u dSPACE-u, na kojem radom mjestu ste počeli raditi, a na kojem ste sada?
U dSPACE sam došla u listopadu 2018. godine, istodobno kada je osnovana hrvatska podružnica dSPACE-a za razvoj softverskih alata. Inicijalno sam bila zaposlena kao tehnička voditeljica projekta za hrvatski tim koji implementira produkt Bus Manager, softver specijaliziran za simulaciju i validaciju automobilske bus komunikacije (CAN/CAN FD, LIN, J1939). Paralelno s promjenom razvojne metodologije na Scrum, postala sam vlasnica proizvoda za dva hrvatska Bus Manager Scrum tima.
Što točno radi product owner na Bus Manageru?
Dva tima iz Zagreba i dva tima iz Paderborna (Njemačka) potpuno integrirano rade na razvoju Bus Managera. Svaki tim ima product ownera. U Scrum teoriji, product owner brine da vrijednost koju softverski produkt postiže radom Scrum tima bude maksimalna. U praksi postoji lista funkcionalnosti koje treba dodati u Bus Manger. (One su iz raznih izvora: korisnički zahtjevi, arhitekturalne promjene, novi elementi iz AUTOSAR standarda, i td.)
Lista novih funkcionalnosti se redovito prioritizira, a u kvartalnim periodima product owner-i međusobno raspoređuju koji tim će preuzeti implementaciju određene funkcionalnosti. Product owner mora razumjeti što nova funkcionalnost treba raditi iz pogleda krajnjeg korisnika, ili - u Scrum žargonu - mora razumjeti i definirati user story-je. Također, mora razumjeti i efektivno prenijeti timu što sve implementacija obuhvaća kako bi standardi kvalitete isporučenog softvera bili zadržani (od provjere utjecaja nove funkcionalnosti na već postojeću funkcionalnost, preko implementacije produktnog koda, implementacije novih automatskih testova, do prezentacije nove funkcionalnosti kolegama, korisnicima unutar tvrtke i odjelu koji priprema korisničku dokumentaciju,...).
Svi implementacijski poslovi zapisuju se kao lista zadataka u alat u kojem je na istom mjestu opis što treba napraviti, omogućena je komunikacija unutar kompletnog Bus Manager tima i integriran je produktni kod. Product owner odgovoran je za:
- jasnu definiciju i objašnjenje timu koji se paketi posla trebaju napraviti (Product Backlog Items),
- priorizaciju zadataka,
- transparentnost, kompletnost i razumijevanje liste zadataka,
- kreiranje i definiciju ciljeva dvotjedne iteracije (Sprint plan), zajedno s timom.
Vlasnici proizvoda na produktu Bus Manager također redovito sudjeluju na sastancima na kojima se diskutiraju i planiraju rješenja za probleme koji su prijavili krajnji korisnici (tzv. second level support). Tako dobivamo direktan uvid kako krajnji korisnici koriste produkt, koji problemi ih često muče, koja je motivacija i na koje sve načine koriste produkt. S te strane vlasnici proizvoda su spona, prezentiraju zahtjeve i očekivanja krajnjih korisnika timu.
Koje su sličnosti, a koje razlike rada u dSPACEu u odnosu na vaša prethodna radna iskustva?
Od 2002. godine radila sam u više softverskih firmi i u svima njima imala sam direktnu komunikaciju s kupcem na srednjim i velikim integracijskim projektima, često i direktno na lokacijama kupca (krajnjeg korisnika). Rad je obuhvaćao i puno predprodajnog i prodajnog posla, npr. priprema ponuda i ugovora. U dSPACE-u radim u klasičnom R&D odjelu (research and development) koji radi na implementaciji kompleksnog softverskog produkta. Više nemam direktan kontakt s prodajom i kupcima, a time je smanjen i stres komunikacije s ljudima koji nemaju tehničko predznanje, očekivanjima i rokovima, financijama. Rad na Bus Manager-u donio je puno brige oko potpunosti implementacije, standardizaciju kodiranja i testiranja (npr. review koda, automatski regresijski testovi, i td.) i osiguranju kvalitete softvera.
Ono što me jako veseli je upotreba naprednih alata za implementaciju i postavljanje softvera (npr. MS Azure DevOps+git, Jama). Velika pozitivna promjena je i u direktnosti i lakoći komunikacije sa svim kolegama - bez obzira jesu li fizički u Njemačkoj, Indiji ili Hrvatskoj - jer većinom inženjeri objašnjavaju inženjerima, a čak su i krajnji korisnici inženjeri koji rade kod proizvođača automobila. Kako Scrum dopušta veliku raznolikost na koji će način vlasnici proizvoda omogućiti maksimalnu vrijednost produkta koji implementira tim, u Bus Manageru mi sudjelujemo i u intervjuima i selekcijskom procesu kod primanja novih kolega u naše timove.
Povezano na to, što se od kandidata za posao očekuje da već zna, a što je potrebno naučiti u dSPACE-u?
Predznanje koje se očekuje je programiranje u jednom od jezika C#, C ili Python. Kako mi radimo u specijaliziranom području (automotive) i na specijaliziranim produktima, ostala znanja će novi kolege naučiti na samom početku rada u dSPACEu (tzv. onboarding proces) i kasnije produbljivati tijekom daljnjeg rada. Specijalizirane teme su: znanja o CAN i ostalim tipovima automobilskih komunikacijskih protokola; generalno razumijevanje AUTOSAR standarda i specijalizacija u nekom od njegovih područja; arhitektura, data model i značajke samog produkta Bus Manger (ŠTO) i metodologiju implementacije (KAKO).
Tijekom onboarding procesa, prvo je cilj razumjeti i naučiti koristiti Bus Manager kao njegov krajnji korisnik, nakon toga prelazimo na elemente softvera i manje i nadgledane zadatke na implementaciji. Uvođenje u posao radimo uz raspored direktnih treninga s različitim trenerima, čitanje tutoriala i eksperimentiranje (samostalan rad), te set zadataka koji treba riješiti i provjeriti s mentorom. Brzina onboardinga je individualna, ali u roku prvih nekoliko mjeseci uključujemo nove kolege u standardne zadatke na implementaciji, postaju članovi tima i sudjeluju u svim tehničkim i organizacijskim sastancima i događajima.