Anda di halaman 1dari 48

Bevezets

Egy j alkalmazs kifejlesztshez szksg van j programozkra. Ahhoz, hogy ebbl rtkes alkalmazs
legyen, a programozson tlmutat dologra van szksg: alkalmazsodat termkknt kell kezelned,
folyamatosan szem eltt tartva az albbiakat:
Alkalmazsod felhasznlknak kszl. Meg kell rtened ki kell tallnod k mirt s hogyan hasznljk
vagy hogyan szeretnk hasznlni alkalmazsodat.
rtket kell knlnod! Mindig valamilyen cl elrsben kell segteni mindazokat, akik az alkalmazsodat
hasznljk. Annak olyan vals problmkra kell megoldst adnia, amellyel felhasznli gyakran
szembeslnek.
Alkalmazsodnak frissnek kell maradnia! A felhasznlid s a krnyezet vltozsait folyamatosan
kvetned kell! Figyelj a visszajelzsekre, hasznld fel ezeket, hogy a jvben mg tbb rtket tudj knlni!
Minsgre kell trekedned! Ahogyan te is ltalban j kiszolglst, adott minsget vrsz el egy fodrsztl
vagy kedvenc ttermedtl, kocsmdtl ugyanezt vrjk el azok, akik az alkalmazsoddal tallkoznak.
Gyorsnak kell lenned! Felhasznlid trelmetlenek. Nem fognak heteket vagy hnapokat vrni egy
szmukra fontos termkkpessgre, egyszeren keresnek egy msik termket, ha a tied mr nem biztost
elegend rtket szmukra.
Tanulnod kell a tapasztalatokbl! Minden felhasznli visszajelzst, hibidat, sikereidet
megfigyelseidet fel kell hasznlnod, hogy azokbl tanulva javthasd, rtkesebb tedd az alkalmazst!

Furcsnak tnhet szmodra, hogy egy olyan dokumentumban szembeslsz ezekkel az lltsokkal, amelyek
a Visual Studirl szlnak. Ez nem vletlenl van gy! A Visual Studio fejlesztknek s termkcsapatoknak
kszl s folyamatosan szem eltt tartja azokat az elvrsokat, amelyeket a fentiekben az alkalmazsok
rtkei kapcsn mutattunk be.
Nagyon sok eszkzt hasznlhatsz cljaid elrsre vagyis a fenti szemlletmdot kvet alkalmazsok
ksztsre , ezek kzl egy a Visual Studio. Ebben a dokumentumban bemutatjuk, hogyan segthet tged
s csapatodat rtkes, a valdi alkalmazsok fejlesztsben, termkknt val kezelsben az agilis
szemlletmd s ehhez mivel tud hozzjrulni a Visual Studio.

Mirt beszlnk termkrl?


Ha nem egyszeri eldobhat alkalmazst ksztesz, amelyet csak egy szk csoport hasznl
meglehetsen korltos ideig, lehet, hogy azt termkknt kellene kezelned. Ha az alkalmazs clja nem
pusztn annak elksztse, hanem az, hogy valdi felhasznlk valdi problmkat oldjanak meg vele, biztos
lehetsz benne, hogy egy termkkel llsz szemben, mg akkor is, ha annak csak nagyon kevs funkcija van.

Mirt beszlnk agilitsrl?


Mint szoftverekkel dolgoz szakember, te is szrevehetted, hogy a legtbb szoftver mr gyakran hetente,
havonta knl s telept jabb mdostsokat a jobbak mindezt mr gy vgzik a httrben, hogy szre
sem veszed ket. A felgyorsul vilgban gy kell egyre gyorsabban, egyre rvidebb ciklusokban
szoftvermdostsokat kibocstanunk, hogy ekzben a minsgi elvrsok folyamatosan nnek. Ezt csak
tmeneti ideig lehet a fejleszti hatkonysg kdoli gyessg s termelkenysg irnybl gyorstani.
Az igazi lehetsget az jelenti, ha csillaghbors termkkpessgek helyett kisebb, tgondoltabb s
rtkesebb termkbvtmnyeket tudunk folyamatosan a felhasznlk kezbe adni.
Az agilis szemlletmd errl a mkdsi modellrl szl:

Bevezets
tgondolt mdon vlasztjuk ki azt a nhny termkkpessget, amelyet leszlltani terveznk a kvetkez
ciklusban.
J minsgben, ellenrizhet mdon ksztjk el s szlltjuk le ezeket a kpessgeket.
heznk a visszacsatolsra, azokat azonnal beptjk a termk kezelsbe, hogy a kvetkez ciklusban a
megfelel kpessgeket szlltsuk le.
Folyamatosan cskkentjk mszaki adssgainkat, fejlesztjk a csapatmunkt.

1. Agilis termkkezels
Nagyon sok szoftverfejlesztsi projekt fullad kudarcba, vagy legalbb is erteljesen megoszlanak a
vlemnyek abban a tekintetben, hogy azok sikeresek-e. A problmk lthat rsze a kltsgek tllpse, az
idkeretbl val kicsszs, de gyakran ms nehzsgek is trsulnak ezekhez.
Sok elemzs, tanulmny kszlt az okokrl. Ebben a dokumentumban nem szeretnnk a rszletekbe
belemenni knyvtrpolcokat lehetne megtlteni a kapcsold mvekkel. rdemes viszont megjegyezni
az albbia lltst, amelyre a legtbb tanulmny rmutat:
Egy szoftver fejlesztse sokkal knnyebben s gyakrabban bukik el a termk s a megvalstshoz szksges
feladatok kezelse sorn, mint a technolgin s annak kockzatain. Gyakran rossz termkkpessgek vagy
rossz idben kszlnek el.

Termkkpessg s rtk
Nehz hossz, felsorolsszer specifikci segtsgvel termket fejleszteni. Mg ha egy-egy ilyen
specifikci prioritsokkal segti is a fontos s a kevsb fontos dolgok sztvlasztst, ritkn ad tmpontokat
a fejlesztknek abban a tekintetben, hogy melyik kpessgek fejlesztsvel rdemes a termkfejlesztsi
projekt egy adott pontjn foglalkozni.
Az agilis szemllet lnyege, hogy rvid id alatt, viszonylag kismret termkkpessgeket igyeksznk
leszlltani. Ezzel az a clunk, hogy gyorsan visszacsatolst kapjunk, s szksg esetn mdosthassuk az
adott termkkpessget vagyis mr a fejleszts kzben is tanuljunk.
Ahhoz, hogy ezt megtehessk, a termk egszt amely nmagban valsznleg kezelhetetlenl nagy
sokkal kisebb kpessgekre bontjuk, egszen addig, amg azok mr nmagukban kezelhetv vlnak. Az gy
lebontott termkkpessgekhez rtkt rendelnk ez segt abban, hogy alapveten az rtkes dolgokra
fkuszlhassunk, az rtktelen termkkpessgek ne zavarjk meg gondolkodsunkat.

Termkgazda
A termkek kpessgeinek kezelshez kapcsold szerepkrt az agilis mdszerek s keretrendszerek
ltalban termkgazdnak angolul product ownerneknevezik. Az ebben a szerepkrben lv
csapattagnak olyan ismeretekre van szksge, amelyekkel leginkbb zleti elemzk, termkmenedzserek,
illetve gyakran projektmenedzserek rendelkeznek. az, aki a csapat segtsgvel kialaktja a termkkpessg
jellemzit, meghatrozza azok rtkt, vlaszokat ad a felmerl krdsekre, segti a csapatot az adott
kpessg megrtsben, kialaktsban.

Product Backlog
A termkekhez kapcsold feladatok az n. product backlogba kerlnek. A termkgazda rendszerezi az itt
tallhat feladatokat: azok tartalmt finomtja, sorrendjt vltoztatja, a nyitott krdsekre megkeresi a
vlaszokat.

Megvalstsi sorrend
A termk kpessgeinek sszegyjtse utn elbb-utbb azokat meg is kell valstania a csapatnak. Az agilis
termkkezels a megvalsts sorrendjnek kialaktsa sorn az 1-1 brn lthat mtrixot hasznlja. Ebben
az sszegyjttt kpessgeket ngy rszre bontjuk, azok rtke (alacsony, magas) s kockzata (alacsony,

1. Agilis termkkezels
magas) szerint. Az agilits az rtket fontosnak tartja, ezrt a magas rtk kpessgek kialaktsval
kezdnk. Azok kzl is a magas kockzatakat vesszk elre, hogy minl tbb id maradjon mg a tervezett
projekt vgit a kockzatok kezelsre vagy akr arra, hogy a tl nagy kockzati szint miatt a projektet
lellthassuk, mieltt mg jelentsebb erforrsokat getnnk el.
Ezt kveti a magas rtk s alacsony kockzat, majd az alacsony rtk s alacsony kockzat kpessgek
megvalstsa.
Az agilis projektek a magas kockzat, m alacsony rtk termkkpessgeket ltalban nem valstjk
meg. Mirt is akarnnk olyan funkcit kifejleszteni, amely sok kockzattal jr, de ha elkszl, akkor is csak kis
rtkkel jrul hozz a termkhez? Taln valami hasznosabb kpessgre is fordthatnnk az gy eltlttt idt!

1-1 bra: A termkkpessgek megvalstsi sorrendje

Mintaplda
Tegyk fel, hogy egy kis csapat olyan alkalmazst szeretne elkszteni, amely segtsgvel annak felhasznli
ellenrz listkat kereshetnek pldul utazsok szervezshez (milyen teendim vannak?),
gyermekvrsra felkszlve (hogyan is kell berendezni egy gyerekszobt?), vagy ppen egy bvrtrra
induls eltt (milyen felszerelst s eszkzket kell magammal vinnem?) , s azokat fel is hasznlhatjk.
A csapat lehetsgei nagyjbl hrom hnap idtartamra fedezik a fejleszts kltsgeit, a potencilis
szponzor egy hnap mlva szeretne egy demt ltni. A szponzor akkor biztost tovbbi tmogatst, ha az
alkalmazsban mr a dem utn ltja azt a lehetsget, hogy nagy felhasznli bzist tud majd a segtsgvel
kipteni.

Javasolt termkkpessgek
A csapat termkgazdja Tibor, aki a szponzorral s a csapattal beszlgetve kialaktotta az alkalmazs
legfontosabb termkkpessgeit. A fejlesztcsapat hromfs (Anita, Jzsef s Lszl), mindegyikk nhny
v tapasztalattal, klnbz technolgiai httrrel rendelkezik. Kzsen gy dntenek, hogy a dem
kifejlesztst a Visual Studio Team Services1 (tovbbiakban: VSTS) eszkzeivel, s a letlttt Visual Studio
Professional 2015-tel kezdik majd el.

Korbbi nevn: Visual Studio Online

Tibor mr ltrehozta a VSTS projektet, s az egyeztetsek alapjn sszegyjttte az ltala legfontosabbnak


tartott termkkpessgeket (1-2 bra).

1-2 bra: A tervezett termkkpessgek

rtkek s kockzatok
Tibornak van egy elkpzelse arrl, hogy mely kpessgek milyen rtkkel brnak, illetve milyen kockzattal
jrnak, ezt vgig beszlte a csapattal, s kzsen mdostottk a fenti listt (1-3 bra).

1-3 bra: Kockzatok s rtkek

A csapat gy dnttt, hogy 1-100 skln adja meg egy-egy termkkpessg rtkt, a 60 s annl nagyobb
rtkeket tekintik magasnak. A kockzat rtkt hrom szinten definiltk (High, Medium, Low ahogyan
azt a VSTS knlja fel), az els kt kategrit tekintik magasnak (az 1-1 brn lv mtrixba sorolsnl).

1. Agilis termkkezels
A csapat felismerte, hogy tbb termkkpessg prioritsa s rtke is tl nagy, ezrt sorba rendeztk s
talaktottk a listt, hogy egy j s rtkes dem vltozatot tudjanak az els hnap vgre kialaktani.
Elre vettk a dem szempontjbl legfontosabb kpessget, a keresst. gy dntttek a felhasznli
bzis nvelse cljbl , hogy egyelre minden felhasznl ltrehozott ellenrz listja publikus lesz, s
majd a ksbbiekben teszik azt zrhatv, megoszthatv. A demhoz nincs szksgk arra, hogy a
legfontosabb mobil platformokat tmogassk, ezrt egyelre csak egy webes alkalmazst ksztenek, amely
adaptv felhasznli fellettel fog mkdni, gy knnyen demonstrlhat annak mobil nzete (1-4 bra).

1-4 bra: A termkkpessgek priorizlva

A csapat mr ltja a legfontosabb eltte ll termkkpessgeket, de mg kzelebb kell kerlnie ahhoz, hogy
a megvalstshoz hozzkezdhessen.

2. Backlog kezels
A csapat szmra mr vilgos az, hogy a dem megvalstst az ellenrz listkban val keresssel kell
kezdenie, majd utna az j ellenrz listk ltrehozsa fel kell haladnia. Ez azrt is fontos, mert a szponzor
valsznleg olyan demt szeretne ltni, amely meggyzi t az alkalmazs rtkrl. Mrpedig egy ilyen
alkalmazst a felhasznlk jelents rsze arra fog hasznlni, hogy a sajt teendi kapcsn keressen a mr
meglv ellenrz listk kztt.
A csapat szmra ezen a ponton az jelenti a legnagyobb kihvst, hogy mg nem tudjk, pontosan mit is kell
rteni a Keress az ellenrz listkban termkkpessg kapcsn, gy nehezen tudjk megmondani, hogy ez
egszben belefr-e abba az idbe, amely a demig rendelkezskre ll.

Sztori ltrehozsa
Azrt, hogy a termkkpessget a csappattal alaposan t lehessen beszlni, Tibor a termk gazdja egy
n. user storyt (a ksbbiekben ezt csak sztorinak nevezzk) kszt:
Ltogatknt keresni szeretnk a rendszerben lv ellenrz listk kztt azrt, hogy megtalljam
s megtekinthessem azokat, amelyek a tevkenysgeimben segtenek.
Lers:
A keresshez egyetlen szvegmezbe bert kulcsszt (akr tbb rszbl is llhat) hasznlunk, a webes
kereskhz hasonlan.
Elfogadsi kritriumok:
A keress az ellenrz lista cmben s tteleiben is megtallja a kulcsszt.
A keress nem rzkeny a kis- s nagybetkre.
A keress nem rzkeny az kezetekre.
A keress sztredkekre is mkdik, kezelni tudja a kpzett szavakat (jelzk, ragok stb.).
A keress angol s magyar nyelven is mkdik.
A tallati listban elbb jelennek meg azok a tallatok, ahol az ellenrz lista cmben van a keresett
kulcssz.
A tallati listban elbb jelennek meg azok az ellenrz listk, amelyeket tbb felhasznl tekintett meg.
A tallati listban lthat az ellenrz lista cme, illetve azoknak a tteleknek a rvid kivonata, amelyekben
a kulcssz megtallhat. A kulcssz elfordulsai vizulisan ki vannak emelve.
A tallati lista egy elemre kattintva az adott ellenrz lista rszleteinek megtekintsre jut a felhasznl.
Dem forgatknyv:
#TBE
Ebben a sztoriban Tibor olyan cmet hasznl, amely elmondja, hogy ki (ltogat), mit (keress) s milyen
clbl (rtkes ellenrz lista megtallsa) vr el az alkalmazs adott kpessgtl. Tibor tudja, hogy ezek a
jellemzk fontosak ahhoz, hogy a csapat meg tudja rteni a sztorit, klnsen a felhasznlsi clra igyekszik
pontos megfogalmazst adni. Ha nem gy tenne, gyengten a csapatot, megfosztan ket a kreativitsuktl:
a cm milyen clbl rsze segti a csapatot abban, hogy a termkkpessg rtkre fkuszlhasson.
A sztorihoz Tibor rvid lerst is ad, amelyben tisztzza, hogy egyszer kulcsszavas keressrl van sz.

2. Backlog kezels
Ahhoz, hogy a csapat pontosan tudja, milyen elvrsoknak kell megfelelnie, Tibor ttelesen sszegyjttte
az elfogadsi kritriumokat. Azt, hogy a csapat megfelelen valstotja-e meg a feladatot, az elfogadsi
kritriumok ellenrzsvel azok tnyleg teljeslnek? lehet majd leellenrizni.
Az ellenrzst a csapat azzal segt egyszerbb s tlthatbb tenni, hogy dem forgatknyvet definil,
amely segt annak tisztzsban, milyen demonstrcival igazoljk azt, hogy a termkkpessg az elvrt
mdon kszlt el. Tibor egyelre mg nem ksztett ilyen forgatknyvet ezrt hasznlta a #TBE jellst,
amelyet a csapat minden tagja rt , ehhez a tbbiek segtsgre lesz majd szksge.
Amint azt a 2-1 bra is mutatja, ezt a sztorit Tibor a Checklist projekt product backlogjban rgztette.

2-1 bra: A sztori krtyja

A sztori elemzse
Tibor bemutatja a csapatnak a sztorit, azt kzsen megvitatjk. A csapat szrevteleit rvezetik a sztori
krtyjra:

Ltogatknt keresni szeretnk a rendszerben lv ellenrz listk kztt azrt, hogy megtalljam
s megtekinthessem azokat, amelyek a tevkenysgeimben segtenek.
Lers:
A keresshez egyetlen szvegmezbe bert kulcsszt (akr tbb rszbl is llhat) hasznlunk, a webes
kereskhz hasonlan.
Elfogadsi kritriumok:
A keress az ellenrz lista cmben s tteleiben is megtallja a kulcsszt.
A keress nem rzkeny a kis- s nagybetkre.
A keress nem rzkeny az kezetekre.
#HARD A keress sztredkekre is mkdik, kezelni tudja a kpzett szavakat (jelzk, ragok stb.).
#RISKY A keress angol s magyar nyelven is mkdik.
A tallati listban elbb jelennek meg azok a tallatok, ahol az ellenrz lista cmben van a keresett
kulcssz.
#??? A tallati listban elbb jelennek meg azok az ellenrz listk, amelyeket tbb felhasznl tekintett
meg.
A tallati listban lthat az ellenrz lista cme, illetve azoknak a tteleknek a rvid kivonata, amelyekben
a kulcssz megtallhat. A kulcssz elfordulsai vizulisan ki vannak emelve.
A tallati lista egy elemre kattintva az adott ellenrz lista rszleteinek megtekintsre jut a felhasznl.
Dem forgatknyv:
#TBE
A csapat a sajt megegyezskn alapul jellseket #HARD, #RISKY, #??? hasznl a nehezen
megvalsthat, kockzatos, illetve tovbbi krdseket felvet kritriumok megjellsre. Amg ezekkel nem
kezdenek valamit, nem ismerik elg pontosan a sztorit, gy nem tudnak j becslst adni arra, hogy annak
megvalstsa milyen feladatokbl fog llni, s vrhatan mennyi rfordtst ignyel.

A sztori felbontsa
Az egyeztetsek sorn a csapat megllaptja, hogy ebben a formban a feladat tl nagy s kockzatos ahhoz,
hogy a demig elkszljn, ezrt ezt a nagy sztorit az elfogadsi kritriumok s a kockzatok mentn tbb
kisebb sztorira bontjk szt. Az albbi sztorikat hozzk ltre (itt most csak azok cmeit olvashatod):
Ltogatknt keresni szeretnk a rendszerben lv ellenrz listk kztt azrt, hogy megtalljam s
megtekinthessem azokat, amelyek a tevkenysgeimben segtenek.
Ltogatknt a rendszerben lv ellenrz listk kztt sztredkekre is szeretnk keresni azrt, hogy
olyan ellenrz listkat is megtalljak, amelyek az eddigi keressek sorn nem szerepeltek a tallati
listban.
Magyar nyelv ltogatknt szeretnm, ha a keress a magyar nyelvi sajtossgokat is figyelembe
venn az ellenrz listk keressnl, hogy jobb tallati listt kaphassak.
Angol nyelv ltogatknt szeretnm, ha a keress az angol nyelvi sajtossgokat is figyelembe venn
az ellenrz listk keressnl, hogy jobb tallati listt kaphassak.
Ltogatknt szeretnm, ha az ellenrz listk keresse sorn a tallatok rangsorolva lennnek, hogy
a szmomra fontosabbakat hamarabb talljam meg a tallati listban.

2. Backlog kezels
Ltogatknt olyan tallati listt szeretnk kapni, amely vizulisan kiemeli a kulcsszavak elfordulsait,
hogy a hosszabb listkat gyorsabban tudjam ttekinteni.
Tibor gyel arra, hogy a Checklist projekt kezelsnl az j sztorikat is a Keress ellenrz listkban
termkkpessg al sorolja be (2-2 bra).

2-2 bra: A termkkessg s a hozztartoz sztorik

Dem forgatknyv ksztse


Az eredeti sztori gy mr rvidebb lett, a csapat azt nmagban megvalsthatnak tartja. Azrt, hogy a
fejlesztsi s tesztelsi folyamatot segtsg az elvrsokra fkuszlni, illetve hatkonyan kszlhessenek fel a
demra, a sztorikhoz dem forgatknyveket rendelnek. Az els (s azta mr kisebb rszekre darabolt)
sztori vgleges formja gy nz ki:

Ltogatknt keresni szeretnk a rendszerben lv ellenrz listk kztt azrt, hogy megtalljam
s megtekinthessem azokat, amelyek a tevkenysgeimben segtenek.
Lers:
A keresshez egyetlen szvegmezbe bert kulcsszt (akr tbb rszbl is llhat) hasznlunk, a webes
kereskhz hasonlan.
Elfogadsi kritriumok:
A keress az ellenrz lista cmben s tteleiben is megtallja a kulcsszt.
A keress nem rzkeny a kis- s nagybetkre.
A keress nem rzkeny az kezetekre.
A tallati lista egy elemre kattintva az adott ellenrz lista rszleteinek megtekintsre jut a felhasznl.
Dem forgatknyv:
A sztori demjhoz egy dem/teszt adatbzist hozunk ltre, azt elre feltltjk egy szveges teszt
llomnybl. Az ellenrz lista rszletes nzete egyelre csak egyszeren megjelenti a lista cmt s
elemeit.
1.

Rkeresek a hasra ess kulcsszra: res tallati listt kapok.

2.

Rkeresek az rvztr tkrfrgp kifejezsre: 2 tallatot kapok, egyet a cmben, egyet egy
ellenrz lista ttelben.

3.

Rkeresek az arvizturo tukorfurogep kifejezsre: 2 tallatot kapok, egyet a cmben, egyet egy
ellenrz lista ttelben, pontosan gy, mint az elz keressi lpsben.

4.

Rkeresek a ScRUm kifejezsre: 4 tallatot kapok, ezekben szerepelnek a scrum, Scrum s


SCRUM szavak egyarnt. Megmutatom, hogy egy tallatra kattintva az adott ellenrz lista
rszletes nzetbe jutok.

Lthat, hogy a dem forgatknyv kialaktsnl arra trekedett a csapat, hogy ezt a sztorit minden ms
egyb sztoritl fggetlenl meg tudja valstani s termszetesen annak mkdst le is tudja ellenrizni.
Br sok csapat esetleg elszr egy olyan sztorit valstana meg, amellyel ellenrz listkat lehetne ltrehozni
azt gondolva, hogy ez elfelttele a keressnek , erre nincs szksg: a csapat egy elre elksztett teszt
adatbzist fog hasznlni.
Hasonl mdon, a sztori mkdsnek igazolshoz egyelre egyszer fellet is elegend az ellenrz lista
rszleteinek megtekintshez a csapat egy msik sztoriban definilja majd azt, hogyan is kell majd ennek
a kpernynek kinznie, mkdnie.

A backlog elemeinek priorizlsa


Tibor tovbbi sztorikat egyeztet a csapattal, s az albbiakat veszi mg fel a backlogba:
Listakezelknt szeretnk j ellenrz listt felvenni a rendszerbe azrt, hogy azt minden ltogat
hasznlhassa.
Listakezelknt szeretnm, hogy az ellenrz listk tteleinek sorrendjt megvltoztathassam, s gy
pontosabb listkat kszthessek.
Listakezelknt szeretnk a listk ltrehozsnl egyszer formzsi elemeket (pl. flkvr s dlt bet)
hasznlni, hogy jobban ttekinthet s hasznlhat listkat tudjak ltrehozni.
rtelemszeren ezeket a sztorikat Tibor az j ellenrz listk ltrehozsa termkkpessghez rendeli (2-3
bra).

2. Backlog kezels

2-3 bra: j sztorik

Tibor a projekt portljn sorrendezi egyszeren azok tmozgatsval az eddig elkszlt sztorikat, amint
az a 2-4 bra mutatja. A lista elejn a magas rtk s kockzat sztorik tallhatk. A csapat szmra ez a
sorrend fontos jelzs: segti ket abban, hogy az adott sorrendhez illeszked megvalstsi lehetsgekben
gondolkodjanak.

2-4 bra: A sztorik sorrendezs utn

A csapat mr kzel jr ahhoz, hogy a megvalstshoz hozzkezdhessen, de elbb mg meg kell becslnie a
sztorik mrett.

3. Agilis fejlesztkrnyezet kialaktsa


s deszkamodellek ksztse
A csapatnak mg hrom napja van arra, hogy megbecslje az els nhny sztori mrett, majd hozzkezdjen
annak megvalstshoz. A csapat tbb webes technolgit is ismer s hasznl. Mivel nagy gyakorlatuk van
az ASP.NET MVC hasznlatban, valamint sok JavaScript alap knyvtrat is rendszeresen hasznlnak, gy
dntenek, hogy ASP.NET MVC 5-tel s Angular frameworkkel dolgoznak.
Mr korbban is hallottak a TypeScript programozsi nyelvrl, s egy-kt kpessgt ki is prbltk. gy
dntenek, hogy az ellenrz lista termk elksztsnl ezt a programozsi nyelvet is felveszik eszkztrukba.

Mirt van szksg deszkamodellekre?


A rendelkezsre ll hrom napot arra szeretnk felhasznlni, hogy nhny deszkamodell (proof-ofconcept) segtsgvel jobban megismerjk az eszkzket, ttekinthessk azok elnyeit s kockzatait,
pontosabb kpet kapjanak a sztorik megvalstshoz szksges erforrsok becslshez.
A csapat gy dnt, hogy az albbi feladatokra kszt deszkamodelleket, hogy azokat kzsen elemezve
technolgiai dntseket hozhassanak, illetve informcit nyerjenek a becslsekhez:
Egyszer ellenrzlista megjelentse ASP.NET 5 WebApi httrszolgltatssal s Angular frontenddel
TypeScript hasznlatval (Jzsef)
Egyszer keress 100 000 generlt ellenrz listban MongoDb adatkezelssel (Anita)
Egyszer keress 100 000 generlt ellenrz listban SQL Server adatkezelssel (Lszl)

A verzitr kialaktsa
A projekt ltrehozsakor nemcsak a product backlogot, de a verzitrat is ltrehoztk (3-1 bra), Git
verzikezelst hasznlva.

3. Agilis fejlesztkrnyezet kialaktsa s deszkamodellek ksztse

3-1 bra: Git verzitr ltrehozsa a projekt kialaktsakor

A fejlesztk a Visual Studio 2015 elindtsa utn egyszeren hozz tudtak kapcsoldni a verzitrhoz a Team
Explorer segtsgvel, a git clone parancsnak megfelel funkci hasznlatval (3-2 bra).

3-2 bra: A Git tr loklis msolata (git clone)

A csapat szmra fontos, hogy a fejleszts sorn elksztett deszkamodellek is a forrskd rszt jelentsk,
ezrt olyan mappaszerkezetet hoznak ltre, ahol a fent emltett deszkamodell projektek is helyet kapnak (33- bra).

3-3 bra: A deszkamodellek helye a forrsfban

A deszkamodellek elksztse
Jzsef, Anita s Lszl ugyan nllan ksztik el a deszkamodelleket, de ezek ltrehozsa kzben
folyamatosan megbeszlik a tapasztalatokat, segtik egyms munkjt. Jzsef az, amelyikk legtbbet
foglalkozott korbban az j ASP.NET-tel, ezrt mutatja meg a projekt ltrehozsnak els lpseit. Anita
jl ismeri a MongoDb-t, Lszl az SQL Servert, gy nem vletlen, hogy ennek megfelelen osztottk szt a
feladatokat.
Anitnak s Lszlnak egyarnt szksge van egy olyan megoldsra, amely elllt 100 000 generlt ellenrz
listt, kettejk egyeztetse alapjn ezt Lszl kszti el. Ezalatt Anita a keresshez szksges alkalmazsok
vzt kszti el, amelybe a ksbbiek sorn mr csak az adatbzis-specifikus programrszeket kell beilleszteni.

A deszkamodellek elemzse, kirtkelse


Mindhrom fejleszt szeretn a rendelkezsre ll hrom napot a leghatkonyabban felhasznlni. Egyms
kztt gy egyeztek meg, hogy az els napot a deszkamodell kialaktsval tltik, a msodikat pedig azok
kirtkelsvel, elemzsvel, hogy a harmadik napot mr a fejlesztkrnyezet finomtsra s a sztorik
becslsre fordthassk.
A msodik napra elkszlnek a deszkamodellek, a csapat egyenknt megtekinti azokat. Jzsef
archtektrajavaslatt elfogadjk, nhny komponens nevnek megvltoztatst javasoljk, hogy a nevek
beszdesebbek legyenek. Anita s Lszl eredmnyeit sszehasonltva azt tapasztaljk, hogy a MongoDB
vltozat esetn kb. 22%-kal gyorsabb a keress, az SQL Server vltozat hasznlata sorn rvidebb a kd egy
a csapat ltal mr korbban is hasznlt kdknyvtrnak ksznheten. Mivel a csapat sszessgben jobban
ismeri az SQL Servert, emellett a vltozat mellett dntenek, de kzsen egy apr mdostst vgrehajtank az
architektrn, amely knnyebb teszi azt, hogy szksg esetn akr MongoDB-t is hasznlhassanak a
jvben. Lszl s Jzsef felvllalja, hogy igyekszik jobban megismerni a MongoDb-t, ehhez Anita jl
hasznlhat knyvet is javasol.

A fejlesztkrnyezet kialaktsa
A tapasztalatok alapjn sszelltjk az ellenrz lista alkalmazshoz tartoz kdvzat, s ezt kiegsztik
azokkal az elemekkel, amelyeket a csapat folyamatosan hasznl a minsgbiztostshoz (3-4) bra.

3. Agilis fejlesztkrnyezet kialaktsa s deszkamodellek ksztse

3-4 bra: A megolds kezdeti szerkezete

A csapat kln szerelvnybe teszi az adatbzis kezelst, az zleti logikt tartalmaz elemeket s a webes
elemeket (a frontendet s a webszolgltatsok homlokzatt egyarnt biztost komponenst). Sejtik, hogy
ennl kifinomultabb architektrra lehet majd szksgk a fejleszts elrehaladtval a jelenlegi
komponensek tovbbi szerelvnyekre val darabolsval , de egyelre nem szeretnk jobban elbonyoltani
az architektrt a szksgesnl. tgondolt nvtrhasznlattal lehetv teszik azt, hogy ha erre a
ksbbiekben szksgk lesz, azt majd egyszeren megtehessk.
A csapat fontosnak tartja a rendszer tesztelst, ezrt az zleti logika elemeinek ellenrzshez mr a
fejleszts kezdetn ltrehozzk a tesztelst vgz szerelvnyt.
A folyamatos termkleszllts szemlletnek kvetshez a csapat sajt eszkzket (elssorban
parancssoros segdprogramokat) fog ltrehozni, ezeket az ellenrz lista alkalmazs forrstl elklntve a
Tools mappban fogjk elhelyezni.
A kialaktott indulkszletet a Git verzitrba helyezik.

4. Termkkibocstsok tervezse
A csapat az eddig sszegyjttt ismeretei segtsgvel belertve a Tiborral egyeztetett sztorikat s a
deszkamodellek megalkotsnak eredmnyeit, hozzlt az eddig sszegyjttt sztorik becslshez azrt,
hogy azok segtsgvel kialakthassk a kvetkez nhny fejlesztsi szakasz tartalmt.

Becslsek sztoripontokkal
A legtbb fejleszt tudja, hogy az egyik legnehezebb dolog a becsls, vagyis megmondani, hogy egy adott
feladat vgrehajtsa mennyi idt fog ignybe venni.
Mg ha pontosan ismerjk is a megvalstand feladatot, annak megvalstsi ideje akkor is sok dologtl
fgghet. Milyen technolgit vagy eszkzt hasznlunk hozz? Ki lesz az a fejleszt, aki megvalstja? Ha
olyan, aki tapasztalt az adott tmakrben, nyilvn sokkal gyorsabban kszl el, mintha egy kezd fejleszt
lt hozz.
A szoftver technolgival foglalkoz kutatsok kimutattk, hogy a fejlesztk a kismret, jl megfoghat
feladatokat viszonylag pontosan, kb. 20%-os hibahatron bell meg tudjk becslni. Ahogyan azonban a
feladatok mrete n, a fejlesztk egyre nagyobbat tvednek a becslsek sorn ltalban albecslik a
rfordtsokat , akr tzszeresen is.
A csapat ezt a problmt gy kerli el, hogy egyes feladatok megvalstst nem idben mri, hanem
sztoripontokban: pldul azt mondja, hogy az egyik feladat megvalstst 5 pontra, egy msikt 13 pontra
becsli. Ez els hallsra nagyon furcsnak tnik, de ha megrtjk a mgtte lv igencsak gyakorlatias
megkzeltsmdot, akkor mindez rthetv vlik.
A sztoripontos becslsek sorn a pontszmok segtsgvel egymshoz viszonythatk a feladatok. Egy 20
pontos feladat azt jelenti, hogy a csapat azt gondolja rla, az krlbell ngyszer annyi rfordtst ignyel,
mint egy 5 pontos feladat, s nagyjbl msflszer annyit, mint egy 13 pontos. Ez a viszonytson alapul
becsls sokat segthet, mert ltalban knnyebben s pontosabban tudjuk kt feladat egymshoz
viszonytott mrett megbecslni, mint abszolt mretket.

Az ellenrz lista sztorijainak becslse


Az ellenrz lista alkalmazson dolgoz kis csapat mr elegend informcival rendelkezik ahhoz, hogy a
product backlogban lv sztorik mrett sztoripontokban megbecsljk.
Az ellenrz lista projekt ltrehozsakor a csapat a Scrum sablont vlasztotta ki, gy a product backlogban
lv bejegyzsekhez sztoripontokat rgzthet, amint azt a 4-1 bra mutatja.

4. Termkkibocstsok tervezse

4-1 bra: Sztoripont rgztse a product backlog elemeihez

A csapat a deszkamodelleknek megfelelen kzsen korbbi feladataikhoz viszonytva a keresshez


tartoz sztori mrett 5 pontra becslte. Az sszes sztori vgig nzse utn a 4-2 brn lthat pontokat
rendeltk azokhoz.

4-2 bra: Az ellenrz lista sztorijaihoz tartoz pontszmok

Ebbl a listbl ltszik, hogy a 3. sztori (j lista ltrehozsa) a 13 pontjval kzel hromszor akkora feladat,
mint az 1. sztoriban lert keress megvalstsa, amely csak 5 pont. A lista vgn szerepl sztorikat a csapat
egysgesen 100 pontosnak ltta, amely azt mutatja, hogy azok a jelenlegi formjukban igencsak nagyok
ezeket valsznleg jelentsen egyszersteni kell, vagy valamilyen mdon a bennk lv kockzatokat
cskkenteni. Az 5. s 6. sztorira a csapat nem adott becslst, mert a sztori megvlaszolatlan krdseket
tartalmazott. Ezeket kzsen megbeszltk Tiborral, aki termkgazdaknt igyekszik vlaszokat tallni azokra,
hogy a csapat egy kzsen rthet, vilgos feladattal lljon szemben.

A csapat sebessge
Egy jl sszeszokott csapat amelyik mr hosszabb ideje hasznlja a sztoripontos mrst ltalban egy
adott krnyezetben jl meghatrozott sebessggel rendelkezik. Ez azt jelenti, hogy egy fix s a csapat ltal
rendszeresen alkalmazott idkeretben hny sztoripontnak megfelel tevkenysget tud vgrehajtani.
Termszetesen ez nem az els pillanatban alakul ki.
Az ellenrz lista alkalmazson dolgoz kis csapat mr tbbszr dolgozott egytt, s ismerik sajt
sebessgket, amely 20 sztoripont egy kthetes ciklusban.

Itercik s termkkibocstsok
A csapatnak kt iterci kt egymst kvet kthetes ciklus ll rendelkezsre ahhoz, hogy a demra
felkszljn. A dem szerves rsznek tekinti a csapat, hogy az elkszlt alkalmazst a dem krnyezetbe
teleptse lehetleg automatikusan , hogy ezzel is ellenrizze a kdptsi folyamat automatizltsgt.
Kzsen lelnek, s tgondoljk, hogyan fogjk a termket kibocstani. gy dntenek, hogy a kezdeti
idszakban minden msodik ciklus vgn ki fognak bocstani egy publikus, vagyis a felhasznlk ltal les
termkknt hasznlhat vltozatot. A csapat a 4-3 brn lthat itercikat s termkkibocstsi pontokat
tervezi ezeket a projektportlon lltjk ssze.

4. Termkkibocstsok tervezse

4-3 bra: A tervezett itercik

A csapat az itercik tervezse sorn nhny fontos dologgal szembesl. A demig kt fejlesztsi ciklus
(sprint) van, a csapat sebessge 20 sztoripont, vagyis a demig 40 sztoripontnak megfelel feladatot
tudnnak elvgezni. A 4-2 bra alapjn azonban csak 21 pontnyi feladatuk van kifejtve, illetve a lista vgn
nhny tlslyos feladat szerepel. A 21 pontnyi kifejtett feladatbl 13 pont az j ellenrz listk ltrehozsra
vonatkozik, pedig a csapat s Tibor szerint is a demra sokkal fontosabb volna az, hogy a keress legyen jl
bemutathat.

Itercik tartalmnak hangolsa


A csapat lel, s talaktja a jelenlegi product backlogot, amint az a 4-4 brn lthat.

4-4 bra: Az talaktott product backlog

Az talakts lnyege, hogy a nyitott krdseket tartalmaz sztorikban lv krdseket megvlaszoljk, s


nll sztorikba emelik ki azokat a rszeket, amelyek zrt, egsz termkkpessgeket alkotnak. Hasonl
mdon, sztbontjk az ellenrz listk ltrehozshoz tartoz sztorikat is kezelhetbb mretre.
A csapat becslst is vgez, gy sztoripontok kerlnek az egyeztett sztorikhoz.

5. Fejlesztsi ciklusok s
feladatkezels
Mr elegend informci ll a csapat rendelkezsre ahhoz, hogy az els kt fejlesztsi ciklust az zleti
rtkeknek megfelelen feltltsk elksztend sztorikkal. Tiborral egytt hozzltnak ahhoz, hogy
megtervezzk az els fejlesztsi ciklust (sprintet).
A tervezsi lps sorn a sztorikat feladatokra bontjk, s ezeket a feladatokat mr munkarban becslik
meg.

Kapacitsbecsls
Mieltt a csapat a rszletes tervezsbe belekezdene, tudniuk kell, hogy mennyi emberi erforrssal
gazdlkodhatnak, vagyis azt, hogy mekkora a csapat kapacitsa. Ennek megbecslshez a projekt portlja
nyjt segtsget (5-1 bra). A kapacitsbecslshez tudni kell, hogy egy adott csapattag a munkanapjbl
mennyi idt tud a termkfejlesztsre fordtani. Mindhrom csapattag a munkaidejnek egy rszben ms
tmj megbeszlseken szokott rszt venni, illetve a munkahelyi levelezsk ellenrzsre is idt fordtanak.
Ezrt Anita s Lszl napi 6 munkart tud erre a projektre fordtani. Jzsefet alkalomszeren segtsgl
szoktk krni ms csapatok, heti 3-5 rban, ezrt az esetben napi 5 rval szmolnak.

5-1: A csapat kapacitsa

Anita a kthetes sprint alatt egy napot egy kpzsen tlt, tvol a projekttl. Ezeket az adatokat a
projektportlon megadva kiderl, hogy a csapat kapacitsa 164 munkara a sprint sorn. A tervezsnl ezt
figyelembe veszik.

A sprint backlog
A sprint tervezse sorn a fejlesztcsapat a product backlogbl a sprint backlogba helyezi t azokat a
sztorikat s egyb teendket, amelyeket az adott sprint sorn meg kvn valstani. Ezek a bejegyzsek
rtelemszeren akkor helyezhetk t, ha nem tartalmaznak olyan nyitott krdseket, kockzati elemeket,
amelyek megakadlyozzk, hogy a csapat azokat megvalsthassa. Mindennek olyan mrtkben tisztnak
kell lennie, hogy a csapat nyugodt lelkiismerettel kezdhessen hozz a tervezshez s a fejlesztshez.
Ha az adott sztori tervezse sorn mg a sprint tervezse alatt olyan problma merl fel, amely a
megvalstst megakadlyozn, akkor a csapat ezt megvitatja a termkgazdval.

Feladatok sszegyjtse
A csapat tlagos sebessge 20 sztoripont. A product backlog els t eleme sszesen 18, els hat eleme
sszesen 23 sztoripontot tesz ki, vagyis a csapat vrhatan t, illetve hat sztorit vllal majd fel a kthetes
ciklus alatt. A sztorik temelsekor feladatokat hoznak ltre, s azokhoz mr munkarkat rendelnek, amely
rtelemszeren cskkenti a maradk kapacitsukat vagyis mr nem sztoripontokat hasznlnak.
Tibor az els hat elemet a sprint backlogjhoz rendeli (5-2 bra), s tadja azokat a csapatnak azrt, hogy
megtervezzk a feladatokat.

5-2 bra: A sprint backlog a tervezs elejn

A csapat sztorinknt vgighalad a sprint backlog elemein, s azokat egyenknt feladatokra bontjk. Az 5-3
brn ltszik az, hogyan is bontotta fel a csapat a legels sztorit feladatokra. Minden feladat a New
llapotban vrakozik, egszen addig, amg azzal valamelyik csapattag tnylegesen foglalkozni nem kezd.

5. Fejlesztsi ciklusok s feladatkezels

5-3 bra: Egy sztori felosztsa feladatokra, idbecslssel

Minden feladat jobb als sarkban ott szerepel az annak megvalstshoz kapcsold becslt munkara.
Figyeld meg, a csapat nem hozott ltre olyan feladatot, amely az egyes fejlesztsi tevkenysgek
tesztelshez kell! Ennek oka nagyon egyszer: a fejlesztcsapat szmra teljesen egyrtelm, hogy egy
fejlesztsi feladat csak a hozz tartoz tesztekkel egytt van ksz.
Azt is lthatod, hogy ezzel ellentmondsnak lvnek tn mdon viszont ltrehoztak egy feladatot a
kdvizsglatra. Ennek oka az, hogy a csapat mr olyan minsgben dolgozik, hogy nem minden sztori
esetben csinlnak nll kdvizsglatot: a kzs munka sorn mr maguktl felhvjk trsaik figyelmt
azokra az aprbb kdminsgi problmkra, amit tallnak, s azokat azonnal ki is javtjk.
Ez a sztori azonban mg jszer elemeket tartalmazhat, ezrt a csapat gy dnt, hogy kzsen is tvizsgljk
a kdot ezrt ennek megfelelen felvesznek erre egy feladatot.
A csapat a dem forgatknyvnek ksznheten folyamatosan azt tartja szem eltt, hogy demznia
kell a sztorit, illetve automatizlnia kell a dem (s ksbb az egyb) krnyezetekbe val teleptst, ezrt
ltrehozzk az ennek megfelel tevkenysgeket is.
Az sszes sztori rszletes tervezse utn a csapat a 164 ra kapacitsbl 146 rt tervez felhasznlni, amint
azt az 5-4 bra mutatja.

5-4 bra: Feladatokhoz rendelt kapacitsok a sprint tervezse utn

Clok kijellse, vllals


Anita, Jzsef s Lszl meggyzdtek arrl, hogy a sprintre tervezett feladatok vgrehajthatk, s rlnek,
hogy a sprintbe 23 sztoripontnak megfelel feladatot tudtak bevenni. Tiborral egyeztetve a csapat vllalst
tesz arra, hogy a kivlasztott sztorikat sikeresen, az elvrt minsgben kszre jelentik az iterci vgn s
azt demonstrljk is els krben csak Tibornak s nhny bels rintettnek (marketing vezet, zemeltets
kpviselje). Megfogalmazzk a sprint cljt is, amelyet az egyszer, de ltvnyos keress mkdik
mondatban fogalmazzk meg.
Kzsen elindtjk a sprintet, vagyis a kvetkez htftl a csapat hozzkezd az ellenrz lista alkalmazs
megvalstshoz.

Napi egyeztets
A csapat minden nap egy kzs egyeztetst tart, amely nagyon rvid (legfeljebb 10 perc), s az albbi
krdsekre fkuszl:
Mit csinltam az elz napi megbeszls ta, ami hozzjrult ahhoz, hogy a csapat elrje a sprint cljt?
Mit fogok tenni a kvetkez napi megbeszlsig, ami tovbb viszi a csapatot a sprint cljnak elrse fel?
Ltok-e brmilyen olyan akadlyt, ami veszlyezteti vagy megakadlyozza azt, hogy a csapat elrje a sprint
cljt?
Ezeken kvl ms tmkrl a napi megbeszlsen nem esik sz. Ha a csapat gy dnt, hogy egy krdst
rszletesen meg kell vitatni, akkor azt ms keretek kztt teszik meg.
Az egyeztets sorn a csapattagok felvllaljk azokat a feladatokat, amelyekkel a kvetkez egyeztetsig
foglalkozni szeretnnek. Az 5-5 bra azt mutatja meg a portl feladatkvetst vgz felletn.

5. Fejlesztsi ciklusok s feladatkezels

5-5 bra: Feladatok aktivlsa

Csapatmunka
A hagyomnyos fejlesztsi projekteken ltalban minden fejlesztnek van egy-egye olyan szakterlete,
amelyen nagyobb tapasztalata van, mint a tbbieknek, illetve egy adott projektcsapaton bell hatkonyabb
a tbbieknl. Ez ebben a csapatban is gy van. Jzsef esetben ez az adatbzis-programozs, Lszlnl az
zleti mveletek megvalstsa, Anita pedig legjobban a felhasznli felletek ellltshoz rt.
A csapat szmra vonz megoldsnak tnik, hogy mindenki a sprint feladatai kzl maghoz ragadja azokat,
amelyek a sajt specialitsnak megfelelnek. Ebben az esetben Jzsef magra venn az sszes adatbzis
feladatot, Anita pedig a felhasznli felletek ksztst.
A csapat azonban jl tudja, hogy ez a megkzeltsmd nem igazn hatkony s eredmnyes, mert a sprint
vgre tolja a feladatok sorn keletkez munkadarabok integrlsnak problmit, kslelteti a tesztelst, s
gy veszlyes.
A hatkony egyttmkdsnek az a kulcsa, hogy a csapat, ameddig csak lehetsges, egy sztori
megvalstsra koncentrl, s mindenki azon dolgozik. Tbb sztorihoz egyidben csak akkor nylnak, ha
egy sztorihoz mr nem fr optimlisan hozz a csapat.
A napi egyeztetseken a csapat folyamatosan megbecsli, hogy a mg el nem kszlt feladatok befejezse
vrhatan mennyi idt vesz ignybe. Az 5-6 brn ezt lthatjuk.

5-6 bra: A feladatok vrhat befejezsnek kvetse

Kszre jelents
A csapat egy sztorival elvileg akkor kszl el, amikor befejezi az sszes ahhoz tartoz feladatot. Az agilis
csapatok azonban olyan elfogadsi kritriumokkal is rendelkezhetnek, amelyek egysgesen, minden sztorira
vonatkoznak, anlkl, hogy azokat explicit mdon felsoroltuk volna. Ezeket a csapat egy listn vezeti, amelyet
az agilis keretrendszerek definition of done a ksz defincija nven ismernek.
A csapat ilyen kritriumoknak tekinti azt, hogy minden sztorihoz az elfogadsi kritriumokat ellenrz
utomatikus teszteknek kell tartoznia. A csapat felveszi mg erre a listra a dizjnnal s a fellet viselkedsvel
kapcsolatos alapvet kritriumokat is.
Ha minden feladat a ksz defincija szerint is megvalsultnak tekinthet, a csapat ksznek nyilvnthatja
az adott sztorit (5-7 bra).

5-7 bra: A sztori elkszlt

A sprint terjedelme akkor van ksz, ha az sszes sztori elkszlt.


Abban az esetben, ha a csapatnak marad mg szabad kapacitsa, a termkgazdval, Tiborral egyeztetnek a
teendkrl. Elkpzelhet, hogy tallnak egy olyan sztorit, amely mg beemelhet a sprintbe, de az is lehet,
hogy a maradk idt egyszer deszkamodell megvalstsra hasznljk, amely ksbbiekben
megvalstand sztorik lehetsges kockzatt cskkentik.

6. Technolgiai soksznsg
Az ellenrz lista alkalmazs kis fejlesztcsapata Az ASP.NET MVC 5 keretrendszert s az Angular JavaScript
knyvtrat vlasztotta ki technolgiai bzisaknt. A felhasznli fellet lershoz a HTML s CSS nyelvek
adjk az alapot. A szerver oldali komponensek megvalstsra a C# programozsi nyelvet, a frontend
oldalon pedig a TypeScript nyelvet hasznljk. Mivel SQL Server adatbzist hasznlnak, ezrt rtelemszeren
a Transact-SQL nyelv segtsgvel rjk le az adatkezel mveleteket. A teleptshez tartoz
automatizmusokat PowerShell szkriptekkel, illetve a JavaScript alap gulp komponensekkel lltja el a
csapat.
A fentieken kvl mg szmos apr nyelvi s technolgiai elemet hasznl a csapat, belertve az XML s JSON
adatlersokat, illetve nhny parancssori utastst egybefog batch fjlokat. rdemes azt is megemlteni,
hogy az automatikus teleptshez hasznlt eszkzk egy rsze Node.js alap
Ugye, milyen meglep, hogy mr egy kisebb termk fejlesztshez is ennyi programozsi nyelv, knyvtr s
komponens kerl be a csapat eszkztrba? Ezeket a csapat teljes egszben a Visual Studio IDE segtsgvel
tudja hasznlni.

Programozsi nyelvek s technolgik


Az itt felsorolt programozsi nyelvek, technolgik, keretrendszerek mellett a csapat az ellenrz lista
alkalmazs tovbbfejlesztse sorn jabbakat fog bevonni eszkztrba. Amikor a webes megolds irnybl
elmozdulnak a mobil fejleszts irnyba, akkor a Xamarin keresztplatformos megoldsa vagy az Apache
Cordoba kztt is vlaszthatnak s ehhez kis sem kell lpnik a Visual Studio kereteibl.
Bar a Visual Studio .NET-es vltozatnak (Visual Studio .NET 2002) megjelensekor a C#, Visual Basic, C++
s a HTML nyelvek voltak az IDE rszei, ez a kr a jelenlegi Visual Studio 2015 vltozatig rendkvli
mrtkben kibvlt. A programozsi nyelvek listjn ott tallhatjuk az F#, Python, JavaScript, TypeScript
nyelveket azonnal a Visual Studio teleptse utn. Bvtmnyknt letlthet sok egyb programozsi nyelv
a hozzjuk tartoz eszkzkszlettel, mint pldul a PHP vagy a Node.js.
Az ellenrz lista alkalmazs pldja is mutatja, hogy ma mr egy-egy fejleszts kapcsn nem a programozsi
nyelvek, hanem az alkalmazs-fejlesztsi modell irnybl clszer elindulni. A Visual Studio minden alapvet
alkalmazsmodellt tmogat, belertve az asztali, mobil, webes, adatelemz, jtk s felhben fut
alkalmazsok fejlesztst is.

Visual Studio bvtmnyek


A Visual Studio hasznlatval a fejlesztcsapat nemcsak a termk teleptse sorn a szmtgpre helyezett
eszkzket kapja meg, hanem egyttal egy olyan koszisztma rszv is vlik, amely segtsgvel rengeteg
s jelents rszben ingyenes bvtmnyt telepthet a Visual Studio kiegsztseknt. A 6-1 brn az IDE
Extensions and Updates dialgust lthatjuk, amint ppen a Node.js-hez kapcsold bvtmnyeket listzza.

6-1 bra: Node.js-hez kapcsold Visual Studio bvtmnyek

Ha valamilyen feladathoz, technolgihoz, programozsi nyelvhez kapcsoldan eszkzkre van szksged,


azokat valsznleg megtallod a mr elksztett bvtmnyek kztt. Ha neked van egy j elkpzelsed, a
megvalstott kiegsztt megoszthatod a Visual Studio kzssggel.

Hasznos linkek
Az ellenrz lista alkalmazs csapata hasznosnak tallta az albbi linkeket. Lehet, hogy te is tallsz kzttk
olyanokat, amelyek segtenek termked fejlesztsben! 2
Programozsi nyelvek s eszkzk
PHP Tools for Visual Studio
Node.js Tools for Visual Studio
Fejlesztsi technolgik
Felh alkalmazsok fejlesztse
ltalnos alkalmazsfejleszts (Windows Universal, mobil, keresztplatformos)
Webes alkalmazsfejleszts (Node.js, ASP.NET, PHP, Java, Ruby)
Adatkezels s elemzs (SQL Server, Big Data)
Jtkfejleszts

A Hasznos Linkek szekci a hivatkozott oldalakra mutat linkek 2015.11.18-i llapott tnteti fel.

6. Technolgiai soksznsg
Fejleszti kzpontok
Windows 10
Microsoft Azure
Visual Studio
Office 365
Xbox
SharePoint
Dynamics
nll tanuls
Microsoft Virtual Academy
Channel 9
Visual Studio bvtmnyek
Visual Studio Gallery
Visual Studio SDK
Nylt forrskd technolgik
ASP.NET a GitHub-on
ASP.NET vNext
Tovbbi informci, tmogats
Microsoft API katalgus (Referencia dokumentcik)
Microsoft fejleszti csoportok blogjai
Szakrtk keresse

7. Minsgbiztosts
A csapat az ellenrz lista alkalmazs termkknt val kezelsben kulcst abban ltja, hogy folyamatosan,
j minsgben adja t az elkszlt sztorikat. Mivel viszonylag kis sztorikkal dolgoznak, ezrt arra kell
felkszlnik, hogy rendszeresen refaktorlniuk kell a kdot, vagyis annak bels struktrjt folyamatosan
tkell alaktaniuk. A csapat szmra kiemelt felelssg az alkalmazst folyamatosan olyan llapotban tartani,
hogy az knnyen mdosthat legyen s ne kelljen a fejlesztcsapat tagjainak egyms kdjtl flnik
kpesek legyenek azokat egyszeren megrteni, talaktani.
Tbb eszkzt is hasznlnak ezeknek a cloknak az elrsre.

Automatikus tesztels
A csapat alapvetnek tekinti, hogy az ellenrz lista alkalmazst folyamatosan tesztelnik kell, vagyis
ellenrizni, hogy az megfelel-e az elvrt funkcionalitsnak s a vele szemben tmasztott elfogadsi
kritriumoknak. Ezeket a teszteket kzzel hatkonyan elvgezni szinte lehetetlen mindenkppen nagyon
kltsges. A csapat a korbbi tapasztalatainak megfelelen automatizlja az ellenrzseket a fejlesztsi
folyamat sorn. Az automatizls azt jelenti, hogy a tesztek nmaguk is futtathat munkadarabok, amelyek
csak minimlis emberi beavatkozst ignyelnek (ltalban azt, hogy elindtsk ket), s lefutsuk utn
azonnal eldnthet, hogy a teljes tesztkszletbl melyek voltak a sikeresek, s melyek utalnak arra, hogy
valami mg nem felel meg az elvrsoknak.
Anita, Jzsef s Lszl minden egyes fejlesztsi munkadarabhoz automatikus teszteket kszt, amelyeket le
is futtatnak, gy ellenrzik, hogy az adott feladat megfelel-e az elfogadsi kritriumoknak. gy tekintik, hogy
egy munkadarabnak szerves rszt jelentik ezek a tesztek, gy nem is hoznak ltre nll feladatokat ezek
elksztshez.
Az egyik sztori, amit megvalstottak, gy nz ki:

7. Minsgbiztosts
Ltogatknt keresni szeretnk a rendszerben lv ellenrz listk kztt azrt, hogy megtalljam
s megtekinthessem azokat, amelyek a tevkenysgeimben segtenek.
Lers:
A keresshez egyetlen szvegmezbe bert kulcsszt (akr tbb rszbl is llhat) hasznlunk, a webes
kereskhz hasonlan.
Elfogadsi kritriumok:
A keress az ellenrz lista cmben s tteleiben is megtallja a kulcsszt.
A keress nem rzkeny a kis- s nagybetkre.
A keress nem rzkeny az kezetekre.
A tallati lista egy elemre kattintva az adott ellenrz lista rszleteinek megtekintsre jut a felhasznl.
Dem forgatknyv:
A sztori demjhoz egy dem/teszt adatbzist hozunk ltre, azt elre feltltjk egy szveges teszt
llomnybl. Az ellenrz lista rszletes nzete egyelre csak egyszeren megjelenti a lista cmt s
elemeit.
1.

Rkeresek a hasra ess kulcszra: res tallati listt kapok.

2.

Rkeresek az rvztr tkrfrgp kifejezsre: 2 tallatot kapok, egyet a cmben, egyet egy
ellenrz lista ttelben.

3.

Rkeresek az arvizturo tukorfurogep kifejezsre: 2 tallatot kapok, egyet a cmben, egyet egy
ellenrz lista ttelben, pontosan gy, mint az elz keressi lpsben.

4.

Rkeresek a ScRUm kifejezsre: 4 tallatot kapok, ezekben szerepelnek a scrum, Scrum s


SCRUM szavak egyarnt. Megmutatok, hogy egy tallatra kattintva az adott ellenrz lista
rszletes nzetbe jutok.

A csapat a tesztelst annyire fontosnak tartja, hogy kln feladatot rendelt ehhez a sztorihoz, amely csak
azzal foglalkozik, hogy a lert dem forgatknyveknek megfelel tesztadatbzist hozzon ltre. A
tesztelshez s a fejlesztsi ciklus vgn lv demhoz is ezt a tesztadatbzist hasznljk.
Br a forgatknyvben csak 4 ellenrzend helyzet szerepel, a csapat ennl jval tbb automatikus tesztet
hoz ltre, amelyeket a Visual Studio 2015 Unit Test Project sablonjnak segtsgvel (7-1 bra) valstanak
meg.

7-1 bra: Automatikus teszt ltrehozsa

A tesztesetek megvalstsa sorn a csapat olyan mintt kvet, amely a teszteset elksztst, vgrehajtst
s az elvgzend ellenrzseket ebben a sorrendben tartalmazza. Alapveten nem a felhasznli fellet
automatizlsn keresztl hajtjk vgre a teszteket, hanem mr az architektra kialaktsakor figyelnek a
tesztelhetsg megvalstsra.
A csapat 27 tesztesetet kszt a keress logikjnak ellenrzsre, amelyeknek beszdes neveket adnak:
#1 SearchIsCaseInsensitive: rtelemszeren annak ellenrzse, hogy a keress a kis s nagy betket
nem klnbzteti meg.
#2 SearchInTitlesWorksAsExpected: annak ellenrzse, hogy az ellenrz lista cmeiben a keress
helyesen mkdik
#3 SearchInDetailsWorksAsExpected: annak ellenrzse, hogy az ellenrz lista rszleteiben a keress
helyesen mkdik
#4 SearchFailsWithNullRequest: a keresst megvalst szolgltats hibnak tekinti, ha null rtket
adnak t neki a keress paramtereit ler adatknt (ez egy bels, n. white-box teszt).
...
#27 SearchIsAccentInsensitive: annak ellenrzse, hogy a keress az kezetes betket gy kezeli,
mint az kezet nlkli megfeleliket.
A csapat a felhasznl fellet logikjnak ez egy kln alkalmazsrteg! ellenrzsre is automatikus
teszteket kszt:
#1 SearchIsNotTriggeredWithEmptyKey: a keressnek csak akkor kell elindulnia, ha mr bert a
felhasznl valamit a keresfelttelek kz
#2 SearchStartsWithDelayAfterTyping: ellenrzi, hogy a keress a keresszveg gpelse kzben az
utoljra lettt billenty utn egy rvid ideig vrakozik, mieltt a keresst elindtan.
...
#14 SearchCancelsPreviouslyStartedRequests: ellenrzi, hogy a gpels sorn a korbbi
keresseket a rendszer lelltja mindig csak az utols keresst igyekszik befejezni az erforrsok
kmlse cljbl.

7. Minsgbiztosts

Amire a csapat az automatikus tesztelst hasznlja


Amellett, hogy a fejleszts kzben a kszl tesztek folyamatosan segtik a hibk megelzst, illetve a
felfedezett hibk gyors javtst, a csapat mg kt tovbbi fontos elnyhz is jut:
Az elkszlt automatikus tesztek alapvet felttelei a biztonsgos refaktorlsnak, vagyis annak, hogy a
termk (szoftver) bels szerkezt a csapat magabiztosan alakthassa t, ne kelljen flnie, hogy egy ilyen
tevkenysg sorn jabb hibkat vezet be. Ezeket a teszteket a refaktorls folyamata sorn a csapat gyakran
hasznlja, gy azonnal szreveszik, ha a vltoztatsok rontjk a termk mkdst, megbzhatsgt.
Az automatikus tesztek egyttal dokumentciknt is hasznlhatk a szoftver bels komponenseinek
mkdsnek, illetve azok homlokzatnak lershoz.

Refaktorls
A Visual Studio 2015 a leggyakrabban hasznlt refaktoring eljrsok kzl tbbet is tmogat, ahogyan azt
albbi tblzat sszefoglalja:
Funkci

Lers

Rename

Azonostk s kdszimblumok (pl. tpusok,


mveletek, tulajdonsgok, mezk, vltozk stb.)
nevt vltoztatja meg

Encapsulate Field

Tulajdonsgot pt egy meglv mez kr

Remove Parameters

Mveletek, indexerek,
paramtert tvoltja el

delegltak

valamelyik

Reorder Parameters

Mveletek,
indexerek,
paramtersorrendjt vltoztatja meg

delegltak

Extract Interface

Egy meglv osztly vagy struktra tagjait kiemeli


egy nll interfszbe

Extract Method

Egy mveletben lv
mveletbe zrva kiemel

kdtredket

nll

rtelemszeren az sszes refaktoring funkci gondoskodik arrl, hogy az egyes kdelemek vltozsait vgig
vezesse a fejlesztkrnyezetben lv kdon. Pldul, ha egy tpus adott mvelett tnevezzk, akkor a
mveletre val sszes hivatkozsban is megvltoztatja a korbbi nevet. Hasonlan, ha egy osztlybl
kiemelnk egy interfszt, az interfsz szerepelni fog az osztly megvalstott interfszeinek listjn.
Az IDE automatikusan felhvja a figyelmet azokra a lehetsgekre, amelyek refaktorlssal segthetnek a kd
szerkezett talaktani, minsgt javtani. Pldul a 7-2 bra azt mutatja be, hogy a Title s Publisher
tulajdonsgokat a C# n. automatikus tulajdonsg szintakszisval egyszerbben is lerhatjuk.

7-2 bra: Automatikus refaktorlsi javaslatok

A szveg melletti kis izzlmpa ikonra kattintva az eszkz vgre is hajtja az adott refaktorlst (7-3 bra)

7-3 bra: A refaktorls eredmnye

A Visual Studio 2015 a .NET Compiler Platform segtsgvel a C# s Visual Basic projektekhez lehetv teszi,
hogy a fejlesztk sajt analzis s refaktoring eszkzket rjanak (http://roslyn.codeplex.com/documentation).

7. Minsgbiztosts

A kd tesztfedettsge
Az alkalmazs elemeinek tesztelsre a csapat kt klnbz szemllet automatikus tesztet is hasznl. Az
n. fekete doboz tesztels (black-box testing) sorn csak a komponensek kls, kvlrl elrhet
felleteinek tesztelsre koncentrlnak. Az n. fehr dobozos tesztels (white-box testing) sorn pedig a
bels mkdst a kd felptse alapjn tesztelik.
Jzsefk tisztban vannak azzal, hogy sok esetben nincs arra lehetsgk, hogy minden lehetsges
paramterkombincira felksztsk a teszteseteket, egyszeren azok nagy szma miatt.
Hogyan tudjk mgis megmondani azt, hogy egy adott munkadarabhoz a hozz tartoz tesztesetek is
elkszltek? Ezt valjban soha nem lehet pontosan megmondani hiszen nehz definilni, mit is rtnk
egyltaln az sszes teszteseten! Ugyanakkor lteznek hasznos technikk annak meghatrozsra, hogy
vajon elegend, a legtbb fontos dologra kiterjed tesztkszletnk van-e. Ezek kzl a leggyakrabban
hasznlt s az ellenrz lista alkalmazs kis csapata is ezt hasznlja a tesztfedettsg mrse.
A tesztels sorn a tesztfedettsget (code coverage) mrszmot hasznlhatjuk annak meghatrozsra,
hogy vajon megfelel mennyisg tesztesetet hoztunk-e ltre egy adott szolgltatselem ellenrzshez. Ez
a mrszm azt mutatja meg, hogy a tesztek lefutsa sorn a szolgltatshoz tartoz kd mekkora rsze
(hny szzalka) kerlt vgrehajtsra. Ha ez az rtk 100%, az azt jelenti, hogy egyetlen olyan kdsora sem
volt a szolgltatsnak, amely kimaradt volna a tesztelsbl, teht a csapatnak megfelel magabiztossgot
nyjthat ez a szm, mert valsznleg alaposan vgezte el az adott szolgltats tesztelst. Ugyanakkor, ha
ez az rtk mondjuk 30%, akkor ez bizony arra utal, hogy az adott szolgltats tesztelse tvol jr az
alapostl.
A tesztfedettsg ugyan objektv szm, amely szoros korrelciban ll a teszteltsg mrtkvel, azonban
nmagban mgsem mond sokat a tesztelt rendszer minsgrl s ezt nagyon fontos szem eltt tartani.
Az, hogy egy adott szolgltats tesztelsnek fedettsge 100%, mg nem jelenti azt, hogy az j minsg,
vagy akr azt, hogy a megfelelen alapos tesztek kszltek el hozz.

Regresszis tesztels
Az alapos tesztels ellenre elfordulhatnak olyan hibk, amelyekre a csapat nem kszlt fel. Ezeket lehet,
hogy valamelyik felhasznl veszi szre, de az is lehet, hogy valamelyik csapattag. Ha a hiba az adott
fejlesztsi ciklusban lv sztorira vonatkozik, akkor a sprint backlogba, az adott sztorihoz veszi fel a csapat,
ha egy mr hasznlatban lv valamelyik elz sprintben leszlltott sztorihoz, akkor pedig a product
backlogba kerl.
A 7-4 brn Tibor egy Lszl ltal felfedezett hibt vesz fel a backlogba, amely arrl szl, hogy .ha 128
karakternl hosszabb keresszveget r be valaki, akkor nem a cmben lv tallatok jelennek meg a tallati
lista elejn.

7-4- bra: Egy bug felvtele a backlogba

Br kicsi a valsznsge, hogy a felhasznlk ezzel a hibval szembe tallkoznak, Tibor azt beteszi a
kvetkez sprint backlogjba.
A kvetkez sprint indulsa utn Jzsefhez kerl a hiba javtsa, aki elszr egy regresszis tesztesetet kszt.
Ez reproduklja a hibt, s gy a hozztartoz teszt elbukik. Jzsef a teszt segtsgvel gyorsan megtallja a
hibt az egyik adatbzis-lekrdezsben, amelyik 128 karakterre vgja le a keress kulcst. A hiba javtsa utn
a regresszis teszteset mr helyesen lefut.

Egyb tesztelsi
eszkzk

lehetsgek

minsgbiztostsi

A csapat az alapvet funkcionlis tesztels mellett termszetesen mg tovbbi tesztelst is vgez. Az


alkalmazshoz ksztenek egy gyors ellenrz listt, amely segtsgvel manulis mdon ellenrizhetik, hogy
annak felhasznli fellete megfelel-e az alapvet dizjn s ergonmiai elvrsoknak. Ennek az ellenrz
listnak egy rsze a ksz defincijba is beletartozik, gy a legfontosabb manulis ellenrzseket a csapat
mr a sztorik kszre jelentse sorn elvgzi.
A kdminsg ellenrzshez a csapatnak lehetsge van kdmetrikkat hasznlni, illetve statikus
kdanalzist vgeznie.

8. Folyamatos termkleszllts
Anita, Jzsef s Lszl mr sajt korbbi tapasztalatbl tudja, milyen knos, amikor a rendszer hasznlata
sorn azt kell mondania: de ht az n gpemen ez jl mkdik! Hiba minden tesztels a fejleszti
krnyezetben, ha az alkalmazs a dem s egyb krnyezetekben valamirt nem fut! Az ellenrz lista
alkalmazst kszt csapat jl tudja, hogy nemcsak a teszteket clszer automatizlnia, hanem azokat az
eljrsokat is, amelyek a fejlesztkrnyezetben tesztelt s mkd kdokat megfelel mdon telepti s
konfigurlja az les krnyezetekben is.
A folyamatos leszllts olyan szoftverfejlesztsi gyakorlat, amely a folyamat lpseit igyekszik automatizlni
azrt, hogy ezzel javtsa a minsget s a hatkonysgot. Tbb olyan alapvet technikbl ll ssze, mint
pldul a korbban mr bemutatott automatikus tesztels, a folyamatos integrci (continuous integration)
s a folyamatos termktelepts (continuous deployment). Ennek az eszkztrnak a hasznlata gyors
megoldsokat biztosthat az jabb termkvltozatok ellenrztt kibocstsra ppen gy, mint a hibk
felismersre, javtsra s a javtcsomagok teleptsre.

Folyamatos integrci
A folyamatos integrci fogalma mr rgta ismert az agilis fejleszts vilgban. Elszr az extreme
programming (XP) vezette be, de azta szles krben elterjedt, st mg a vzess alap projekteken is
gyakran hasznljk ezt a technikt. Ennek az a lnyege, hogy a szoftvertermk fejlesztsvel foglalkoz csapat
olyan forrskd kvetst hasznl, ahol a projekt fejleszti ltal napi szinten ellltott kdmdostsokat
folyamatosan visszavezetik egy megosztott fgra. A kdbzis integrlt kezelse mellett termszetesen arrl
is gondoskodik a projekt, hogy a fgon lv szoftver egyttal a minsgi elvrsoknak megfeleljen.
A folyamatos integrci legfontosabb clja az agilits alapgondolatnak tmogatsa, ami szerint az
elrehalads elsdleges mrcje a mkd szoftver. Legfontosabb elvei az albbiak:
Hasznlj forrskd kvetst!
Automatizld a kdptst!
Tedd a kdptst nellenrzv!
Minden kdvisszars utn vgezd el jra a kdptst!
Gondoskodj arrl, hogy gyors legyen a kdpts!
Mindenki lthassa a legutbbi kdpts eredmnyt!

Kdpts
A csapat Anitra bzta a forrskd automatikus ptsnek elksztst. Anita tbb kdpt eljrst is
elksztett. Ezek kzl a legfontosabb a folyamatos integrcit megvalst vltozat, amely gyorsan lefut.
Anita egy olyan vltozatot is elksztett, amely rendszeresen (4 rnknt) lefut, s ellenrzi, hogy a kd
fordtsa utn az nem csak a fejleszti, hanem a dem krnyezetben is jl m kdik.
A kdptst biztost eljrsok sorn a portlon felknlt sablonokbl (8-1 bra) indult ki, azok kzl
rtelemszeren a Visual Studio sablonjt hasznlta.

8-1 bra: Kdpts sablon vlasztsa

Anita a sablonban lv kdptsi lpseket az alkalmazsra szabta (8-2 bra), gy azok a kd fordtsa
mellett lefuttatjk a teszteket, elksztik a nyomkvetshez hasznlt szimblumokat, s elrhetv teszik a
termk lefordtott vltozatnak elrst.

8-2 bra: A kdpts lpsei

A folyamatos kdptshez szksges opcit a Triggers fln lltotta be, amint azt a 8-3 bra mutatja. Ettl
a pillanattl kezdve minden egyes kdvisszars sorn amikor a kd a verzitrba kerl , elindul a
kdpts folyamata s annak rszeknt az automatikus tesztek lefutsa.

8. Folyamatos termkleszllts

8-3: A folyamatos integrci bekapcsolsa

A portlon a fejlesztcsapat tagjai megnzhetik a kdpts eredmnyt is (8-4 bra).

8-4 bra: A kdpts eredmnynek sszefoglalsa

Folyamatos termktelepts
A folyamatos integrci gondoskodik arrl, hogy szleljk azokat a kdolsi hibkat, amelyek a stabil
minsg termkhez kapcsold elvrsokat megtrik, pldul funkcionlis vagy minsgi hibkat vezetnek
be, esetleg akr a kd sikeres lefordulst is megakadlyozzk. Ugyanakkor a legtbb fejlesztcsapat
szmra ezen kvl mg a termk les krnyezetbe val teleptse is komoly kihvst jelent.
A legtbb nehzsget az okozza, hogy a termkkpessgek folyamatos vltoztatsa tbbfajta problmt is
elidzhet, s ezek kezelse nem mindig egyszer s nem is minden esetben technolgiai jelleg
feladat.
Ezekkel a nehzsgekkel az ellenrz lista alkalmazst fejleszt csapat is tisztban van. k az albbiakban
ltjk a legfontosabb problmkat, amelyek a termkkpessgek vltozsbl eredhetnek:
A felhasznli fellet megvltozik ez megzavarhatja a felhasznlkat.
A felhasznli fellet megvltozik ez megzavarhatja a tesztelket.
A korbban kiadott termk szolgltatshomlokzatai megvltoznak.
A termk mgtt lv adatbzis, illetve adatbzis-szerkezet megvltozik.
A termk konfigurcij, paramterei vltoznak egy j vltozat kibocstsa sorn.

Tbb termkvltozatot magban foglal ugrst kell az les krnyezetben vgrehajtani.


Br az alkalmazs jelenlegi fejlesztsi ciklusaiban mg a csapatnak nem kell ezekkel a problmkkal
szmolnia, mert egyelre nem ad ki az ellenrz lista alkalmazsbl publikusan elrhet vltozatokat, azrt
kszlnek arra, hogy elbb vagy utbb foglalkozniuk kell ezekkel a krdsekkel. Jzsef, Anita s Lszl
Tiborral egytt az albbi teendket hatroztk meg a folyamatos termkleszllts megfelel kezelsre:
Kdpts s folyamatos integrci biztostsa. A folyamatosan vltoz kdbl a csapatnak brmikor el
kell tudni lltani az ellenrztt, telepthet termkvltozatot.
Manulis tesztels. Az automatikusan nehezen vagy csak nagyon kltsgesen tesztelhet funkcik
ellenrzshez (felhasznli fellet, end-to-end tesztels, esetleg teljestmnytesztels) a csapat kzi
tesztelst fog bevezetni.
Kibocsts s konfigurci kezelse. Amikor mr tbbfajta mobil eszkzn is hasznlni fogjk az
alkalmazst, a csapat kvetni fogja, hogy az adott eszkzkre milyen konfigurciban teleptettk ki az
alkalmazs egy adott vltozatt.

9. A termk mkdsnek kvetse


A termk kezelse sorn a csapat nem elgedhet meg azzal, hogy egyszeren csak egy j minsg
alkalmazst bocst ki. Folyamatosan figyelnie kell a felhasznlk visszajelzseire. Ennek egy j mdja, hogy
az alkalmazshoz tartoz rtkel megjegyzseket elolvassk, esetleg idnknt egyszer krdvekkel
felmrik azt, hogy a felhasznlk milyen j funkciknak rlnnek. Hasonlan jl hasznlhatk az esetleges
hibabaejelentsek, tmogatsi krsek.
Ezek a mdszerek ktsgtelenl hasznosak, de nem tudnak mindenben vlaszt adni a fejlesztcsapat
esetleges krdseire. Mely funkciikat hasznljk a leggyakrabban? Melyik funkci az, amelyet a felhasznlk
leggyakrabban flbehagynak? Az alkalmazs mely rszrl rkeznek olyan hibajelzsek, amelyek a
felhasznl (esetleg a rendszer) hibjra utalnak?
Mg ha ezeket a krdseket meg is tudjk vlaszolni az alkalmazs felhasznli, egy krdves kutats akkor
sem lehet igazn j ezeknek az informciknak a begyjtsre. Nem tudunk minden felhasznlt elrni,
illetve a krdvek kitltsvel s kirtkelsvel hossz id telhet el.

Hasznlati analitika
Az azonnali visszajelzsek egyik legjobb mdja az, ha az alkalmazst ksztjk fel arra, hogy a hasznlat
mdjrl adatot gyjtsn. Ennek legegyszerbb mdja a rendszerek szerver oldaln lv mveletek
naplzsa, amelybl kiderlhet, hogy melyek a gyakrabban s ritkbban hasznlt funkcik, hol kvetkeznek
be ltalban felhasznli vagy rendszerhibk.
Annak okt, hogy az alkalmazs nhny olyan funkcijt, amelytl sokkal intenzvebb hasznlatot vrtunk,
mgsem veszik birtokba a felhasznlk, a szerveroldali naplzs nem segt kiderteni. Egy j alkalmazsban
a begyjttt informci segtsgvel kvethetjk a felhasznlk tjt, ahogyan azok a rendszer felletn a
funkcik kztt vndorolnak. sszegyjhetjk, hogyan haladnak vgig kpernykn, hol, mennyi idt
tltenek, mikor szaktanak meg egy elkezdett folyamatot mg annak befejezse eltt.
Egy ilyen naplzott folyamat (user journey) segtsgvel elemezhetjk a felhasznlk viselkedst, s
megkereshetjk azokat a megoldsokat, amelyekkel rirnythatjuk a figyelmket a fontosnak tlt
funkcikra, segtnk nekik gyorsabban rtallni azokra. Egy elemzs rmutathat azokra a
termkkpessgekre is, amelyekre nincs vals igny ezeket akr el is tvolthatjuk a termkbl.

Application Insights hasznlata


Az alkalmazsok monitorozsnak egyik legegyszerbb eszkze a Microsoft Azure szolgltatsainak egyike,
az Application Insights, amely lehetv teszi a hasznlat nyomon kvetst, a hibk szlelst s a
szoftverlellsok diagnosztizlst.
Tibor fontos feladatnak tartja a felhasznlsi informcik elemzst, ezrt a csapattal egytt a kvetkez
sprintre definil egy deszkamodellt az Application Insight megismersre. Jzsef a feladathoz egy olyan
webes projektet hoz ltre, amely integrlja a diagnosztikt (9-1 bra)

9-1 bra: j webalkalmazs ltrehozsa Application Insigts integrcival

A projekt ltrehozsa utn a diagnosztika azonnal mkdkpes. Jzsef nhny alkalommal elindtja az
alkalmazst s navigl annak lapjai kztt. Ennek az egyszer szimulcinak az eredmnyekppen azonnal
megtekintheti az Application Insight ltal sszegyjttt informcit (9-2 bra).

9. A termk mkdsnek kvetse

9-2 bra: Nhny alapvet diagnosztikai informci

Jzsefnek nem kell megelgednie a rendszer ltal automatikusan gyjttt diagnosztikai adatokkal.
Prbakppen bepti az alkalmazs kliens oldalba annak naplzst, hogy a felhasznl egy j keresst
indt. Ehhez egyetlen JavaScript utastssorra van szksge, s az adatokat azonnal leolvashatja az
alkalmazshoz tartoz AppInsight portlon (9-3 bra).

9-3 bra: Alkalmazs-specifikus esemnyek

Visszacsatolsok kezelse
Az informcik sszegyjtse s elemzse sorn a csapat kialakthatja azt a kpet, hogy milyen
termkkpessgeket kell megvltoztatnia, illetve milyen j kpessgeket kell a termkhez adnia, hogy az
jobban segtse ket s felhasznlikat a cljaik elrsben. Termszetesen ennek kitallsa nem
egyszer feladat.
Ezeket a mdostsokat s j termkkpessgeket a csapat a product backlogba rja j sztorik formjban. A
termkgazda, Tibor feladata azok priorizlsa s tovbbi egyeztetse a csapattal, hogy az rtkes
termkkpessgek minl hamarabb beptsre kerljenek.

sszegs
A gyors termkfejleszts ma mr csak valamelyik agilis szemlletet tmogat mdszer vagy keretrendszer
segtsgvel lehetsges. Az agilis szemlletmd nem a programozi kdoli hatkonysg nvelsvel
tesz termelkenyebb egy fejlesztcsapatot, hanem az albbiak tmogatsval:
Az rtkes funkcik fejlesztsre fkuszl, azokat tekinti elsdleges prioritsnak.
Nagy csapatok, hossz id s tengernyi munka helyett kis csapatban, rvid ciklusidben s apr
munkadarabokban gondolkodik.
A termk megvalstsa sorn a csapat folyamatosan alacsony szinten tartja a mszaki adssgot, vagyis
nemcsak az alkalmazs nmagban vett kivl minsgre, hanem annak egyszer karbantarthatsgra is
trekszik.
A termk elkszlt akr apr kpessgeirl is azonnali felhasznli visszacsatolst szeretne kapni, az
szrevtelekbl leszrt tapasztalatokat azonnal igyekszik megjelenteni a termkben.
A Visual Studio Professional 2015 nmaga is agilis szemlletmddal kszl minden tevkenysgben
tmogatja azokat a fejlesztket s csapatokat, akik ezt a megkzeltsmdot alkalmazzk, illetve alkalmazni
tervezik. A fejleszti gpre teleptett IDE a Visual Studio Team Services3 s a Microsoft Azure szolgltatsaival
egytt minden fontos termkkpessget tartalmaz, amellyel a csapatok alkalmazsaikat termkknt
fejleszthetik.

Korbbi nevn: Visual Studio Online

Visual Studio
A Visual Studio a Microsoft integrlt fejleszti krnyezete, amely tbb termkvltozatban is elrhet. A Visual
Studio nmagban illetve MSDN elfizetssel is megvsrolhat.4
Mi az az MSDN?
Egy Visual Studiohoz kapcsolt elfizets, amely az albbi elnyket biztostja:

Szoftverfrisstsi Garancia jabb verzik folyamatos elrhetsge a licencelsi idszak alatt.

Fejleszts-tesztels cljra tovbbi Microsoft szoftverek s havi Azure krediteket.

O365 Developer elfizets.

A fejleszt szmra Team Foundation Server (TFS) + TFS Call licenceket.

Technikai support incidens kezelsbl 2 db.

Windows s Windows Phone developer account.

Az MSDN-nel kapcsolatban a legfontosabb, hogy 1 MSDN elfizetst csak 1 emberhez lehet hozztrstani.

Melyek az aktulis Visual Studio verzik?


Visual Studio Enterprise with MSDN
Visual Studio Professional with MSDN
MSDN Platforms
Visual Studio Test Professional with MSDN
Visual Studio Professional 2015
Az egyes verzikat rszletesen sszehasonlt oldalrt ltogasd meg a Visual Studio hivatalos oldalt.
Hogyan lehet megvsrolni?
Keresd a helyi viszonteladdat, vagy ltogasd meg a Visual Studio hivatalos oldalt.
Ha csak ki akarod prblni,
akkor vedd ignybe a djmentes Visual Studio Dev Essentials program szolgltatsait az albbi oldalon:
http://my.visualstudio.com
Ha krdsed van, vagy segtsgre lenne szksged rj az albbi email cmre: devtools_hun@microsoft.com

Ez az oldal a 2015.11.18-i llapotot rja le.

Anda mungkin juga menyukai