Aké softvérové metriky si vybrať a prečo?

Categories: Projektový manažmentTesting a QA

Metriky umožňujú vývojárom sledovať a pochopiť dosiahnutý pokrok, identifikovať problémy a prekážky, doladiť stratégie a stanoviť realistické ciele v procese vývoja softvéru. Ak ich chcete čo najlepšie využiť, musíte vybrať tie správne metriky pre konkrétne potreby vášho tímu.

Výber vhodných metrík však môže byť náročný. Existuje mnoho rôznych typov metrík, pričom každá z nich prináša konkrétnym projektom inú pridanú hodnotu.

Účelom tohto článku je identifikovať vlastnosti, ktoré treba hľadať v rôznych prístupoch k softvérovým metrikám, a ponúknuť príklady možných metrík pre vaše ďalšie projekty. Článok zároveň obsahuje tipy na zlepšenie stratégie vývoja pri ich uplatňovaní.

 

Čo sú softvérové metriky a prečo sú dôležité?

Softvérové metriky sú merania používané na hodnotenie efektívnosti procesu vývoja softvéru a aj samotného softvéru. Môžu napríklad merať výkonnosť a kvalitu softvérovej aplikácie výpočtom rýchlosti systému, jeho škálovateľnosti, použiteľnosti, chýb, pokrytia kódu či náročnosti na údržbu.

Metriky môžu tiež vývojárom poskytnúť neoceniteľné údaje. Umožňujú im včas identifikovať problémy a zrealizovať prípadné korekcie skôr, ako dôjde k príliš veľkým škodám. Okrem toho im v rámci projektu pomáhajú dodržiavať odhadované náklady a termíny.

Softvérové metriky navyše poskytujú aj informácie o potenciálnych konfliktoch medzi vývojármi a užívateľmi. Sú preto nevyhnutné, ak chcete zaistiť, že  program splní očakávania zákazníka či klienta. Metriky tiež môžu pomôcť vývojárskym tímom prijať rozhodnutia, ktoré najlepšie naplnia záujmy všetkých zúčastnených strán.

Odporúčame prečítať: Managing Complex Digital Transformation Programs

Kategórie a príklady softvérových metrík

Vývojári sa pri vytváraní a údržbe softvérového programu môžu zamerať na množstvo ukazovateľov. Pre zjednodušenie uvádzame štyri spôsoby, ako metriky kategorizovať.

Prvou kategóriou metrík softvéru, na ktorú by sa vývojári mali zamerať, je výkon. Výkonnostné metriky merajú rýchlosť, spoľahlivosť a škálovateľnosť systému. Príkladom takýchto metrík sú napríklad čas odozvy, priepustnosť, využitie zdrojov či využitie pamäte. Sú nevyhnutné na pochopenie toho, ako dobre systém dokáže spracovať zadané požiadavky.

Druhou kategóriou, ktorá by sa mohla developerom hodiť, je kvalita. Metriky kvality merajú správnosť a úplnosť systému a môžu zahŕňať napríklad pokrytie kódu, hustotu chýb alebo mieru úspešnosti testovacích prípadov. Tieto metriky sú kľúčom k pochopeniu miery funkčnosti systému z hľadiska jeho schopnosti produkovať správne výsledky a spĺňať požiadavky zákazníka.

Treťou dôležitou kategóriou je použiteľnosť. Metriky použiteľnosti mapujú jednoduchosť používania systému. Patrí sem napríklad skóre spokojnosti užívateľov, čas dokončenia úlohy alebo chybovosť. Tieto metriky sú dôležité na pochopenie toho, ako dobre funguje systém z hľadiska jeho možnosti používania zákazníkmi.

Štvrtou kategóriou je udržiavateľnosť. Metriky udržiavateľnosti merajú jednoduchosť údržby a modifikácie systému. K príkladom tejto metriky patrí zložitosť kódu, technický dlh či miera refaktorovania. Tieto metriky sú nevyhnutné na pochopenie toho, ako dobre systém funguje, pokiaľ ide o jeho servisovanie a úpravy.

To, ktoré metriky budú vývojári softvéru sledovať, závisí od cieľov, požiadaviek a limitov zainteresovaných strán a vývojového tímu. Teraz, keď sme sa pozreli na rôzne kategórie metrík, ktoré vývojári berú do úvahy, nastal čas pozrieť sa na niekoľko konkrétnych metrík.

Ďalšie softvérové metriky na zváženie:

  1. Skutočné pokrytie testami meria rozsah testovaného kódu. Je to percento riadkov kódu, vetiev a stavov overených počas jednotkových testov. Skutočné pokrytie testami ukazuje, ktoré časti aplikácie sú dobre otestované a ktoré potrebujú ďalšie testovanie. Pravidelným meraním tejto metriky môžu vývojári zlepšiť proces zabezpečenia kvality a zaistiť odhalenie chýb ešte pred vydaním softvéru.
  2. Rýchlosť tímov (velocity) je postup vývoja softvéru mapujúci množstvo práce dokončené tímom v rámci jednej iterácie. Vyjadruje sa v bodoch (story points) za iteráciu. Slúži na meranie rýchlosti práce tímu na projekte. Velocity pomáha udržať motiváciu tímu a jeho schopnosť sústrediť sa na dokončenie cieľov v rámci každej iterácie, čím členov tímu motivuje k ďalšiemu úsiliu. Zároveň poskytuje cenné údaje na plánovanie zdrojov a odhady ďalších šprintov.
  3. Uniknuté chyby sú problémy, ktoré sa objavia počas procesu vývoja softvéru a dostanú sa do vydanej verzie aplikácie, pretože ostali počas testovania nepovšimnuté. Takéto problémy sa môžu vyskytnúť, keď vývojový tím potrebuje viac stratégií na dôkladné otestovanie všetkých funkcií a problémov pred vydaním verzie. Uniknuté chyby spôsobujú vážne problémy v ďalšom používaní aplikácií a často spôsobujú, že aplikáciu je potrebné nákladne prepracovať, zákazníci sú nespokojní zákazníkov a spôsobujú stratu času.
  4. Release Burndown je nástroj na riadenie projektov používaný na sledovanie napredovania dlhodobých projektov. Cieľom je presne predvídať a riadiť zmeny v rozsahu a časovom harmonograme projektu, aby sa dodržali stanovené termíny dodania. Táto metrika poskytuje prehľad o funkciách, úlohách, cieľoch a výkonnostných ukazovateľoch projektu v grafickej forme (tzv. burndown graf) a vo  forme tabuľky. Release burndown môže navyše pomôcť identifikovať problematické miesta alebo oneskorenia.
  5. Lead Time je časový úsek medzi začiatkom projektu a jeho dodaním. Tieto lehoty sa môžu veľmi líšiť v závislosti od konkrétneho projektu, ale zvyčajne zahŕňajú viacero činností, ktoré je nevyhnutné zrealizovať, kým je softvér pripravený.
  6. Spokojnosť zákazníkov je metrika merajúca spokojnosť zákazníkov s produktom alebo službou. Zákazníci sú spokojní, keď výkonnosť softvéru splnila alebo prekročila ich očakávania. Meranie spokojnosti zákazníkov je dôležité, pretože umožňuje firmám identifikovať slabé miesta v ponúkaných službách a rýchlo ich riešiť.
  7. Pomer otvorených/uzavretých ticketov pri vývoji softvéru je porovnanie počtu úloh v procese s počtom dokončených úloh za dané obdobie. Zvyčajne sa vypočítava ako percentuálny podiel celkového počtu otvorených a uzavretých ticketov za deň, mesiac alebo rok. Táto metrika pomáha organizáciám pochopiť, ako rýchlo dokáže ich vývojový tím dokončiť úlohy a vyhovieť meniacim sa požiadavkám rôznych zainteresovaných strán.
  8. Percento odhalených chýb (Defect Detection Percentage – DDP) je metrika používaná na meranie podielu kódovacích chýb identifikovaných v procese vývoja a testovania softvéru. Je to dôležitá metrika používaná na vyhodnotenie miery úspešnosti projektu. Vyššie percento DDP naznačuje lepšie zabezpečenie kvality a znamená nižšie náklady na údržbu v budúcnosti.

Odporúčame prečítať: Continuous Inspection: How to Define, Measure and Continuously Improve Code Quality

Metrika Goal Question Metric

Basiliho metrika Goal Question Metric (GQM) je prístup k hodnoteniu obľúbený medzi vývojármi pre svoju jasnú štruktúru a jednoduché použitie. GQM je technika analýzy kvality softvéru definujúca a mapujúca ciele vývoja, údržby a zlepšovania softvéru.

GQM umožňuje projektovým tímom analyzovať ich úspechy a problémy týkajúce sa produktivity, harmonogramu, nákladov a kvality. GQM sa člení na trojstupňový proces analýzy: definovanie cieľov, otázok a metrík. Takto využitie prístupu GQM vysvetľuje jeho autor:

„Model GQM je hierarchická štruktúra… začínajúca cieľom (špecifikácia účelu merania, meraného objektu či otázky a hľadiska, z ktorého sa meranie uskutočňuje). Cieľ sa upresňuje vo forme niekoľkých otázok, ako je tá uvedená v príklade. Otázky zvyčajne rozkladajú problém na jeho hlavné zložky. Každá otázka sa potom spresní na metriky, niektoré z nich sú objektívne, niektoré sú subjektívne…

Tá istá metrika sa v rámci toho istého cieľa môže použiť na zodpovedanie rôznych otázok. Niekoľko modelov GQM môže mať aj spoločné otázky a metriky. Tým sa zabezpečí, že pri skutočnom meraní sa správne zohľadnia rôzne uhly pohľadu (t. j. metrika môže mať pri meraní z rôznych uhlov pohľadu rôzne hodnoty).“

Prístup GQM je vynikajúcou voľbou pre výber a analýzu metrík softvéru, pretože sa zameriava na ciele projektu a poskytuje spôsob merania pokroku. Okrem toho umožňuje vývojárom sledovať pokrok v čase a realizovať prípadné úpravy.

 

Zhrnutie

Pri výbere softvérových metrík je dôležité zvážiť špecifické potreby vášho projektu a vybrať relevantné metriky.

Mali by sa zvážiť metriky výkonnosti, kvality, použiteľnosti a udržiavateľnosti, aby ste mali komplexný prehľad o tom, ako dobre váš systém funguje.

Výber správnych metrík pre váš projekt na vývoj softvéru môže vášmu tímu umožniť získať nielen cenné informácie o priebehu jeho vývojového úsilia, ale aj informovane rozhodovať o jeho zlepšovaní.

 

Užitočné zdroje:
  • URL copied!