Funkčné požiadavky (functional requirements)

Aktualizované

Funkčné požiadavky podrobne popisujú, čo konkrétne musí softvérový systém robiť: úlohy, ktoré podporuje, pravidlá, ktoré uplatňuje, dáta, ktoré mení, a výstupy, ktoré generuje. Pri nahradení SaaS transformujú súčasné pracovné postupy a potrebné vylepšenia do podoby presne definovaného a testovateľného rozsahu pre nový systém.

Funkčné požiadavky definujú pozorovateľnú prácu, ktorú musí nový systém vykonávať. Popisujú akcie, rozhodnutia, výpočty, zmeny údajov, upozornenia a výstupy bez toho, aby vopred diktovali každý detail implementácie. Pri nahradení SaaS produktu vytvárajú spoločný rámec pre produktový, inžiniersky a prevádzkový tím, ako aj pre samotných používateľov.

Odkiaľ funkčné požiadavky pochádzajú

Súčasný produkt je len jedným zo zdrojov, nie kompletnou špecifikáciou. Konfigurované pracovné postupy a produktová dokumentácia ukazujú existujúce správanie. Rozhovory, pozorovanie, záznamy o podpore, reporty, integrácie a manuálne obchádzky procesov však odhaľujú, na čom skutočne závisí chod firmy.

Mapovanie pracovných postupov (workflow mapping) prepája každú požiadavku so spúšťačom, rolou, rozhodnutím, záznamom a výsledkom. Je to dôležité preto, lebo analýza založená len na súpise obrazoviek môže prehliadnuť prácu vykonávanú v tabuľkách, správach alebo prepojených systémoch.

Zdroj podkladovČo môže odhaliťČo je potrebné overiť
Súčasná konfiguráciaPravidlá a dostupné akcieČi sa stále aktívne používajú
Pozorovaný pracovný postupReálnu postupnosť a výnimkyRozdiely oproti oficiálnej dokumentácii
Záznamy o integráciáchUdalosti a vymieňané dátaVlastníctvo a správanie pri chybách
Prípady z podporyOpakujúce sa nedostatky a okrajové prípadyČi ich má náhrada zmeniť alebo vyriešiť
Reporty a exportyRozhodnutia založené na systémových dátachVyžadované polia a časovú frekvenciu

Čo by mala požiadavka obsahovať

Funkčná požiadavka potrebuje dostatok kontextu na to, aby bola zrozumiteľná a testovateľná. Užitočná definícia identifikuje aktéra alebo spúšťač, požadované správanie, relevantné vstupy či pravidlá a pozorovateľný výsledok. Môže tiež definovať výnimky a oprávnenia, pokiaľ ovplyvňujú výsledok procesu.

Tímy zvyčajne organizujú požiadavky okolo týchto oblastí:

  • Používateľské úlohy: vytvorenie, kontrola, schválenie, priradenie, vyhľadávanie, export alebo uzatvorenie záznamu.
  • Obchodné pravidlá: overenie vstupu, výpočet hodnoty alebo smerovanie práce na základe podmienky.
  • Správanie dát: vytváranie väzieb, uchovávanie histórie a riadenie povolených zmien stavu.
  • Systémové interakcie: prijatie udalosti, volanie rozhrania alebo publikovanie aktualizácie.
  • Výstupy: vygenerovanie reportu, upozornenia, dokumentu alebo nadväzujúceho záznamu.

Výrazy ako „jednoduchý“, „rýchly“ alebo „flexibilný“ nedefinujú funkčné správanie. Vyžadujú si buď merateľné podmienky, alebo patria medzi nefunkčné požiadavky.

Požiadavky a funkčná parita

Funkčná parita (feature parity) sa pýta, ktoré súčasné schopnosti musí náhrada reprodukovať. Funkčné požiadavky vyjadrujú vybrané vlastnosti ako správanie, ktoré nový systém dokáže reálne implementovať. Tento rozdiel umožňuje tímu zachovať želaný výsledok bez kopírovania zastaraného rozhrania alebo neoptimálnych obchádzok.

Každá požiadavka by mala mať svojho vlastníka a jasný dôvod na zahrnutie do projektu. Táto spätná nadväznosť spája realizačné rozhodnutia s aktívnym pracovným postupom, kontrolným mechanizmom, zmluvnou potrebou či schváleným vylepšením. Explicitne sa tým tiež určuje, ktoré doterajšie funkcie budú vyradené.

Od požiadavky k dôkazom

Požiadavky sa stávajú overiteľnými vďaka akceptačným kritériám a testovacím scenárom. Scenár definuje modelové vstupné dáta, akciu a očakávaný výsledok. Výnimočné stavy zasa pokrývajú neplatné vstupy, chýbajúce oprávnenia, nedostupné závislosti a iné podmienky, ktoré menia štandardný priebeh procesu.

Argumenty pre softvér prispôsobený reálnym procesom firmy stoja na tejto disciplíne. Vlastná softvérová náhrada vyhovuje reálnej práci iba vtedy, keď jej rozsah odráža skutočné procesy a každé podstatné správanie systému je možné demonštrovať ešte pred ostrým nasadením.