Softwarová analýza očima profesionálky | Technologický blog

06.05.2021

Softwarová analýza bývá často považována za technickou činnost a obecně se dá říci, že vývoj softwaru je převážně mužskou doménou. V dnešním blogu s Andreou Haverlovou, manažerkou týmu analytiků, konzultantů a testerů se však dozvíme, že věci nebývají vždy takové jak se zdají. Pojďte s námi nahlédnout do technického světa očima ženy, profesionálky, která nám nabídne zajímavý pohled na to, co to softwarová analýza je.

Andreo, jak ses dostala k softwarové analýze?

Moji rodiče o mně vždy říkali, že musím vždy přijít všemu na kloub (smích). Vzpomínám si například na situaci z dětství, když jsem rozebrala magnetofon a vytáhla z něj všechny gumičky. Moji rodiče samozřejmě nebyli nadšení, protože to bylo ještě v době socialismu a magnetofon se nedal běžně opravit ani koupit jako dnes.

Jako vystudovaná chemička jsem se k softwarové analýze dostala oklikou právě přes chemickou analýzu. Mě vždy bavilo analyzovat. Ono je asi trochu jedno co člověk analyzuje.

Po skončení školy jsem začala pracovat ve vědeckém ústavu jako analytická chemička. Velice rychle jsem si uvědomila, že ačkoliv jsem vydala článek v odborném časopise, tak chléb v potravinách si za to nekoupím.

Proto jsem se jako mladý člověk v Bratislavě začala ohlížet po jiných možnostech, jak se uplatnit. Udělala jsem si rekvalifikační kurzy i z oblasti ekonomie a účetnictví. Následně jsem se přihlásila na pozici testera v softwarové společnosti pro účetní software.

To byl můj vstup do světa informačních technologií a postupně jsem se od testování softwaru přesouvala ke komunikaci se zákazníkem a analyzování jeho požadavků.

Jak se cítíš jako softwarová analytička - žena v prostředí, které bývá více mužské?

Já toto téma vnímám genderově jako neutrální. Myslím, že to spíše závisí na tom, jaký vztah má člověk k danému prostředí, ale nyní mám na mysli prostředí ve smyslu, že pracovním nástrojem softwarového analytika je počítač.

Já osobně jsem spíš člověk, kterému vyhovují jasná pravidla a v tomto smyslu mi svět počítačů, nula - jedna, vyhovuje. Práce SW analytika asi není úplně vhodná pro někoho, kdo potřebuje intenzivní sociální kontakt, protože by mu v tom chyběly emoce. Nebo ještě jinak řečeno, pro práci SW analytika je asi důležité "zamilovat se" do technického řešení a pak je jedno, jestli je to žena nebo muž.

Nedávno jsem se shodou okolností dívala na film o Alanovi Turingovi, který je považován za praotce digitálních počítacích strojů - po našem počítačů. On vytvořil takový počítací stroj a přestože to byla změť součástek a kabelů, on ten svůj miloval.

I ze svých zkušeností vím, že SW analytiček je poměrně hodně, dokonce i v naší firmě (smích). Spíše si myslím, že ta další role se kterou SW analytik velmi těsně spolupracuje, a tou je návrhář - architekt SW řešení, tam už je to poměrně striktně mužská záležitost. Asi bych opravdu spočítala na prstech jedné ruky, kolik žen SW architektek znám.

Alan Turing vytvořil počítací stroj a přestože to byla změť součástek a kabelů, on ho miloval. A pro mě vývoj softwaru na míru je dokonce určitá forma umění.

Co je pro tebe na práci SW analytika zajímavé a lákavé?

Za důležité považuji říci, že při práci SW analytika je rozdíl, zda se provádí analýza SW produktu nebo analýza SW na míru. Vývoj SW na míru je pro mě určitá forma umění. Jako analytik mohu uplatnit všechno co vím, v maximální míře využít svou kreativitu pro dosažení cíle, který zákazník má.

Na druhé straně je to také závazek a odpovědnost v tom smyslu, že analytik to musí za zákazníka vymyslet. Nedá se očekávat od zákazníka, že řekne takto a takto to udělejte. Zákazník často ví co by chtěl, ale neví jak toho dosáhnout. Hlavním úkolem analytika je přetransformovat zákazníkovy požadavky, pochybovat a dávat kritické otázky.

Setkávám se s tím, že mladší analytici svou roli chápou jako sepsání požadavků. Nejde však jen o sepsání požadavků, je třeba je pochopit a vyextrahovat to co se za požadavky skrývá. Řekněme, pokud ti zákazník poví, že máš hezký svetr, je důležité přijít na to, co tím přesně myslel. Říká mi, že se mu svetr opravdu líbí nebo říká, že jsem se vhodně či nevhodně oblékl? Případně vnímá, že je venku zima a mít svetr je na místě? Nebo něco ještě jiného?

Myslím, že úloha analytika je pochopit záměr zákazníka a ten přetransformovat do zadání.

V tomto směru je práce na SW produktu jiná. Tam je SW analytik limitován možnostmi produktu. Produkt má být opakovaně použitelný, tak analytik se vlastně snaží hájit zájem produktu a najít způsob, kterým se dá produkt použít na to, co zákazník potřebuje. Při práci na SW produktu má analytik výhodu v tom, že svůj produkt detailně zná a nemusí se vždy znovu a znovu seznamovat s novým byznys prostředím zákazníka.

Co bylo pro tebe největší výzvou v práci SW analytika?

Když jsem přišla do ANASOFTu, přišla jsem právě z pozice produktového SW analytika a největší výzvou pro mě bylo přestavit se na vývoj řešení na míru. Uvědomit si, že už najednou nemám svět svého produktu, ale potřebuji se naučit vždy znovu a znovu pochopit byznys doménu zákazníka a hledat optimální řešení v ní.

Uvědomila jsem si také, že při této práci je důležité, aby analytik zanechal po sobě poměrně hlubokou stopu právě proto, že každý projekt je jedinečný a jiný. Analytik tedy nedělá práci jen pro sebe a programátory, ale i pro ty, kteří přijdou po něm. Aby zkrátka bylo i s odstupem času možné zjistit, jak je řešení postavené a proč, bez potřeby zkoumat detaily zdrojového kódu, což je ten nejdražší způsob jak to zjistit.

To asi vede i k nějaké metodice analytické práce.

Samozřejmě. Je to o to závažnější na velkých projektech. S velikostí projektu roste potřeba koordinace více lidí.

Proto jsme mimo jiné zavedli centrální úložiště projektů v nástroji Enterprise Architect, kde se analytici dostanou k analytické dokumentaci projektů ve smyslu naší projektové metodiky.

Druhou oblastí je tvorba dokumentace. V rámci toho jsme před časem začali vytvářet poměrně robustní metodiku. Vytvářeli jsme šablony různých analytických dokumentů s cílem mít věci analyticky zpracovány velmi precizně.

A přestože se nám to na velkých projektech osvědčilo, na menších projektech jsme si uvědomili, že takto robustní metodika není vhodná. Častokrát ani zákazník není schopen ji obsáhnout a vyžaduje volnější přístup.

Po letech zkušeností vznikla jakási skládačka, v níž si analytik s ohledem na rozsah a potřeby projektu může vyskládat, co všechno z metodiky použije.

Co je pro tebe jako analytika klíčové proto, aby projekt dopadl úspěšně?

Přestože vnímám práci SW analytika jako technickou, tak klíčová na projektu je komunikace. Bez ohledu na technické řešení a technologie je analytik tak trochu i psycholog, který potřebuje porozumět různým pohledům a potřebám zúčastněných lidí.

Kromě uživatele jsou partnery analytika zejména projektový manažer, s nímž řeší rozsah projektu, rizika a harmonogram.

Pak je tu návrhář / vývojář, pro kterého musí analytik připravit zadání i s vysvětlením "Proč to děláme" a poskytnout všechny detaily, bez kterých to vývojář neumí naprogramovat. Analytik také musí mít pro vývojáře odpověď na každou otázku. A je jedno jestli ji má promyšlenou předem nebo ji zjistí od zákazníka.

A v neposlední řadě je zde tester, kterému analytik potřebuje vysvětlit, co má výsledné řešení dělat a pomoci mu nastavit testování tak, aby bylo možné to ověřit.

Přestože vnímám práci SW analytika jako technickou, tak klíčová na projektu je komunikace. Bez ohledu na technické řešení a technologie je analytik tak trochu i psycholog, který potřebuje porozumět různým pohledům a potřebám zúčastněných lidí.

Je práce analytika náročná? Zdá se, že to vyžaduje mnoho zkušeností.

Jako při každé práci, i při této se zkušenosti hodí. Postupně se můj pohled na práci analytika měnil. Nejednou se stává, že mladší analytici berou práci více technicky než komunikačně, ale jako v každé práci, která člověka baví a vydrží při ní, přicházejí i nové zkušenosti a nový pohled na to, co je důležité. Nepochybně je to komplexní práce. Není to o sbírání požadavků, ale je to o naplnění cílů zákazníka, které někdy nejsou na první pohled zřejmé.

Pro mě je to práce zajímavá a mně například přijde obdivuhodná práce testerů, která nikdy nekončí a vždy mohou testovat znovu. V mém případě já vnímám jako výhodu, že SW analytik vidí na konec své práce. A určitě je práce SW analytika jakýmsi pojítkem celého projektu.

K čemu by si práci SW analytika přirovnala? Mně to přijde podobně komplexní jako například vytvořit hudbu k filmu. Kde není řečeno, jaký nástroj co kdy má přesně hrát a hudební skladatel to musí celé poskládat.

Nepřemýšlela jsem nad tím takhle, ale je to zajímavé přirovnání. V jistém smyslu je to podobné v tom, že tam kde nic není, má vzniknout řešení a analytik je ten, kdo se výraznou měrou podílí na tvorbě tohoto díla. Na základě požadavku - myšlenky - vznikne něco hmotného.

Jak bys laicky popsala proces SW analýzy?

Je to do značné míry o vyprávění se zákazníkem a abstrahováním toho, co řekl. Pokud mi například zákazník na setkání řekne, že by potřeboval evidovat faktury, tak já při přemýšlení nad jeho požadavkem přijdu na to, že zřejmě by potřeboval i evidenci partnerů. Také potřebuje nějaké tiskopisy faktury, jejich elektronické odesílání.

Je to proces, kdy identifikuji doménové objekty - slova, která zákazník používá a následně vytvářím seznam analytických objektů, které jsou již abstraktnější než to, co zákazník uvádí.

Faktury totiž mohou být dodavatelské, odběratelské, případně má smysl evidovat i objednávky. Proto dává smysl evidovat v systému něco abstraktnějšího, například doklady. Důležité je sledovat funkcionalitu, a to se obvykle dělá formou případů použití jako například vystavení faktury, případně její uhrazení. Je možný i opačný přístup, že nejprve píši funkcionalitu a z toho vypadnou objekty, které se používají.

Dalším krokem je návrh uživatelského rozhraní, tak aby bylo pro uživatele srozumitelné. Samostatnou kapitolou jsou integrace řešení na jiné systémy.

A jak se v tom všem SW analytik orientuje a dorozumí s uživatelem a kolegy?

Důležitou součástí práce analytika je notace nebo forma zápisu tak, aby bylo zřejmé co bude systém dělat a jak. Je velmi důležité, aby všechny zúčastněné strany dokázaly analytické výstupy číst a připomínkovat. Notací, které se při SW analýze využívají, je několik, ale to bych už šla příliš do detailů. Kromě toho je to téma tak široké, že by vystačilo i na další samostatný rozhovor (smích).

 

To není špatný nápad, uvidíme. Děkujeme za rozhovor.

 

Rozhovor zpracoval Boris Rybár
Manažer týmu softwarového vývoje

MOHLO BY VÁS ZAJÍMAT

Testování je jako skvělá detektivka | Technologický blog

Jakákoliv aplikace či komplexní informační systém musí projít dlouhou cestou, než se dostane do rukou koncového uživatele. A i zde platí, že nejdůležitější je první dojem. Nic uživatele zřejmě nezklame více než aplikace, která má množství chyb, nebo dokonce padá.

Architektonické přístupy | Technologický blog

V dnešní části technologického blogu budeme hovořit s jedním z návrhářů společnosti ANASOFT, Martinom Vozárom. Ten má více než dvacetileté zkušenosti s vývojem aplikací na míru od těch malých až po velké enterprise řešení. Řeč bude o distribuovaném přístupu k tvorbě aplikací a jeho specifikách.

Digitální profil organizace. Na co při údajích firmy dávat pozor?

Digitální doba přináší množství možností, ale i nástrah. Nejen v prostředí běžného digitálního života jednotlivých uživatelů, ale i digitální prezentace podnikatelských subjektů.