Business

Ako technická špecifikácia pomáha vo vývoji softvéru a prečo je pre klientov dôležitá

V dnešnej dobe málokto pozná pozíciu technického analytika alebo význam technickej analýzy. Pre samotný vývoj softvéru, ale taktiež pre klienta, je technická analýza veľmi podstatnou zložkou a práve preto by som chcela týmto článkom vyzdvihnúť, aké benefity prináša v rámci projektov, na ktorých pracujeme a s čím všetkým sa počas projektov a analýz stretávame.

Mária Brandoburová21 Nov 2023

V prvých krokoch spolupráce s partnerom sa ako firma venujeme dôležitej fáze a to dizajnu a analýze požadovaného riešenia. Táto etapa predstavuje základný kameň, ktorý nám umožňuje lepšie pochopiť potreby a ciele zákazníka. Naši kolegovia z oddelenia obchodu sa často stretávajú s oprávnenými otázkami zo strany zákazníkov:

  • Prečo by sme mali platiť za analýzu?
  • Aký prínos má pre nás vykonanie analýzy našich požiadaviek?
  • Je táto analýza pre nás nevyhnutná?

Rozumieme, že mnohí zákazníci si plne neuvedomujú dôležitosť analytickej činnosti pri vývoji softvéru. Často sa stáva, že pod pojmom "vývoj softvéru" si predstavia len programovanie aplikácie, no skutočný proces vývoja je omnoho komplexnejší.

Analytici zohrávajú kľúčovú úlohu pri zabezpečení úspešného projektu. Zaujímajú sa o rôzne aspekty, potreby klienta, možné nedostatky, nezrovnalosti v požiadavkách a podobne. Nie je pre nás dôležité iba to, čo si zákazník želá, ale skôr to, čo skutočne potrebuje. Ich úlohou je objaviť podstatu problému, ktorý chce klient vyriešiť a pomôcť vyvinúť zodpovedajúce riešenie.

Sme si plne vedomí toho, že klienti hneď v úvode nevidia všetky možné scenáre správania, dopady a možné problémy softvéru, a práve preto sa s dôrazom venujeme tejto technickej analýze. Týmto prístupom sme už mnohým zákazníkom pomohli identifikovať dôležité aspekty či problémy, ktoré pri úvodnom zadaní nemožno identifikovať bez hlbšej analýzy a vyhli sa tak potenciálnym komplikáciám, ktoré by mohli predĺžiť proces vývoja.

Dôkladná analýza požiadaviek klienta je teda nevyhnutným krokom, ktorý nám umožňuje zabezpečiť efektívny vývoj softvéru, ktorý plne spĺňa očakávania a potreby našich klientov.

Čo je technická analýza v IT?

Technická analýza vytvára podklady pre developerov a testerov pre jednotlivé funkcionality riešenia. Je to proces rozoberania a pochopenia biznis, funkčných a nefunkčných požiadaviek a ich pretváranie do technických požiadaviek systému, ktoré jasne opisujú každú časť, funkciu a operáciu softvéru. Definuje prepojenie medzi dizajnom a backendom - teda ako má vyzerať voči tomu, ako sa má správať. Technická analýza slúži ako vodítko pre vývojárov a tím pracujúci na projekte, zisťuje technickú realizovateľnosť každej požiadavky a teda často odhaľuje problémy, ktoré na prvý pohľad nie sú zrejmé.

Význam technickej špecifikácie v IT

Dôkladná analýza je dôležitá pre dosiahnutie kvalitného a efektívneho výsledku, ktorý je v súlade s požiadavkami a očakávaniami zákazníka.

Bez dôkladnej analýzy vznikajú problémy ako:

  • tím nevie, ako má systém fungovať,
  • tím nemá všetky potrebné vstupy pre ich prácu,
  • vzniká množstvo otázok na klienta, ako presne sa má softvér správať, to však nemá byť úlohou developerov,
  • nie sú zadefinované podrobné požiadavky, s ktorými klient súhlasí,
  • výsledný systém nie je dodaný načas, kvôli rôznym nedostatkom v zadaní,
  • očakávania klienta sa nestretnú s výsledným riešením,
  • inkonzistencia správania medzi platformami pri mobilnej aplikácii,
  • dodatočné náklady pre klienta.

Prínosy technickej analýzy pre klientov

Vo väčšine prípadov analytická činnosť identifikuje množstvo reálnych aj potencionálnych problémov. Analytik preverí možné riziká a v spolupráci s tímom špecifikujú možné riešenia. Z vlastných skúseností vieme, že sa nestáva, aby mal projekt tak presne špecifikované zadanie a požiadavky, aby nebolo potrebné jednotlivé funkcie analyzovať a stačil by samotný vývoj bez dodatočných otázok. Vždy je množstvo možných situácii a nejasností, ktoré môžu nastať a sú identifikované až po dôkladnejšej analýze.

Najčastejšie otázky klientov sú: “Za koľko a za aký čas nám produkt viete dodať”. Technická analýza pre klienta nie je lacnou záležitosťou, ale pri tejto otázke má naozaj výpovednú hodnotu. Ak klient odmietne nasadenie analytika na projekt, oddelenie obchodu vie poskytnúť len rámcový cenový aj časový odhad, ktorý je vo väčšine prípadov diametrálne iný, ako konečná výsledná hodnota. S technickou analýzou sú tieto odhady oveľa presnejšie. Ak by bol projekt dostatočne analyzovaný, aj celkové odhadované náklady, časový harmonogram, odhad veľkosti a zložitosti produktu môže byť oveľa presnejší. Zároveň technická analýza slúži pre klienta ako celková dokumentácia výsledného produktu a podpora pri udržiavaní a testovaní softvéru.

Príklady z praxe?

Ako príklad z praxe by som rada predložila jedno z hodnotení nášho klienta, ktorý ocenil dodanie technickej špecifikácie na základe ich požiadaviek v úvode projektu. Klient mal bližší popis riešenia, nad ktorým sa mohol opätovne zamyslieť a ešte pred samotným vývojom prehodnotiť zadanie, doplniť nedostatky, či vylepšiť požadované riešenie.

“Veľmi sa mi páčila podrobná špecifikácia, ktorú poskytli na začiatku projektu na základe našich požiadaviek. O okrajových prípadoch sme mohli uvažovať ešte pred začiatkom implementácie.” Daniel Ferak, Business Unit Director, Innovatrics 

Celkovo pri práci na projektoch vidíme pridanú hodnotu a výhody technickej špecifikácie pre klientov, ako je napríklad odhaľovanie scenárov, na ktoré nemysleli. Všetky projekty, na ktorých sme vykonávali analýzu mali pozitívne ohlasy, či už zo strany klientov alebo zo strany tímu. Zvýšila sa efektivita, istota a spresnilo sa plánovanie projektu a zároveň boli požiadavky zákazníka pochopené oveľa lepšie. Analýza teda nemá dopad len na klienta, ale aj na celý vývojársky tím.

Čo sa týka prerozdelenia celého projektu medzi vývoj, analýzu, testovanie a projektový manažment, demonštrujem to na jednoduchom príklade: Ak sa celkový vývoj produktu odhadne na 1000 hodín práce, pripočítame k tomu ešte 15% za analýzu, 15% za projektový manažment a 15% za testovanie. Celkovo sa tak odhadovaná práca navýši o 45% a teda o 450 hodín. Samozrejme každý projekt je úplne iný, preto je tento príklad len ukážkový. Na väčších alebo zložitejších projektoch sa analýza odhaduje aj na 20%. Je to naozaj individuálne.

Čo obsahuje dobrá technická špecifikácia

Základom pre tvorbu kvalitnej špecifikácie je byť jasný a stručný, poskytnúť kompletné informácie a systematicky a logicky usporiadať jednotlivé popisy. Dobrá špecifikácia by mala obsahovať:

  • jednoduchý biznis popis danej funkcionality - čo má byť výsledkom, aký je význam toho, čo ideme implementovať,
  • popis všeobecných pravidiel pre dizajn systému, ktoré platia naprieč celým softvérom (fonty, farby, témy, štýl,…),
  • grafická vizualizácia procesu prostredníctvom diagramov (v prípade zložitejších procesov),
  • popis backendového riešenia a správania,
  • popis očakávaného správania jednotlivých UI prvkov,
  • podmienky zobrazovania UI prvkov,
  • popis akcií vykonávaných na základe interakcie používateľa,
  • popis a riešenie hraničných prípadov a všetkých možných scenárov, ktoré môžu nastať,
  • popis všetkých stavov, ktoré môžu nastať, ako to má vyzerať a ako správať - načítavanie dát, úspešné načítanie a neúspešné načítanie dát,
  • zoznam úprav, ktoré boli počas vývoja v špecifikácii doplnené.

Záver

Analýza a vytvorenie technických špecifikácií sú kľúčovými krokmi pri vývoji softvéru. Poskytujú základný rámec pre projekt a prispievajú k jeho úspechu. Pre klientov znamenajú väčšiu istotu a transparentnosť, pre vývojový tím efektívnejšiu prácu a lepšiu kontrolu nad projektom. Technické špecifikácie znižujú riziká, komplikácie, nedostatky a nesprávne očakávania. Sú dôležitou dokumentáciou pre výsledný produkt a podporujú dlhodobé udržiavanie a rozvoj softvéru. Celkovo hrajú kľúčovú úlohu pri dosahovaní kvalitných výsledkov projektu, ktoré spĺňajú potreby a očakávania klientov.

Položte si otázku: “Pustili by ste sa do stavby domu bez projektanta, ktorý by vám dom navrhol?” Je dôležité si uvedomiť, že analýza a technická špecifikácia nie je nákladom, ale investíciou do úspechu projektu. Je to ako investícia do kvalitného plánu pred stavbou domu, vďaka ktorému predídete nesprávnym krokom a problémom v budúcnosti. 

Mária Brandoburová21 Nov 2023