Könyvjelzők:
A szoftverminőség és a szoftverfolyamatok
alapfogalmai
Kritikus sikertényezők, szoftverválság
A szoftverfolyamat mozgalma
Alapfogalmak az üzleti döntéshozatalban
A szoftvertermék minősége
A megbízható folyamatra alapozott üzleti döntések
Szoftverfolyamat modellek
Szoftverérettség modell
Érettségi szintek
Üzleti motivációk
A szoftverminőség és a szoftverfolyamatok alapfogalmai
A minőségirányítás és minőségbiztosítás
alapfogalmait, mint ismert, az ISO 8402-es
szabvány tartalmazza. Ennek magyar megfelelője 1996-ban jelent
meg MSZ EN
ISO 8402:1996 hivatkozási számon. Az ISO 8402
szerint:
º
A „folyamat" olyan,
egymással kölcsönös kapcsolatban lévő erőforrások és
tevékenységek összessége, amely a bemeneteket (inputs)
kimenetekké (out-puts) alakítja át.
º
A "termék" tevékenységek
vagy folyamatok eredménye. A termékeket négy általános
kategóriába sorolják:
- hardver (például: alkatrészek, részegységek, szerelt
termékek),
- szoftver (például:
számítógépprogramok, eljárások, információk, adatok,
feljegyzések),
- feldolgozott anyagok (például: alapanyagok, folyadékok, szilárd anyagok,
gázok, lemezek, huzalok),
- szolgáltatások (például: biztosítás, bank, szállítás).
A termékek általában ezeknek az általános termékkategóriáknak a
kombinációi.
Az alábbiakban a szabvány definícióinak további
részletezése helyett elemezzük
az utóbbi évtizedekben kibontakozott szoftverválság okait, majd
egy üzleti döntéshozatali
szempontú megközelítés segítségével világítjuk meg a
szoftvertermék és folyamatminőséggel kapcsolatos fogalmak
lényegét.”
Kritikus sikertényezők, szoftverválság
Hatalmas mértékben nő azon feladatok mennyisége,
amelyeknek elvégzését szoftverekre bízzuk. Szoftverektől való
függőségünk növekedési ütemének megtorpanása
belátható időtávon nem várható.
A szoftver mind több és több termékbe épül bele a modern világ
szolgáltatási infrastruktúrájának egyre nagyobb részében és
egyre több üzleti folyamatban.
Ezen felül gyorsan nő a
fogyasztási cikként, önálló termékként forgalmazott szoftverek
piaca is. A szoftver így közvetlenül képviseli, közvetetten
pedig alátámasztja egyre több szervezet tevékenységét,
eredményét, forgalmát, profitját és valódi értékét.
Ha a termelő- és/vagy szolgáltatószervezetek (pl.
vállalatok) sikereket akarnak
elérni termékek piacra dobásakor, szerződések
elnyerésekor, valamint belső működésük
megszervezésekor, és ha alkalmazkodóképesek akarnak lenni és
fenn akarnak
maradni a gyorsan változó piacokon, akkor e szervezeteknek a
megfelelő szoftverre
van szükségük. Olyan szoftverre, amely a megfelelő feladatot
látja el, a meg
felelő áron, és a megfelelő időben áll
rendelkezésre.
A megfelelő szoftver beszerzéséhez a vállalatnak
széles körű tevékenységeke, belső és külső erőforrásokat kell
mozgósítania. Ezek a tevékenységek és erőforrások
szoftverházaktól eltekintve idegenek a vállalat főprofiljától.
Becslések szerint
Európában a szoftverfejlesztések 70%-át olyan
szervezetek végzik, amelyeknek az
alaptevékenysége nem szoftverrel kapcsolatos.
Ebben rejlik a szoftverválság alapvető
magyarázata. A szoftverválság közel három évtizede vonja magára
figyelmünket, megoldani azonban mindeddig nem tudtuk.
Első közelítésben ennek két fő oka az, hogy
- egyrészt a szoftver
olyan kritikus sikertényező, amelynek növekvő mértékű
funkcionális
teljesítőképességére a vállalatok egyre nagyobb igényt tartanak.
- másrészt az ilyen
igényeket kielégítő méretű és bonyolultságú szoftverek kifejlesztése
olyan technikai és menedzselési képességeket követel, amelyek a
legtöbb vállalat kulturális és erőforrás-lehetőségein
kívül esnek.
Nagyszámú vállalat felső vezetői (akiknek képzése
és tapasztalata nem az információtechnológia
területéről származik) nem képesek sem megérteni a szoftverprobléma
természetét és komolyságát, sem kiértékelni a javasolt
megoldásokat. Így a feladat a professzionista szoftveresekre
marad, akik a problémát elsősorban technológiai
szempontból látják, és úgy is próbálják megoldani. Mivel a
szoftverfejlesztési
technológia általában a vállalati problémakör kisebb jelentőségű
eleme, és mivel a rossz technológiai megoldások javítás helyett
gyakran rontanak a helyzeten, a fenti próbálkozások
ritkán sikeresek.
A vállalati felső vezetés és a szoftverfejlesztők
között kommunikációs szakadék
tátong, amelyet már a szoftverválság előtt
felismertek. A két csoportnak különböző a nyelve, a célja, a
problémameglátási tere, az értékrendje. Kölcsönös meg nem
értésük
a legtöbb problémamegfogalmazási és megoldási
kísérletet végzetesen eltorzítja.
Ma azonban már mindkét oldalról változás tapasztalható. A
szoftverfejlesztők
felismerték a minőségi szoftverkészítési folyamat, röviden: a
szoftverfolyamat előtérbe helyezésének fontosságát, a
felső vezetés pedig felismerte, hogy a szoftver
ténylegesen üzleti
tevékenységük kritikus sikertényezője, valamint azt is, hogy a
szoftverfolyamat javítása lehetővé teszi, hogy jobban
kézben tartsák a szoftverfejlesztők tevékenységét.
A szoftverfolyamat mozgalma
A szoftverfolyamat-mozgalom indulása az 1980-as
évek közepére tehető. A 80-as
évek végéig azonban csak speciális szakemberek
érdeklődési körébe tartozott, a szoftverfejlesztőknek csak egy
elenyésző kisebbsége foglalkozott vele.
Vizsgáljuk meg a szoftverfolyamat fogalom meghatározását és
jelentőségét.
- A szoftverfolyamat azon technikai és menedzselési folyamatok
összessége, amelyek a
szoftverkövetelmények meghatározásához és ezen követelményeket
kielégítő szoftvertermékek kidolgozásához és bevezetéséhez
szükségesek.
A szoftverfolyamat jelentőségét az a felismerés
indokolja, hogy „a termék minőségét
nagymértékben meghatározza az előállítására szolgáló folyamat".
A termékek
tulajdonságainak ellenőrzése és javítása a folyamat ellenőrzésén
és javításán keresztül valósítható meg.
A szoftverfolyamat-mozgalom a kezdetektől két ágon fejlődött:
- A szoftverfolyamat
technológiai ága a technikai tevékenységek mikroszintű
modellezésével foglalkozott.
Mind egyéni, mind csoportos folyamatok támogatásához
nyújtott eszközöket. Épített a létező modellező nyelvekre és a
szoftverfejlesztő környezetek architektúrájára.
- A szoftverfolyamat
javítási ága a szoftverfolyamat struktúrájának és érettségének
makroszintű modellezésével foglalkozott, felmérési és javítási
módszereket és eszközöket
nyújtott. Forrásai a minőség- és a technológiafelmérés
területéről származnak.
Mindezek, folyamatosan korszerűsödő tartalommal, ma is
érvényesek.
A továbbiakban a javítási ággal foglalkozunk.
A felső vezetés (menedzsment) csak a 90-es évek eleje óta kezdi
felismerni a tényt és annak következményeit, hogy a szoftver az
üzlet kritikus sikertényezője bármilyen alaptevékenységen felül.
Új reményt ad számára, hogy a szoftverfelmérési
és javítási módszertanok lehetővé teszik a szoftverfejlesztők
minőség, költség és idő vonatkozású teljesítésének
kézbentartását.
A további közeledés elengedhetetlen. A
szoftver-előállítási folyamatnak hatékonynak
és megbízhatónak kell lennie, hiszen a
XXI.
század információs társadalmának
hajtóereje a szoftver lesz, hasonlóan ahhoz, ahogy a
XX.
századé az elektromosság,
a
XIX.
századé pedig a gőz volt.
Alapfogalmak az üzleti döntéshozatalban
Általában a minőség és azon belül a szoftverminőség megítélése
sok szempontú döntéshozatali
folyamat, ezért kiindulásképpen vizsgáljuk meg röviden ez utóbbi
terület alapfogalmait.
A sok szempontú döntéshozatali folyamat megoldási
változatok rangsorolását
vagy kiválasztását végzi el egy jól meghatározott
szempontrendszer alapján. A szempontok
állhatnak tulajdonságokból, célirányokból és végcélokból. A
tulajdonságok
egyszerűen a valóság leírására szolgálnak. A
célirányok tulajdonságokból képződnek
az előnyös és előnytelen irányok meghatározásával. Ezeket már
alapvetően befolyásolják a
döntéshozók követelményei. A végcélok a tulajdonságok vagy
célirányok elérendő szintjét jelentik. Ezeket teljes mértékben
a döntéshozók követelményei
határozzák meg. Végül a szempontrendszer egy egyén vagy csoport
által egy adott döntési helyzetben lényegesnek ítélt
tulajdonságok, célirányok és végcélok összességét jelenti. A
kognitív pszichológiai korlátok legyőzésének érdekében a
szempontrendszereket
hierarchikusan strukturálják, hogy egy-egy szinten ne kelljen
72 szempontnál többet áttekinteni.
Egy minőségi szabvány a szakértői csoport által
konszenzus alapján lényegesnek
ítélt szempontrendszer a minőség megítéléséhez. A
minőségügy területén alapvető a termék-
és a folyamatminőség közötti különbség megértése.
Most az alapvető különbségre
világítunk rá a fenti sok szempontú döntéshozatali fogalmak
felhasználásával
A szoftvertermék minősége
Egy szoftvertermék minőségének megítélése az
információtechnológia egyik alapkérdése.
Számos könyv [Gilb, 1988], [Gillies, 1992], [Boehm, 1981] és
cikk foglalkozik
ezzel a kérdéskörrel általában anélkül, hogy hivatkozna a sok
szempontú döntéshozatal fogalmaira, azokat azonban mégis
felhasználja. Az ISO/IEC 9126
szabvány meghatároz egy hierarchikus szempontrendszert, amelynek
első szintje a következő elemeket tartalmazza:
- funkcionalitás,
- megbízhatóság,
- használhatóság,
- hatékonyság,
- karbantarthatóság,
- hordozhatóság.
Ez a szabvány is konszenzus alapján lényegesnek
ítélt szempontrendszer a szoftverminőség
megítéléséhez. Ilyen konszenzust azonban még nem sikerült
kialakítani
a szempontok további részletezésével
kapcsolatban. Erre csak informális útmutatást
ad a szabvány függeléke, addig a szintig azonban
az sem jut el, ahol már a ténylegesen mérhető tulajdonságokat is
meghatároznák. Így az ISO/IEC 9126 szabvány valójában
nem teljesíti alapvető feladatát, hogy a
szoftvertermék-minőséget egységesen
kiértékelhessék. E szerep betöltésére alkalmas a
SCOPE szoftvertermék-kiértékelési
útmutató [Boegh, 1994], amelynek ISO szabvánnyá
nyilvánítása folyamatban van
Az ISO/IEC 9126-os szabvány például a következő
üzleti döntések támogatásra
szolgál:
- A szoftver
követelményspecifikációja megfelelően tükrözi-e felhasználói követelményeket?
- A kidolgozott szoftver kielégíti-e a felhasználói
követelményeket?
A megbízható folyamatra alapozott üzleti döntések
Önmagában az a tény, hogy egy szervezet adott
terméke kifogástalanul megfelel a
követelményeknek, nyilvánvalóan nem jelenti azt,
hogy ez az állítás a szervezet
jövőbeli minden termékére
érvényes lesz. Egy alapvető üzleti kérdés tehát a vevő
döntési problémája:
- Képes-e a
szállítószervezet a termékét úgy előállítani, hogy az nagy
megbízhatósággal megfeleljen a követelményeknek?
E kérdés megválaszolását támogatja az ISO 9000 szabványsorozat,
amely a hangsúlyt a termék helyett a folyamatra helyezi. A
szoftverfolyamatra általánosan az ISO 9001 szabvány
alkalmazható, amelyet kiegészít a konkrétan
szoftverfejlesztésre vonatkozó ISO 9000-3-as útmutató. Ez
utóbbi az ISO 9001-ben kifejlett 20 elemű szempontrendszer
szoftvertechnológiai megközelítésű átstrukturálása. Ez a
szempontrendszer azonban meglehetősen terjedelmes, elemeit nehéz
egy időben megvalósítani. Ezenkívül egy ISO 9000 tanúsítványt
nem elég elérni, annak érvényességét fenn is kell tartani,
aminek legjobb módja a folyamatos
minőségjavítás. Ehhez és
általában minőségjavítási prioritások kijelöléséhez azonban
nem nyújt segítséget az ISO 9000 tanúsítás. A szállító döntési
problémája tehát:
Hogyan javítsuk folyamatainkat úgy, hogy az általunk előállított
termékek nagy megbízhatósággal megfeleljenek a követelményeknek?
Míg a vevő döntési problémája két alternatíva
(igen vagy nem) közötti választásra
vonatkozott, a szállító döntési problémája számos lehetséges
előrelépési irány
közötti válogatást tesz szükségessé. Ez utóbbit
támogatják a szoftverfolyamat-felmérési
módszertanok és az azok eredményeként előálló akciótervek.
Az ISO 9000 szabványt, valamint a szoftverfolyamat-felmérési
módszertanok fejlődését
alapvetően meghatározó Képesség-Érettség Modellt (Capability
Matu-rity Model, CMM) a későbbiekben tárgyaljuk
részletesen.
A
programozásjavítás modellje
A szoftverfejlesztés kezdeteikor használt modell két lépésből
állt:
(1)
Kódírás.
(2) Problémák kijavítása. Az
e modell által felvetett nehézségek ma már jól ismertek:
- Néhány javítás után a kód olyan rosszul strukturálttá válik,
hogy a további javítások túl drágák lesznek.
- Még a jól megtervezett
szoftverek is olyan kevéssé felelnek meg a felhasználói
követelményeknek, hogy vagy eldobják, vagy drágán újrafejlesztik
őket.
A vízesésmodell
Ma a legtöbb cég
alkalmazza (lásd az alábbi ábrát). Ennek alapvető
oka, hogy könnyű megérteni, és jól meghatározhatók az egyes
szakaszokhoz tartozó dokumentációk.
A vízesésmodell konzisztens a felülről lefelé történő (top-down)
kifejlesztést követő, strukturált programozási modellel, és
lehetővé teszi az egyes szakaszok közötti visszacsatolást,
valamint a prototípuskészítés beépítését a szoftveréletciklusba. E megközelítés következetes betartása
azonban további problémákhoz vezet:
- A prototípusépítés felesleges olyan projekteknél, ahol a
tervezési kérdések egyébként világosak.
- A tiszta felülről lefelé
megközelítéshez előretekintő lépéseket kell beiktatni, hogy
meghatározzák az alacsony szintű, de nagy kockázati tényezőt
jelentő, esetleg sokszorosan felhasználható
szoftvermodulokat.
A fenti problémák vezettek a spirálmodellhez.

Spirálmodell
A Boehm által 1988-ban javasolt ún. spirálmodell
lényeges előrelépés a vízesésmodellhez képest.
E modell nagy figyelmet fordít a kockázatokra és a
költségproblémákra, valamint előtérbe helyezi a
prototípusépítést. A sugár irányú dimenzió a halmozott
költségeket, míg a szögelfordulás az időbeli előrehaladást
szemlélteti.
A spirálmodell egyik legfontosabb jellemzője, hogy minden
ciklust érvényességvizsgálati
és ellenőrzési szemle követ. Ezáltal biztosítható minden
érdekelt fél elkötelezettsége. Minden ciklusban készül egy
(újabb) prototípus, amely lehetővé teszi a rendszer
bemutatását és a hibák korai kiküszöbölését.
A spirálmodellt [Gilb, 1988] a következő módon
kritizálja:
„A spirálmodell semmi szükségeset nem ad a
fejlesztési folyamathoz. Ez nem
azt jelenti, hogy ne lenne
hasznos egy olyan környezetben, ahol a vízesésmodellre hatalmas
bürokrácia épül. Boehm feltehetően foltozgatni próbálja a létező
kultúrát úgy, hogy diplomatikus maradjon."

Tom Gilb elégedetlen a spirálmodellel, és ezért
kidolgozza az evolúciós modellt
[Gilb, 1988].
Az evolúciós modell
Az evolúciós modell alapfogalmai a következők.
- Többcélú tervezés
A hagyományos szoftvertervezés a funkcionális
követelményekre összpontosít,
tehát arra, hogy mit csinál a szoftver és nem
arra, hogy milyen jól, vagy milyen
áron. Olyan jellemzőkre is
megfelelő hangsúlyt kell helyezni, mint a használhatóság,
vagy a karbantarthatóság.
- Korai és gyakori iteráció
A vízesésmodell és a spirálmodell alapkérdése,
hogy mi a legtöbb, mi az a legnagyobb
lépés, amit korlátaink között (költségvetés, határidő,
tárolóhely) el tudunk
érni. Az evolúciós modell ezzel szemben a
végcélunk felé vezető, de legkevesebb
erőforrást igénylő hasznos lépést keresi. Ezzel a
megközelítéssel a távol-keleti filozófiák
forrásaiból merít.
- Minden lépésben teljes elemzés, tervezés, építés és
teszt
Tom Gilb véleménye szerint a szoftverfejlesztési
folyamatban túl sok az ismeretlen, a dinamikus változás, túl
komplexek az összefüggések. Ezért „a szoftverprojektekben
a legnagyobb időpocsékolás a részletes követelményelemzés,
amelyet részletes
rendszerterv, majd kódolás és tesztelés követ". Ehelyett minden
kis lépés után a
kapott visszajelzésektől függően kell módosítani
az azonnali tervet, az architekturális
elképzeléseket, és szükség esetén mind a rövid,
mind a hosszú távú célokat is.
- Felhasználóorientáltság
A szoftverprojektek gyakran eltávolodnak a tényleges piaci,
felhasználói igényektől, és
a gép, az algoritmus, vagy a határidők kerülnek a középpontba.
Az evolúciós modell
ehelyett alapvető hangsúlyt helyez a visszacsatolásra, a
felhasználói értékek változására, a fejlesztési költségek
becslésére.
- Rendszermegközelítés (rendszerelmélet)
A programozás mellett figyelmet kell fordítani
például a dokumentációra, a betanításra,
a marketingre, a motivációra is.
- Nyíltvégű rendszerfelépítés
Folyamatosan elemezni kell azokat a lehetőségeket, amelyek minél
adaptálhatóbb, változtatást tűrő (robusztus) rendszerhez
vezetnek.
- Eredményorientáltság
A hagyományos vízesésmodellben a folyamat
fontosabbnak tűnik, mint az eredmény.
A folyamat formális követelményeinek átgondolatlan követése oda
vezethet,
hogy projektek hatalmas erőfeszítéseket tesznek
nem mérhető és nem is megfogalmazott célok érdekében. Számos
ismert, nagyszámítógépes szoftver példája igazolja,
hogy ez a veszély mennyire gyakori és következményei milyen
súlyosak.
Szoftverérettség-modell (CMM)
Az előző szoftverfolyamat-modell tényleges, fokozatosan
érettebbé váló menedzseléséhez ad segítséget [Humphrey, 89]. A
Watts Humphrey által a Carnegie Mellon Egyetem Software
Engineering Intézetében (SEI) kifejlesztett Képesség-Érettség
Modell (Capability Maturity Model, CMM) mindmáig meghatározó
szerepet játszik a szoftverfolyamat-felmérés és -fejlesztés
területén.
Humphrey gondolatainak gyökerei a Teljes körű Minőségmenedzselés
(Totál Quality Management, TQM) hagyományaiból erednek. A
mozgalom első kiemelkedő személyisége Shewhart volt, akinek a
két világháború között jelent meg „Ipari termékek minőségének
gazdasági ellenőrzése" (The Economic Control of Quality of
Manufactured Products) című könyve. Követői a háború utáni ipari
minőségi mozgalom tekintélyes vezéregyéniségei, Deming, Juran és
Crosby. Humphrey munkáját Crosby minőségmenedzselési érettségi
táblázata ösztönözte.
Az eredmény többszöri átalakulás után a 18
kulcs-folyamatterületet (key process area) 5 érettségi szintre
felosztó modell. A kulcs folyamatterületek csupán a
szoftverfolyamat első felosztását jelentik. Minden
kulcs-folyamatterület kulcstevékenységekből (key practices)
áll. A kulcs-folyamatterületek az őket alkotó
kulcs-tevékenységekkel jó megközelítést adnak a teljes
szoftverfolyamat lefedéséhez. A megközelítés Crosby munkájával
ellentétben nem a kulcs-folyamatterületek érettségét, hanem az
egész szervezet szoftverkészítési érettségét méri. Ennek
eredményeképpen választ lehet adni a szállító korábbiakban
felvetett döntési problémájára, amely a folyamatjavítás
lehetséges irányai közötti prioritásokra vonatkozott.

A
képesség-érettség modell
Az egyszerűbb kifejezésmód érdekében a továbbiakban
„kulcs-folyamatterület" helyett a kulcsterület szót használjuk.”
A következőkben a CMM összetevőit ismertetjük.
Érettségi szintek
Az érettségi szint az érett szoftverfolyamat irányába megtett
lépések egy jól meghatározott szintje. A CMM legfelső szintű
struktúráját az öt érettségi szint alkotja.
- A kezdeti szint
Egy kezdeti szintű szervezet nem biztosít stabil környezetet a
szoftverfejlesztés és karbantartás számára. Kritikus
helyzetekben a projektek nem követik a tervezett eljárásokat,
rákényszerülnek a tűzoltásszerű kódolás-tesztelés stílusra. Az
esetleges siker kizárólag egy kiváló képességű menedzseren és a
lelkes programozócsapaton múlik. Ilyen környezetben általában
nincs idő a folyamatok javításán gondolkodni.
- Az ismételhető szint
Egy ismételhető szintű cégnél vannak bevezetett irányelvek a
szoftverprojektek menedzselésére, valamint eljárások ezen
irányelvek betartására. Így lehetővé válik a korábbi
projektekben kidolgozott sikeres megközelítések, tevékenységek
megismétlése, akkor is, ha maguk a folyamatok eltérnek
egymástól.
- A meghatározott szint
A meghatározott szinten a szoftverfejlesztés és karbantartás
technológiai és menedzselési feladatainak végrehajtása
dokumentált szabványos folyamatot követve megy végbe. Van egy
olyan csoport, amelynek feladata a folyamatok követése és a
szabványok szükség szerinti fejlesztése. Egy szervezeti képzési
program biztosítja az alkalmazottak és a menedzserek
tudásszintjének javítását.
- A menedzselt szint
A menedzselt szinten a szervezet mind a termékekre, mind a
folyamatokra mérhető minőségi célokat ír elő. A projektek úgy
tartják kézben termékeiket és folyamataikat, hogy elfogadható
mennyiségi korlátok közé szorítják azok szórását.
- Az optimalizáló szint
Az optimalizáló szintet az állandó folyamatfejlesztés jellemzi.
A projektek elemzik a hibákat, meghatározzák azok okait, és
javítják a folyamatot annak érdekében, hogy a hibák ne
ismétlődjenek meg. A tapasztalatokat más projekteknek is
átadják.
Képességek
A szoftverfolyamat képessége határozza meg, hogy a folyamatot
követve milyen eredmény várható. A szervezet
szoftverfolyamatának képessége arra is módot ad, hogy a
szervezet által elvégzendő következő szoftverprojekt
legvalószínűbb kimenetelét megjósoljuk.
Kulcsterületek
Mindegyik érettségi szint kulcsterületekből áll. Minden
kulcsterület egymáshoz tartozó tevékenységek olyan csoportja,
amelynek együttes megvalósítása az adott érettségi szinten a
folyamat képességeinek biztosítása érdekében fontos céloknak
felel meg. A kulcsterületek mindig egyetlen érettségi szinten
helyezkednek el. Például a 2. szint egyik kulcsterülete a
szoftverprojekt tervezése.
Célok
A célok a kulcsterületek kulcstevékenységeit foglalják össze,
segítségükkel meghatározható, hogy a szervezet vagy projekt
hatékonyan valósította-e meg a kulcsterületet. A célok megadják
az egyes kulcsterületek alkalmazási korlátait és célkitűzését.
Például a szoftverprojekt tervezése kulcsterület egyik célja: A
szoftverbecslések a szoftverprojekt-tervezés és -követés
érdekében dokumentáltak.
Általános jellemzők
A kulcsterületek kulcstevékenységei az általános jellemzők
szerint szerveződnek. Az általános jellemzők azt mutatják meg,
hogy a kulcsterület megvalósítása és intézményesítése hatásos,
megismételhető és tartós-e. Az általános jellemzők a
kulcstevékenységet a felhasználást elősegítő csoportokba és
sorrendbe rendezik. Az öt általános jellemző a következő:
Elvégzés iránti elkötelezettség
Az elvégzés iránti elkötelezettség azon tevékenységeket írja le,
amelyeket a szervezet annak érdekében végez, hogy a folyamat
létrejöjjön és tartós legyen. Az elvégzés iránti
elkötelezettség általában a szervezeti irányelveket és a felső
vezetés támogatását jelenti.
Elvégzés képessége
Az elvégzés képessége a szoftverfolyamat megfelelő
megvalósításához szükséges projekt vagy szervezeti
előfeltételeket írja le. Az elvégzés képességéhez tartoznak az
erőforrások, szervezett struktúrák és a képzés.
Elvégzett tevékenységek
Az elvégzett tevékenységek a kulcsterület megvalósításához
szükséges szerepköröket és eljárásokat írják le. Az elvégzett
tevékenységek közé általában a tervek és eljárások elkészítése,
a munka végrehajtása, követése és a szükséges helyesbítő
tevékenységek elvégzése tartozik.
Mérés és vizsgálat
A mérés és vizsgálat a folyamat mérését és a mérések elemzését
írja le. A mérés és vizsgálat általában olyan mérésekre
tartalmaz mintát, amelyekkel meghatározható az elvégzett
tevékenységek állapota és hatékonysága.
A megvalósítás ellenőrzése
A megvalósítás ellenőrzése azon lépéseket írja le, amelyek
biztosítják, hogy a tevékenységek elvégzése a meghatározott
folyamat szerint történjen. Az ellenőrzés általában a vezetői
szemléket és auditokat, illetve a szoftverminőségbiztosítást
jelenti.
A kulcstevékenységek
Minden kulcsterület kulcstevékenységek által meghatározott,
amelyek elvégzése a kulcsterület céljainak elérését szolgálja. A
kulcstevékenységek a kulcsterület hatékony megvalósításához és
intézményesítéséhez szükséges legfontosabb infrastruktúrát és
tevékenységeket írják le.
Minden kulcstevékenység egyetlen mondatból áll, amelyet gyakran
egy részletesebb leírás követ, példákat és a kidolgozást is
tartalmazva. Ezek a kulcstevékenységek, más néven a felső szintű
kulcstevékenységek határozzák meg a kulcsterület alapvető
irányelveit, eljárásait és tevékenységeit. A részletes leírás
egyes elemeit gyakran résztevékenységeknek hívják. A
kulcstevékenységek azt mondják meg, hogy mit kell elvégezni, de
nem írják elő kötelezően, hogy ezeket a célokat hogyan kell
elérni.
Üzleti motivációk
E szakasz célja kettős. Egyrészt a szoftverfejlesztők részére
képet ad az üzleti menedzserek szoftverfolyamat-fejlesztéssel
kapcsolatos motivációiról, másrészt az üzleti menedzserek
részére bemutatja a szoftverfolyamat-fejlesztés előnyeit és
hátrányait üzleti megközelítésből.
A szoftverérettségi modellek korai időszakában nehéz volt a
szoftverfolyamat-javítás üzleti előnyeit leíró tapasztalatokat
találni. Ennek oka világos. Egy alacsony érettségi szintű cégnek
nyilvánvalóan nem érdeke, hogy ezt a tényt nyilvánosságra hozza.
A helyzet azonnal megváltozik, ha az érettségi szint
érzékelhetően javul. E tény publikálása önmagában jelentős
marketingelőnyt eredményezhet a cég számára. Nem meglepő tehát,
hogy mindmáig a főképpen az USA-ban publikált tapasztalatok
pozitívak.
Egy üzletember legfontosabb problémája az, hogy
milyen módon teheti sikeressé cégét az adott és változó
versenykörnyezetben. Pénzügyi, működtetési, termelési, marketing-
vagy emberi erőforrás orientáltságú menedzserek erre az
alapproblémára különböző megoldásokat kínálnak. Az alábbiakban a
megközelítéseket először itt közölt, eredeti
integrált keretbe ágyazva mutatjuk be.
A keret alapfogalma az előny. Előnyt jelent minden olyan eszköz,
amellyel egy cég növelni tudja erőforráselőállító képességét. A
cég erőforrásait eszközeinek növelésére, valamint az
alkalmazottak és a tulajdonosok díjazására használja.
Vizsgáljuk meg a nemzetközi tapasztalatok alapján, hogy a
szoftverfolyamat-javítás milyen pénzügyi, működtetési,
termelési, marketing- és emberi erőforrás előnyöket
eredményezhet egy cég számára.
Pénzügyi előny
Egy cég akkor rendelkezik pénzügyi előnnyel, ha a saját
pénzforrásain felül felhasználható hiteleket azok költségeinél
magasabb hozammal tudja befektetni.
Vajon juthat-e egy cég pénzügyi előnyhöz szoftverfolyamat
fejlesztése útján?
A válasz akkor igenlő, ha megvalósításához akár hitelt is
érdemes felvenni, más szóval a befektetés megtérülése (ROI =
return on investment) elég nagy.
A Carnegie Mellon Egyetem Szoftvertechnológiai Intézete (SEI,
Software Engineering Institute) közölt egy fontos, olyan
jelentést [Herbsleb et al, 1994], amely mennyiségi információkat
szolgáltat a cégek számára. Tizenhárom olyan szervezet járult
hozzá érzékeny és bizalmas adatainak közléséhez, amelynél CMM
alapú szoftverfolyamat-fejlesztés történt. Ezek a következők:
- Bull HN,
- GTE Government Systems,
- Hewlett Packard,
- Hughes Aircraft Co.,
- Loral Federal Systems (korábban: IBM Federal Systems
Company),
- Lockheed Sanders,
- Motorola,
- Northrop,
- Schlumberger,
- Siemens Stromberg-Carlson,
- Texas Instruments,
- United States Air Force Oklahoma City Air Logistics Center,
- United States Navy Fleet Combat Direction Systems Support
Activity.
A jelentés hangsúlyozza, hogy a közölt eredmények nem
feltétlenül tipikusak,
csupán azt mutatják hogy kedvező környezetben milyen előnyökre
lehet szert tenni.
A 3,5-től 6 évig terjedő szoftverfolyamat-fejlesztési időszakok
alatt a mért haszon és a mért költségek aránya 4x és 8,8x között
volt. A haszon tartalmazza a termelékenységjavulásból és a hibák
csökkenéséből származó megtakarítást, nem tartalmazza azonban az
elért piaci előny értékét, amelyről a későbbiekben lesz szó.
A költségek magukban foglalják a szoftverfolyamat-csoport, a
felmérések és a képzés költségeit, nem tartalmazzák azonban az
új eljárások bevezetésével esetlegesen eltöltött idő közvetlen
költségét.
A számok biztatók, vannak azonban olyan tapasztalatok is,
amelyek szerint ellenkező eredmény is elérhető, ha nem
figyelünk kellőképpen a befektetés azonnali kihasználására. Egy
erre vonatkozó kivételes számot [Capers Jones, 1996] közöl:
„Több cégnél és állami szervnél sikerült személyenként 10 000
USD-t meghaladó összeget elkölteni bármilyen érzékelhető haszon
nélkül."
Működtetési előny
Egy cég nyereségességét nagymértékben befolyásolja a költségek
struktúrája, azaz a fix és a változó költségek megoszlása. A
működtetési előny egy relatív termelési mennyiségváltozás által
eredményezett relatív nyereségváltozás. Ez nyilván annál
nagyobb, minél alacsonyabbak a változó költségek. Alacsony
változó költségeket azonban leginkább magas fix költségek, azaz
tőkeigényes eljárás esetén lehet elérni.

Cég magas fix költségekkel (FK) és alacsony változó költségekkel
(VK)
A teljes költség TK=FK+VK
A szoftverfolyamat-javítás a fix költségeket növeli, amelybe
beleértendő a képzés, a tanácsadási díjak, a szoftverlicenszek
és az irodai környezet javítása. A kérdés csupán az, hogy a cég
mindezzel képes-e kellő változóköltség-csökkentést elérni.
A szoftverfejlesztés változó költségeinek mérése nem egyszerű
feladat. Többek között erre szolgál a funkciópontszám (function
point) fogalma.
A funkciópontszám a szoftvertermék néhány, felhasználói
szempontból érdekes jellemzőjén alapuló számítás eredménye.
Ilyen jellemzők: a bemenetek. Kimenetek, adatcsoportok, kérdések
és interfészek. A szoftverfejlesztés változó költségeinek
megfelelő mértéke az adott funkciópontszám megvalósításához
szükséges emberhónapok költsége (emberhónap/funkciópontszám).

Cég alacsony fix költségekkel (FK) és magas változó költségekkel
(VK)
A teljes költség TK=FK+VK
Ezzel szemben az irodalomban leginkább termelékenységjavulási
adatokat közölnek, amelyek a fenti számok reciprokai
(funkciópontszám/emberhónap), tehát növekedésük a változó
költségek csökkenését jelenti.
Ha a szoftverfolyamat-fejlesztés eredményeképpen egy cég
ugyanannyi funkciópontszámot kevesebb emberhónap
felhasználásával tud megvalósítani, akkor működési előnyre
tehet szert. Mindezzel együtt valódi nyeresége csak akkor
képződik, ha a ténylegesen teljesített funkciópontszámból
származó bevétel meghaladja a szoftverfolyamat-fejlesztés fix
költségének és a ráfordított emberhónap változó költségének
összegét, ami a teljes költség. Ez azt jelenti, hogy nagyobb
cégek nagyobb teljesített funkciópontszámmal, nagyobb eséllyel
élvezhetik a működési előny eredményét.
A [Herbsleb et al., 1994] cikk adott idő alatt beprogramozott
sorok számában mért termelékenységjavulásról számol be. Ez a
vizsgált cégeknél 9% és 67% között volt. Egy másik közölt mérték
a korán felismert hibák számának 6-25%-os növekedése. Ez
jelentős megtakarítás, ha azt is hozzátesszük, hogy egy átadás
előtt felfedezett hiba kijavítása ma átlagosan 50 USD/sor, míg
az átadás után felfedezett hibáé 4000 USD/sor.
Termelési előny
A termelési előny azt a nyereségnövekedést jelenti, amely a
termelés hosszú távú fenntartásából eredő költségcsökkenésből
származik. Gyakorlati tény, hogy az egységnyi termelési költség
hatványfüggvény szerint csökken, ha a cég egyre több
tapasztalatra tesz szert, és ezek újrafelhasználását megfelelően
menedzseli. A következő ábrán látható tapasztalati görbe
létezése a mennyiségi megtakarításoknak, a tanulásnak, a
javulásoknak és az újrafelhasználásnak köszönhető.

Tapasztalati görbe a szokás szerint logaritmikus skálájú
koordináta-rendszerben
A tapasztalatok összegyűjtése és újrafelhasználása a
szoftverfolyamat-javítás elsődleges célja. Ezt a kérdéskört
azonban érdekes módon eddig nem vizsgálták. A [Herbsleb et al.,
1994] cikk említi, hogy a költségváltozásokat követő technikák
nem foglalkoznak a változások okaival. Az ok lehet a
folyamatjavítás, de lehet a tapasztalatok gyűjtése, új módszerek
vagy eszközök bevezetése is.
Marketingelőny
A marketingelőny a magasabban megállapítható árak és az újító
szellemű terjesztés hatása a nyereségre.
A szoftverfolyamat fejlesztése, magasabb érettségi szint, ISO
9000 vagy TICKIT tanúsítás fokozza a cég érzékelt képességét és
termékeinek érzékelt értékét. Ezáltal nő a megrendelők
elégedettsége és magasabb árak elérésének lehetősége.
A minőség és folyamatjavítás szerves része annak a
megkülönböztető stratégiának, amellyel egy vállalkozás a
versenytársainál magasabb színvonalú terméket vagy szolgáltatást
kíván nyújtani, illetve megrendelőivel ezt kívánja érzékeltetni.
Az Egyesült Államokban a 248 szolgáltató és high-tech cégre
kiterjedő felmérés szerint [Aaker, 1995] „a leggyakrabban
említett fenntartható piaci versenyelőnyt a minőség jó hírneve
jelentette".
A fenti amerikai felmérés mellett európai cégek is a
szoftverfolyamat-fejlesztés kulcsmotivációjának tartják a
szoftverkompetencia külső láthatóságának javítását. Ilyen cégek
például a Lloyds Bank Plc. [Lamer, 1996] és a Siemens [Völker,
Gonauser, 1996].
Az SEI által közölt tanulmány [Peterson, 1996]
kivételesen méréseket is közöl a szoftverfolyamat-javítás
hatásáról a marketingelőnyre. A jelentés 560 SEI felmérésre
alapul. A statisztika szerint a megrendelő megelégedettsége
kiváló vagy jó volt kezdeti szintről
történő
szoftverfolyamat-javításakor az esetek 80%-ában, ismételhető
szintről meglepően csak az esetek 70%-ában, meghatározott
szintről azonban már az esetek 100%-ában.
Emberi előny
Az emberi előny az alkalmazottak motivációjának nyereségre
gyakorolt hatását jelenti. Jól ismert tény, hogy az
alkalmazottak motivációját nagymértékben befolyásolják olyan,
nem anyagi tényezők, mint a vezetési stílus, vagy a szervezeti
struktúra. Az emberi előny kihasználása különösen fontos
szoftver folyamatok esetén, hiszen a szoftverfejlesztés
alapvetően szellemi munka. A korábban már említett [Peterson,
1996] jelentés olyan statisztikákat is közöl, amelyek szerint az
alkalmazottak hangulata kiváló vagy jó lett kezdeti szintről
történő fejlődéskor az esetek 20%-ában, ismételhető szintről az
esetek 50%-ában, meghatározott szintről az esetek 60%-ában.
Egy, az IBM Európai Központja által
kezdeményezett felmérés
szerint [Goodhew, 1996] az alkalmazottak
hangulata erős
korrelációban van az átadási is minőségi
teljesítménnyel. Ez a statisztika 15 európai ország 360 szervezetének
válaszaira épül. |