Softvérová analýza očami profesionálky | Technologický blog

06.05.2021

Softvérová analýza býva často považovaná za technickú činnosť a všeobecne sa dá povedať, že vývoj softvéru je prevažne mužskou doménou. V dnešnom blogu s Andreou Haverlovou, manažérkou tímu analytikov, konzultantov a testerov sa však dozvieme, že veci nebývajú vždy také ako sa zdajú. Poďte s nami nazrieť do technického sveta očami ženy, profesionálky, ktorá nám ponúkne zaujímavý pohľad na to, čo to softvérová analýza je.

 

Andrea, ako si sa dostala k softvérovej analýze?

Moji rodičia o mne vždy vravievali, že musím vždy prísť všetkému na kĺb (smiech). Spomínam si napríklad na situáciu z detstva, keď som rozobrala magnetofón a povyťahovala z neho všetky gumičky. Moji rodičia samozrejme neboli nadšení, pretože to bolo ešte v čase socializmu a magnetofón sa nedal bežne opraviť ani kúpiť ako dnes.

Ako vyštudovaná chemička som sa k softvérovej analýze dostala okľukou práve cez chemickú analýzu. Mňa vždy bavilo analyzovať. Ono je asi trochu jedno čo človek analyzuje.

Po skončení školy som začala pracovať vo vedeckom ústave ako analytická chemička. Veľmi rýchlo som si uvedomila, že hoci som vydala článok v odbornom časopise, tak chlieb v potravinách si za to nekúpim.

Preto som sa ako mladý človek v Bratislave začala obzerať po iných možnostiach ako sa uplatniť. Urobila som si rekvalifikačné kurzy aj z oblasti ekonómie a účtovníctva. Následne som sa prihlásila na pozíciu testera v softvérovej spoločnosti pre účtovnícky softvér.

To bol môj vstup do sveta informačných technológií a postupne som sa od testovania softvéru presúvala ku komunikácii so zákazníkom a analyzovaniu jeho požiadaviek.

Ako sa cítiš ako softvérová analytička - žena v prostredí, ktoré býva viac mužské?

Ja túto tému vnímam gendrovo ako neutrálnu. Myslím, že to skôr závisí od toho,  aký vzťah má človek k danému prostrediu, ale teraz mám na mysli prostredie v zmysle, že pracovným nástrojom softvérového analytika je počítač.

Ja osobne som skôr človek, ktorému vyhovujú jasné pravidlá a v tomto zmysle mi svet počítačov, nula – jedna, vyhovuje. Práca SW analytika asi nie je úplne vhodná pre niekoho, kto potrebuje intenzívny sociálny kontakt, pretože by mu v tom chýbali emócie. Alebo ešte inak povedané, pre prácu SW analytika je asi dôležité „zamilovať sa“ do technického riešenia a potom je jedno, či je to žena alebo muž.

Nedávno som zhodou okolností pozerala film o Alanovi Turingovi, ktorý je považovaný za praotca digitálnych počítacích stojov – po našom počítačov. On vytvoril takýto počítací stroj a hoci to bola spleť súčiastok a káblov, on ten svoj miloval.

Aj zo svojich skúseností viem, že SW analytičiek je pomerne veľa, dokonca aj v našej firme (smiech). Skôr si myslím, že tá ďalšia rola s ktorou SW analytik veľmi tesne spolupracuje, a tou je návrhár – architekt SW riešenia, tam už je to pomerne striktne mužská záležitosť. Asi by som naozaj zrátala na prstoch jednej ruky, koľko žien SW architektiek poznám.

Alan Turing vytvoril počítací stroj a hoci to bola spleť súčiastok a káblov, on ho miloval. A pre mňa vývoj softvéru na mieru je dokonca určitá forma umenia.

 

Čo je pre teba na práci SW analytika zaujímavé a lákavé?

Za dôležité potrebujem povedať, že pri práci SW analytika je rozdiel, či sa robí analýza SW produktu alebo analýza SW na mieru. Vývoj SW na mieru je pre mňa určitá forma umenia. Ako analytik môžem uplatniť všetko čo viem, v maximálne miere využiť svoju kreativitu pre dosiahnutie cieľa, ktorý zákazník má.

Na druhej strane je to aj záväzok a zodpovednosť v tom zmysle, že analytik to musí za zákazníka vymyslieť. Nedá sa očakávať od zákazníka, že povie takto a takto to urobte. Zákazník často vie čo by chcel, ale nevie ako to dosiahnuť.  Hlavnou úlohou analytika je pretransformovať zákazníkove požiadavky, pochybovať a dávať kritické otázky.

Stretávam sa s tým, že mladší analytici svoju rolu chápu ako spísanie požiadaviek. Nejde však len o spísanie požiadaviek, je potrebné ich pochopiť a vyextrahovať to čo sa za požiadavkami skrýva. Zvyknem hovoriť, že ak ti zákazník povie, že máš pekný sveter, je dôležité prísť na to, čo tým presne myslel. Hovorí mi, že sa mu sveter naozaj páči alebo hovorí, že som sa vhodne či nevhodne obliekol? Prípadne vníma, že je vonku zima a mať sveter je na mieste? Alebo niečo ešte iné?

Myslím, že úloha analytika je pochopiť zámer zákazníka a ten pretransformovať do zadania.

V tomto smere je práca na SW produkte iná. Tam je SW analytik limitovaný možnosťami produktu. Produkt má byť opakovane použiteľný, tak analytik sa vlastne snaží hájiť záujem produktu a nájsť spôsob, ktorým sa dá produkt použiť na to, čo zákazník potrebuje. Pri práci na SW produkte má analytik výhodu v tom, že svoj produkt detailne pozná a nemusí sa vždy znova a znova oboznamovať s novým biznis prostredím zákazníka.

Čo bolo pre teba najväčšou výzvou v práci SW analytika?

Keď som prišla do ANASOFTu, prišla som práve z pozície produktového SW analytika a najväčšou výzvou pre mňa bolo  prestaviť sa na vývoj riešení na mieru. Uvedomiť si, že už zrazu nemám svet svojho produktu, ale potrebujem sa naučiť vždy znova a znova pochopiť biznis doménu zákazníka a hľadať optimálne riešenie v nej.

Uvedomila som si tiež, že pri tejto práci je dôležité, aby analytik zanechal po sebe pomerne hlbokú stopu práve preto, že každý projekt je jedinečný a iný. Analytik teda nerobí prácu iba pre seba a programátorov, ale aj pre tých, ktorí prídu po ňom. Aby skrátka bolo aj s odstupom času možné zistiť ako je riešenie postavené a prečo, bez potreby skúmať detaily zdrojového kódu, čo je ten najdrahší spôsob ako to zistiť.

To asi vedie aj k nejakej metodike analytickej práce.

Samozrejme. Je to o to citeľnejšie na veľkých projektoch. S veľkosťou projektu rastie potreba koordinácie viacerých ľudí. Preto sme okrem iného zaviedli centrálne úložisko projektov v nástroji Enterprise Architect, kde sa analytici dostanú k analytickej dokumentácii projektov v zmysle našej projektovej metodiky.

Druhou oblasťou je tvorba dokumentácie. V rámci toho sme pred časom začali vytvárať pomerne robustnú metodiku. Vytvárali sme šablóny rôznych analytických dokumentov s cieľom mať veci analyticky spracované veľmi precízne. A hoci sa nám to na veľkých projektoch osvedčilo na menších projektoch sme si uvedomili, že takto robustná metodika nie je vhodná. Často krát ani zákazník nie je schopný ju obsiahnuť a vyžaduje voľnejší prístup. 

Po rokoch skúseností vznikla akási skladačka, v ktorej si analytik s ohľadom na rozsah a potreby projektu môže vyskladať čo všetko z metodiky použije.

Čo je pre teba ako analytika kľúčové preto, aby projekt dopadol úspešne?

Hoci vnímam prácu SW analytika ako technickú, tak kľúčová na projekte je komunikácia. Bez ohľadu na technické riešenie a technológie je analytik tak trochu aj psychológ, ktorý potrebuje porozumieť rôznym pohľadom a potrebám zúčastnených ľudí.

Okrem používateľa sú partnermi analytika najmä projektový manažér, s ktorým rieši rozsah projektu, riziká a harmonogram.

Potom je tu návrhár/vývojár, pre ktorého musí analytik pripraviť zadanie aj s vysvetlením „Prečo to robíme“ a poskytnúť všetky detaily, bez ktorých to vývojár nevie naprogramovať. Analytik tiež musí mať pre vývojára odpoveď na každú otázku. A je jedno či ju má premyslenú vopred, alebo ju zistí od zákazníka.

A v neposlednom rade je tu tester, ktorému analytik potrebuje vysvetliť čo má výsledné riešenie robiť a pomôcť mu nastaviť testovanie tak, aby bolo možné to overiť.

Hoci vnímam prácu SW analytika ako technickú, tak kľúčová na projekte je komunikácia. Bez ohľadu na technické riešenie a technológie je analytik tak trochu aj psychológ, ktorý potrebuje porozumieť rôznym pohľadom a potrebám zúčastnených ľudí.

Je práca analytika náročná? Zdá sa, že si to vyžaduje množstvo skúseností.

Ako pri každej práci, aj pri tejto sa skúsenosti hodia. Postupne sa môj pohľad na prácu analytika menil. Neraz sa stáva, že mladší analytici berú prácu viac technicky ako komunikačne, ale ako v každej práci, ktorá človeka baví a vydrží pri nej, prichádzajú aj nové skúsenosti a nový pohľad na to čo je dôležité. Nepochybne je to komplexná práca. Nie je to o zbieraní požiadaviek ale je to o naplnení cieľov zákazníka, ktoré niekedy nie sú na prvý pohľad zrejmé.

Pre mňa je to práca zaujímavá a mne napríklad príde obdivuhodná práca testerov, ktorá nikdy nekončí a vždy môžu testovať odznova. V mojom prípade ja vnímam ako výhodu, že SW analytik vidí na koniec svojej práce. A určite je práca SW analytika akýmsi spojidlom na celom projekte.

K čomu by si prácu SW analytika prirovnala? Mne to príde podobne komplexné ako napríklad vytvoriť hudbu k filmu. Kde nie je povedané aký nástroj čo kedy má presne hrať a hudobný skladateľ to musí celé poskladať.

Nepremýšľala som nad tým takto, ale je to zaujímavé prirovnanie. V istom zmysle je to podobné v tom, že tam kde nič nie je, má vzniknúť riešenie a analytik je ten, kto sa výraznou mierou podieľa na tvorbe tohto diela. Na základe požiadavky – myšlienky – vznikne niečo hmotné.

 

Ako by si laicky popísala proces SW analýzy?

Je to do značnej miery o rozprávaní sa so zákazníkom a abstrahovaní toho čo povedal. Ak mi napríklad zákazník na stretnutí povie, že by potreboval evidovať faktúry, tak ja pri premýšľaní nad jeho požiadavkou prídem na to, že zrejme by potreboval aj evidenciu partnerov. Taktiež potrebuje nejaké tlačivo faktúry, ich elektronické odosielanie. 

Je to proces kedy identifikujem doménové objekty – slová, ktoré zákazník používa a následne vytváram zoznam analytických objektov, ktoré sú už abstraktnejšie ako to čo zákazník uvádza.

Faktúry totiž môžu byť dodávateľské, odberateľské prípadne má zmysel evidovať aj objednávky. Preto dáva zmysel evidovať v systéme niečo abstraktnejšie, napríklad doklady. Dôležité je sledovať funkcionalitu a to sa zvyčajne robí formou prípadov použitia ako napríklad vystavenie faktúry, prípadne jej uhradenie. Je možný aj opačný prístup, že najprv píšem funkcionalitu a z toho vypadnú objekty, ktoré sa používajú.

Ďalším krokom je návrh používateľského rozhrania, tak aby bolo pre používateľa zrozumiteľné. Samostatnou kapitolou sú integrácie riešenia na iné systémy.

A ako sa v tom všetkom SW analytik orientuje a dorozumie s používateľom a kolegami?

Dôležitou súčasťou práce analytika je notácia alebo forma zápisu tak, aby bolo zrejmé čo bude systém robiť a ako. Je veľmi dôležité, aby všetky zúčastnené strany dokázali analytické výstupy čítať a pripomienkovať. Notácií, ktoré sa pri SW analýze využívajú je niekoľko, ale to by som už išla príliš do detailov. Okrem toho je to téma tak široká, že by vystačila aj na ďalší samostatný rozhovor (smiech).

 

To nie je zlý nápad, uvidíme. Ďakujeme za rozhovor.

 

Rozhovor spracoval Boris Rybár / Manažér tímu softvérového vývoja

 

Mohlo by vás zaujímať

Testovanie je ako skvelá detektívka | Technologický blog

Akákoľvek aplikácia či komplexný informačný systém musí prejsť dlhou cestou, kým sa dostane do rúk koncového používateľa. Nič používateľa zrejme nesklame viac ako aplikácia, ktorá má množstvo chýb, alebo dokonca padá. Preto nezastupiteľnú úlohu v procese vývoja informačných systémov zohráva testovanie. 

Architektonické prístupy | Technologický blog

V dnešnej časti technologického blogu sa budeme rozprávať s jedným z návrhárov spoločnosti ANASOFT, Martinom Vozárom. Ten má viac než 20 ročné skúsenosti s vývojom aplikácií na mieru od tých malých až po veľké enterprise riešenia. Reč bude o distribuovanom prístupe k tvorbe aplikácií a jeho špecifikách.

Digitálny profil organizácie. Na čo pri údajoch firmy dávať pozor?

Digitálna doba prináša množstvo možností, ale aj nástrah. Nielen v prostredí bežného digitálneho života jednotlivých užívateľov, ale aj digitálnej prezentácie podnikateľských subjektov.