
14. 1. 2022
Analýza -
4 minuty
čtení
Dnešní heslo se netýká vaření polévek, týká se atributů požadavků (Requirements). V těch je někdy pěkný guláš.
Při specifikaci požadavků (funkčních i nefunkčních) obvykle začínáme s vlastním textem požadavku, ke kterému přidáme jako atribut jednoznačné ID, což je základ pro další práci s požadavky, umožňuje odkázat se na požadavek a je předpokladem trasovatelnosti požadavků. Dále přidáme atribut priorita, který umožňuje odlišit důležité od méně důležitého (nice to have) a naplánovat postup realizace změn. Základní tip pro analytiky je tedy:
Abychom nemuseli vařit z vody a vymýšlet si další atributy požadavků, průvodce business analytika BABOK ® nám dává recept a doporučuje v průběhu životního cyklu požadavků od jejich identifikace až po provedení požadované změny evidovat i další atributy požadavků, které pomáhají zvládnout vše efektivně a s přehledem:
Pokud si zapamatujete, že Cara (což je ženské jméno) umí dobře vařit polévky, pomůže vám to dát dohromady atributy požadavků podle jejich prvních písmen: CARA’S SOUPS
Požadavků se týkají ještě dva další důležité pohledy, které v polévkovém akronymu nenajdete, ale musíte s nimi při specifikaci požadavků pracovat. Je to za prvé pohled na úroveň abstrakce požadavků a za druhé seskupení požadavků do vhodných skupin.
Požadavky často bývají na různých úrovních abstrakce. Například RAM (Requirements Abstraction Model) používá klasifikaci do 4 úrovní:
Cílem je pokrýt Product level pomocí Feature level a požadavky z Feature level zase pokrýt požadavky z Function level. A to jen takovými, které jsou opravdu potřeba. Není uměním napsat tam všechno, takže už nelze nic přidat. Uměním je napsat to tak, že nelze nic ubrat.
Obdobnou problematiku popisuje A.Cockburn (spoluautor Agilního manifestu) v knize Writing Effective Use Cases, kde definuje různé úrovně cílů use case. Use case může pro někoho vypadat jako zastaralý koncept, ale stále se používá, protože je praktický a není to nic jiného než forma zápisu funkčního požadavku. Úrovně cílů jsou znázorněny od mořského dna přes úroveň hladiny moře až do oblak.
Naše úsilí by se mělo zaměřovat na hladinu moře, tedy na uživatelské cíle. Užitečnost jednotlivých úrovní se bude měnit v průběhu postupu projektu. Nepřipomíná vám to známou agilní hierarchii Epic – Feature – User Story – Task? Cílem user story je ale především sloužit jako podklad pro plánování práce a jako podklad pro komunikaci o požadavcích, nikoli jako detailní specifikace požadavku.
Polévka, kterou vaříme, tedy bude asi slaná (mořská), bude v ní i nějaká ryba ale neměly by v ní být mušle, pokud to opravdu není nutné.
Požadavků bývá hodně, zejména těch funkčních. Aby se s nimi dalo dobře a přehledně pracovat, je nutné je vhodně seskupit. Seskupeny mohou být například podle:
Osobně dávám předost seskupení podle procesů ale nevhodnější způsob může být závislý na konkrétním projektu. Seskupování požadavků bývá obvykle provedeno manuálně analytikem. Objevují se ale i pokusy tento proces zautomatizovat a vytvářet clustery automaticky podle sémantické podobnosti jednotlivých požadavků.
Strukturování a seskupování požadavků do clusterů relevantních pro projekt je také doporučeným postupem (base practice) který popisuje rámec pro posuzování vyspělosti procesů vývoje softwaru SPICE (Software Process Improvement and Capability dEtermination) jako součást procesu SWE.1 Software Requirements Analysis. Aplikací tohoto rámce například pro Automotive je ASPICE.
Tím jsme se zase vrátili k jídlu a polévku jsme si okořenili a dochutili pomocí SPICE.
Dobrou chuť!