66
10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT Miről lesz szó? Szoftverfejlesztési projektek menedzsmentje Szoftverfejlesztési módszertanok eXtreme Programming Microsoft Solutions Framework Esettanulmány Cserkúti Péter, BME - AAIT

SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

1

SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK

Cserkúti Péter, BME - AAIT

Miről lesz szó?

� Szoftverfejlesztési projektek menedzsmentje

� Szoftverfejlesztési módszertanok

� eXtreme Programming

� Microsoft Solutions Framework

� Esettanulmány

Cserkúti Péter, BME - AAIT

Page 2: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

2

Szoftverfejlesztési projektek menedzsmentje

Cserkúti Péter, BME - AAIT

Szoftverfejlesztési project

� Kategória:

� Szervezetfejlesztési project

� Cél:

� Szervezet hatékonyabb működése

Cserkúti Péter, BME - AAIT

Page 3: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

3

Projekt háromszögProjekt követelmények

� Projekteredmények: funkciók

� Kettő szabadon választható, a harmadik ezek függvénye

Cserkúti Péter, BME - AAIT

Projekt életciklus

� Kezdeményezési folyamatcsoport� Projekt indítása

� Tervezési folyamatcsoport� Projekteredmény behatárolása� Projektterv kialakítása

� Végrehajtási folyamatcsoport� Követési és felügyeleti folyamatcsoport

� Projekt kontroll� Változás menedzsment

� Zárási folyamatcsoport� Projekt befejezése� Projekt kiértékelése

Cserkúti Péter, BME - AAIT

Page 4: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

4

Kezdeményezési folyamatcsoport

� Vízió megfogalmazása

� Projekt kereteinek a meghatározása

� Felelős szervezeti egységek kijelölése

Cserkúti Péter, BME - AAIT

Tervezési folyamatcsoport Lépések 1

� Cél: projektmenedzsment terv elkészítése� Projekteredmények behatárolása

� Projekt terjedelmének behatárolása

� Feladatlebontási struktúra (WBS – Work Breakdown Structure)� Projekt menedzser határozza meg, az egyes elemek

delegálhatók szakértőknek

� WBS elemek konkrét tevékenységekre (Activity) bontása� Terület szakértője végzi

� Tevékenységekhez költség, erőforrás és időtartam rendelhető

Cserkúti Péter, BME - AAIT

Page 5: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

5

Tervezési folyamatcsoport Lépések 2

� Ez alapján: ütemterv, becsült erőforrás terhelés� Ütemezés vizuális szemléltetése

� Sávos diagramok: Gannt-diagram, Hálódiagramok, Erőforrás profilok

� Kritikus tevékenységek és utak meghatározása (ha az csúszik, minden csúszik)

� Költség becslés� Kiadások és költségek meghatározása tevékenységenként

� Projekt marketing megtervezése� Hogyan kommunikáljunk az egyes érdekcsoportokkal? Hogyan legyen a

végtermék elfogadott?

� Kockázatelemzés� Kockázatok azonosítása� Valószínűségük, hatásuk meghatározása� Alternatívák, kezelés, intézkedések kidolgozása

� Beszállítókkal való szerződéskötések tervezéseCserkúti Péter, BME - AAIT

Cserkúti Péter, BME - AAIT

Page 6: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

6

Tervezési folyamatcsoportLépések 3

� Eredményként előáll a projektmenedzsment terv

� Ez alapján számos további bázisterv készíthető az esetleges kockázatok csúszások kezelésére

Cserkúti Péter, BME - AAIT

Végrehajtási folyamatcsoport

� Projektmenedzsment terv szerint halad

� Emberek és erőforrások koordinálása

� Tevékenységek (Activity) végrehajtása

� Minőségbiztosítás, információk begyűjtése

� Beszállítókkal szerződések kezelése

Cserkúti Péter, BME - AAIT

Page 7: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

7

Követési és felügyeleti folyamatcsoport

� Projekt előrehaladásának monitorozása

� Cél:

� Problémákat időben felismerni

� Az eredeti bázistervtől/projektmenedzsment tervtől való eltérést időben detektálni

� Projektkontroll lépések

Cserkúti Péter, BME - AAIT

Projektkontroll

� Típusok:� Eredménykontroll, folyamatkontroll

� Normák meghatározása: viszonyítási alap� Folyamatkontroll: idő és költségterv (időben vagy pénzben

csúszunk-e)� Eredménykontroll: WBS-ben rögzített mérföldkövek

� Információ gyűjtése: napi/heti/havi� Elemzés: terv vs. tény adatok összehasonlítása� Korrekció

� Erőforrás, idő és költségterv módosítása� Projektterv módosítása� Új bázisterv alkalmazása

Cserkúti Péter, BME - AAIT

Page 8: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

8

Zárási folyamat

� Projekt eredmény átadása

� Projekteredmény dokumentálás

� Szerződések lezárása

� Projekt értékelése

Cserkúti Péter, BME - AAIT

Szervezeti formák

� Lineáris-funkcionális struktúrán alapuló

� Projektre orientált

� Mátrix struktúrán alapuló

Cserkúti Péter, BME - AAIT

Page 9: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

9

Lineáris-funkcionális

� A tevékenységeket a funkcionális szervezeti egységek (részlegek) végzik (pénzügy, számvitel, értékesítés, termelés, …)

� A projektvezető a részlegektől külön helyezkedik el� Nincs projektmenedzseri hatáskör

� koordinátori szerep, információs központ

� Felelősség és hatáskör nincs összhangban� Hátrány:

� Napi operatív teendők mellett a projektre nem marad idő� A részlegben a projekt háttérbe szorul� Közvetett kommunikáció, részlegek várnak egymásra

� Előny:� Azonos szakmai képzettségűek egy helyen -> hatékony munkaidő� Tapasztalat későbbi projektekben jól hasznosítható (szervezeti

struktúra állandó) Cserkúti Péter, BME - AAIT

Projektre orientált� Elkülönült szervezeti egység végzi a projekt teljesítését

� Minden projektre külön csapat� Kiveszik az embereket az egyes részlegekből (átkerülnek a

projekt vezető hatáskörébe)

� Felelősség és hatáskör azonos szinten� Előny:

� Közvetlen információáramlás� Nem kell a napi operatív feladatokkal foglalkozni

� Hátrány:� A projekt háttérbe szorítja a funkcionális szakmai

feladatokat� Változó összetétel� Megszerzett tapasztalat jelentős része eltűnik

Cserkúti Péter, BME - AAIT

Page 10: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

10

Mátrix struktúrán alapuló

� Megosztott hatáskörök� Projektvezető

� Ütemezés� Mit és mikor(ra) ?

� Funkcionális szervezeti egység vezetője� Szakmai kérdések� Hogyan (és ki) ?

Cserkúti Péter, BME - AAIT

Projektteljesítési stratégiák

� Szerződés típusok

� Elszámolási módok

Cserkúti Péter, BME - AAIT

Page 11: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

11

Szerződés típusok

� Kérdés: hova helyezzük a kockázatot és felelősséget? (projekt tulajdonos vs. kivitelező)

� Típusuk

� Tradicionális szerződéstípus

� Kulcsrakész szerződéstípus

� Menedzsment szerződéstípus

Cserkúti Péter, BME - AAIT

Tradicionális

� Az egyes tevékenységeket más-más külső partnerre bízza a projekt tulajdonos

� Mindenkivel külön szerződés. Mindenki csak a saját részéért felel.

� A teljes projekteredmény kockázata a tulajdonosé� Előny:

� A tulajdonos (és csak ő) átlátja a projektet� Változások rugalmasan kezelhetőek� Szélesíthető a verseny, csökkenthető az ár

� Hátrány:� Kockázat a tulajdonosnál� Közvetett információáramlás a külső közreműködők között

� Szoftverfejlesztéshez általában nem jó

Cserkúti Péter, BME - AAIT

Page 12: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

12

Kulcsrakész

� A projekt tulajdonos egyetlen fővállalkozóval szerződik (neki lehetnek alvállalkozói)

� Csak a fővállalkozó felelős a projekt eredményért� Előny:

� Felelősség a fővállalkozónál� Kevesebb munka a tulajdonosnál (projektvezetést a vállalkozó

végzi)

� Hátrány:� Módosítási igény nehezebb (alku)� Nehezebben áttekinthető, ellenőrizhető� Kisebb a verseny (kevesebb a kulcsrakész vállalkozó)� Drágább: a vállalkozó beárazza a kockázatot

Cserkúti Péter, BME - AAIT

Menedzsment típusú

� A kettő ötvözése

� A projekt tulajdonos és a külső közreműködők között egy menedzsment vállalkozó

� A menedzsment vállalkozó

� Vezeti a projektet

� Köti a szerződéseket a külső közreműködőkkel

� Fizeti a számlákat a tulajdonos számlájáról

� Nála van a projekt kockázata és felelőssége (nagyrészt)

Cserkúti Péter, BME - AAIT

Page 13: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

13

Elszámolási módok

� Ár bázisú pénzügyi elszámolás

� Költség bázisú pénzügyi elszámolás

� Cél bázisú pénzügyi elszámolás

Cserkúti Péter, BME - AAIT

Ár bázisú elszámolás

� Előre rögzítésre kerül a fix ár

� Nem függ a tényleges költségektől

� Szoftverfejlesztéshez általában jó

� Kiszámítható a megrendelő szempontjából

� Kockázat a kivitelezőnél

� Szélsőséges ajánlattevői magatartások

� Irreálisan magas költségtartalékok

� Költségtartalékok hiánya -> rossz minőség, csúszás

Cserkúti Péter, BME - AAIT

Page 14: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

14

Költség bázisú elszámolás

� Nincs fix ár előre

� Tényleges költségek + vállalkozói nyereség

� Kockázat a projekttulajdonosnál

� Rugalmas

� Vállalkozónak kiszámítható (nincs szélsőséges ajánlattevői magatartás)

� A megrendelőnek kevésbe kiszámítható

Cserkúti Péter, BME - AAIT

Cél bázisú elszámolás

� Teljesítmény motiválása

� Az előzőek kiegészítése lehet

� Költségcél, határidőcél, …

Cserkúti Péter, BME - AAIT

Page 15: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

15

Szoftverfejlesztési projekt lépései

1. Követelmény elemzés (requirements engineering)� Jövőkép, célok� Üzleti és funkcionális igények analizálása

2. Tervezés (design)� Rendszermodell megalkotása

3. Implementáció (programming)� Implementációs terv� Megvalósítás� Implementációs teszt� Összeépítés (build management)� Rendszerteszt

4. Integráció (integration)� Rendszerbevezetés� Funkcionális teszt� Üzemeltetési teszt Cserkúti Péter, BME - AAIT

Projekt indítása, árajánlat

� Pontos árajánlathoz részletesen ismerni kell a feladatot, feltételez egy rendszertervet� De ez gyakran nincs �

� Megoldások� Két lépcsős árajánlat: rendszerterv, majd megvalósítás� Együtt a kettőre, de megfelelő tartalékokkal (itt is cél a lehető

legjobban megismerni a rendszert)� A megrendelő megbíz egy külső tanácsadó céget a

funkciókövetelmény analízissel.

� Teljesítési mód: szerzős típus, elszámolási mód meghatározása

� Megbeszélések alapján WBS fa felállítása, aktivitások meghatározása -> költség számítása

Cserkúti Péter, BME - AAIT

Page 16: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

16

Mit tartalmazzon a szoftverspecifikáció?

� Aktorok: szerepkörök� Felhasználói esetek aktorok szerinti bontásban� Entitások: milyen adatokat tároljunk a rendszerben� Adatbázis séma� Rendszer architektúra terve: blokkos felépítés,

felhasznált technológiákkal� Folyamatábrák: a rendszer üzleti folyamatai� Menüszerkezet: aktorok szerint� Navigációs digram: oldalak, képernyők közötti átmenet� Képernyőtervek: mockup, űrlapok felépítése� Design: űrlapok design-ja

Cserkúti Péter, BME - AAIT

Projekt finanszírozás, pénzáramlási tervek

� A bevételek és kiadások összeírása (táblázatban vagy grafikusan)

� A projektek általában utófinanszírozottak (+ résszámlák)

Cserkúti Péter, BME - AAIT

Page 17: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

17

Tipikus hibák a gyakorlatban

� Megrendelő szemszögéből� Tisztázatlan projektcélok, nincs tisztában a lehetőségekkel� Módosítási igények kezelése (drága)� Project marketing: ellenállás a projekttel szemben cégen belül� Üzemeltetés, karbantartás, support: ez is kell?

� Fejlesztői szemmel:� Kockázatok: túl vagy alulárazza a projektet� Nem vonja be a felhasználót, megrendelőt. Nem egyeztetnek

egymással eleget, megfelelő mélységben, nem értik meg egymást

� A vezetés nem koordinálja eléggé a folyamatot� Nincs megfelelő tervezés� Kontroll hiánya� ÁLTALÁBAN: hiányos projekt menedzsment, gyakran nincs rá pénz

Cserkúti Péter, BME - AAIT

Cserkúti Péter, BME - AAIT

Page 18: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

18

Szoftverfejelsztési módszertanok

Cserkúti Péter, BME - AAIT

Mi az amit csinálni akarunk?

� Szoftver fejlesztés

� cél: gyártás

� Milyen a jó szoftver...

� kielégíti az igényeket

� belefér a budgetbe

� határidőre kész van

Cserkúti Péter, BME - AAIT

Page 19: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

19

Meghatározó tényezők� Projekt jellemzők

� Méret

� Határidők

� Architektúra

� Módszerek(tanok)� projekt vezetési módszer

� tervezési módszer

� fejlesztési módszer

� tesztelési módszer

� karbantartási módszer

Cserkúti Péter, BME - AAIT

DE...

� Nem nagyon van olyan módszertan, amely az összes területet lefedné

� A különböző módszerek a tényezők bizonyos intervallumában hatékonyak

� azon belül is testreszabandók

Cserkúti Péter, BME - AAIT

Page 20: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

20

„fejlődés”

� klasszikus módszerek� tökéletesség

� szabályok

� kevés rugalmasság

� „tudomány”

� modern módszerek� nem kell a tökéletességre törekedni

� legyen „pont elég jó”

� nagyon rugalmas (cél a megelégedett felhasználó)

� inkább ajánlás gyűjtemény (pl. MSF)

� „művészet” Cserkúti Péter, BME - AAIT

Módszertanok

� XP – eXtreme Programming

� AM – Agile Modeling

� UP – Unified Process

� RUP – Rational Unified Process

� MDD – Model Driven Development

� SODA – Serviceoriented Development of Applications

� MSF – Microsoft Solutions Framework

� Scrum

Cserkúti Péter, BME - AAIT

Page 21: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

21

eXtreme programming

� Egy fegyelmezett és szabályozott szoftverfejlesztési megközelítés

� Elsősorban nagy bizonytalanságú, dinamikusan változó követelményekkel rendelkező projektekhez

� Ügyfélbevonás, csapatmunka

� Kis méret: 2 – 10 fős csapatok számára

Cserkúti Péter, BME - AAIT

XP I.

� Módszertan, amely az egyszerűséget, kommunikációt, visszajelzést és bátorságot tekinti a legfontosabb értéknek a fejlesztés során.

� Fontos a kód minősége, a tesztelés, nincs felesleges dokumentáció (ami nem produktív, az nem kell)

� A megrendelő, menedzser és programozószerepére, valamint az ezekben a szerepeket végző emberek jogaira és kötelezettségeire helyezi a hangsúly.

Cserkúti Péter, BME - AAIT

Page 22: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

22

XP II. Projekt életciklus

� A megrendelő határozza meg a számára üzleti értéket jelentő funkcionalitást

� A programozó megbecsüli a költségeket

� A megrendelő meghatározza a prioritást

� A programozó implementálja a kialkudott funkcionalitást release-eken/iterációkon keresztül

Cserkúti Péter, BME - AAIT

Cserkúti Péter, BME - AAIT

Page 23: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

23

Projektbontás

� Releasek (release plan, release meeting)

� mérföldkövek, dátumokkal

� user sztorikból

� Iterációk

� elsősorban prioritás alapján

� Taskok

� technológiai funkciók a fejlesztők számára

Cserkúti Péter, BME - AAIT

User stories

� Mint a Use Case-ek, de mégis mások� 3 sor, kártyák formájában

� Az ügyfelek írják� nem technikai, nem limitált, nemcsak felhasználói felület� Az üzleti érték a lényeg

� Nem túl részletes� becsléshez, később pontosítják� ideális időbecslés (hetek)

� Forrásul szolgálnak� Relesase Planning Meeting� elfogadási tesztek

Cserkúti Péter, BME - AAIT

Page 24: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

24

Spike solutions

� Kis technológiai prototípusok

� a user sztorikban felmerülő problémákra

� Pontosítja a user sztorikat

Cserkúti Péter, BME - AAIT

Release plan

� A teljes projekt terv (szerű)

� Időbecslés� ideális, nincsenek problémák, várakozások

� tesztelés benne van

� priorizálás (ügyfél)

� A sztorikból kiválasztani a release halmazokat� dátumok

� utána az iterációs halmazokat

� Amíg meg nem egyezik mindenki� költségek, idő, tartalom, minőség (teszteltség, ...)

Cserkúti Péter, BME - AAIT

Page 25: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

25

Iterációs tervek

� Minden iteráció elején

� Egy iteráció 1-3 hét hosszú

� Feladatok, taszkok a fejlesztőknek

� user sztorik a release planből

� előző iterációk hibajavításai

� 1-3 nap

� Részletes, az implementációra koncentrál

Cserkúti Péter, BME - AAIT

Elfogadási tesztek

� User sztorikból az iterációk alatt

� Ügyfél adja meg

� forgatókönyvek

� Tesztadatok

� Black Box

� Minőségbiztosítás

Cserkúti Péter, BME - AAIT

Page 26: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

26

Projektsebesség

� Hány user sztori készül el ...� Ügyfél: Egy iterációra csak annyi user sztorit

szabad választani, amennyit az előző iterációban sikerült megcsinálni

� Fejlesztő: Egy iterációra csak annyi taskot szabad választani, amennyit az előző iterációban sikerült megcsinálni

Cserkúti Péter, BME - AAIT

Cserkúti Péter, BME - AAIT

Page 27: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

27

Cserkúti Péter, BME - AAIT

Cserkúti Péter, BME - AAIT

Page 28: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

28

Páros programozás

� Két ember, egy gép� Jobb kódminőség ami később megtérül� Egyikük operatív

� gyártja a kódot

� A másik stratégiai gondolkodás� gondolkodik a következő lépésen

� Cserélnek !

� meg kell szokni ☺

Cserkúti Péter, BME - AAIT

Bugok, tesztek

� Elfogadási tesztek� mielőtt debuggolnánk

� Minden talált hibára újabb teszt� vissza ne jöjjön

� Unit tesztek� legyen meg előbb, mint a kód

� Automatikus

� biztonságos refaktoring

Cserkúti Péter, BME - AAIT

Page 29: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

29

Stand-up meeting

� Fontos a jó és hatékony kommunikáció a csapaton belül

� Minden nap

� Egy közös gyűlés

� mindenki áll – rövid !

� spontán

Cserkúti Péter, BME - AAIT

Közös kódtulajdonlás

� Bárki bármit módosíthat

� új funkciók, bugfixek, stb.

� Nincs egy főnök

� még vezető programozó sem

� mindenki tévedhet – és téved is

� Unit tesztek

Cserkúti Péter, BME - AAIT

Page 30: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

30

Könyörtelen refaktorálás

� A kódújrafelhasználás valóban költséghatékony ?� Reaktorálás

� redundancia megszüntetése� újraírás� minták� frissítés

� Egyszerű, jó minőségű kód� unit tesztek

Cserkúti Péter, BME - AAIT

Gyakori integráció (check-in)

� Max 1 nap, de inkább néhány óránként

� Mindig a legutóbbi kóddal dolgozzunk

� Kompatibilitási problémák hamar előjönnek

Cserkúti Péter, BME - AAIT

Page 31: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

31

Ember mozgatás

� Nem támaszkodhatunk egy emberre

� Tudás megosztás� duplikációk

� minták

� best practices

� Probléma elosztás

� Segítség� mindenki ért mindenhez

� load balancing

� Párok !!!Cserkúti Péter, BME - AAIT

eXtreme programming

� Foglalkoztatott megrendelő

� Felhasználói történetek (user sztori)

� Elfogadási teszt

� Költségbecslés

� Rövid iterációk, folyamatos program kibocsátás

� A felhasználó határozza meg a program kibocsátást

� Gyors tervezés

� Páros programozás

� Kollektív kód birtoklás

� Unit tesztCserkúti Péter, BME - AAIT

Page 32: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

32

Microsoft Solutions Framework (MSF)

Cserkúti Péter, BME - AAIT

Microsoft Solutions Framework (MSF)

� Útmutatás a sikeresebb IT megoldásokhoz:� Gyorsabban,� Kevesebb emberrel,� Kisebb kockázattal� Jobb minőségben

� Elvek, folyamatok, best practice-ek gyűjteménye� NEM módszertan !� Projektmenedzsment keretrendszer, amely testreszabható

� MS koncepció: nincs egyetlen struktúra, folyamat, ami mindig jó� Alkalmazható kis és nagy, bonyolult projektetkben is� Lehet közben követni vízesés modellt vagy akár valamilyen

agilis módszertant is

Cserkúti Péter, BME - AAIT

Page 33: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

33

Általános jellemzők

� Nyílt, őszinte kommunikáció támogatása

� Mindenki számára ismert, közös cél

� A csapat felépítése nem hierarchikus, inkább egy hálózatra hasonlít

� Mindenkinek megvan a saját szerepköre és felelőssége, de végső sikerért mindenki felel (MSF Team Model)

� Cél: üzleti érték előállítása

� Maradjunk agilisak, készüljünk fel a változásokra

� Fektessünk be a minőségbe

� Építsük be a tapasztalatainkat

Cserkúti Péter, BME - AAIT

Minimális/ideális méret

� Nem minden projekthez

� De minden méretre vannak használható részek

� Elsősorban nagyobb projektekre

� 3-12 hónap (leginkább 4-6), minimum 3 (ideálisan 7-11) létszámú csapatban

� Skálázás: feature team-ek

Cserkúti Péter, BME - AAIT

Page 34: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

34

MSF kulcs elemei

Csapat modell

Kockázat kezelés

funkciók

Folyamat modellminıség

- Project Management Discipline

- Risk ManagamentDiscipline

- Readiness Management Discipline

Cserkúti Péter, BME - AAIT

MSF csapat modell

kommunikáció

elégedett megrendelő

felhasználói hatékonyság

telepítés és karbantartás

minőségbiztosítás

fejlesztés a specifikáció szerint

Development

Test

ReleaseManagement

UserExperience

ProductManagement

Program Management � Független és

együttműködő szerepek

� Mindenki saját küldetéssel és szereppel rendelkezik

� Egyenrangú szerepek

� Nem 6 ember !

Kereteken belül

Cserkúti Péter, BME - AAIT

Page 35: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

35

Product Management

� Cél: elégedett ügyfél

� Igények felmérése. Olyan szoftver készüljön meg, amire szükség van.

� Feladatok� Termék megtervezése

� Piackutatás, felhasználói igények felmérése

� Mikor mondható sikeresnek a termék?

� Milyen verziók (release-ek) legyenek a termékből?

� Marketing

� Üzleti érték meghatározása/megfogalmazása

� Megrendelő/felhasználók bevonása

Cserkúti Péter, BME - AAIT

Program Management

� A termék előállítása a rendelkezésre álló keretek körött, kényszereket betartva

� A megrendelő legyen elégedett� Ütemezés, funkcióhalmaz, költségek arányosítása� Feladatok

� Klasszikus projekt menedzsment feladatok (költségek kezelése, projekt terv, kockázat kezelés, kommunikáció megszervezése, erőforrás kezelés)

� Folyamatos ellenőrzés� Mérföldkövek, ütemezés� Minőség ellenőrzés� Adminisztratív feladatok

Cserkúti Péter, BME - AAIT

Page 36: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

36

Development

� Specifikáció szerinti megvalósítás

� Segítenek a specifikáció elkészítésében is

� Tervezés

� Rendszer és részletes tervek

� Becslések

� Könnyebben betartathatóak a határidők (ők mondták)

� Technológia szakértők

� Technológia kiválasztása

Cserkúti Péter, BME - AAIT

Testing

� Minőségi jellemzők meghatározása

� Ellenőrzése

� Tesztelési tervek, …

� Automatikus tesztelés megtervezése

Cserkúti Péter, BME - AAIT

Page 37: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

37

User Exprience

� Cél: felhasználói hatékonyság növelése

� Továbbképzés, tréning

� Használhatóság

� Visszajelzések begyűjtése

� Use case-ek finomítása

� Többnyelvűség

� Elérhetőség

Cserkúti Péter, BME - AAIT

Release Management

� Gördülékeny szállítás (telepítés)

� Csomagolás

� Telepítés, konfigurálás, testreszabás

Cserkúti Péter, BME - AAIT

Page 38: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

38

Vízesés modell

� Egy részfeladatot be kell fejezni a következő elkezdése előtt

� Mérföldköveket definiál

� Mikor használjuk?

� Jól definiálhatóak az egyes fázisok

� Nincs sok változás menet közben

Cserkúti Péter, BME - AAIT

Spirális modell

� A követelmények folyamatosan finomodnak

� Előny� Megrendelő és kivitelező kommunikációja erős

� Hátrány� Nincsenek tisztán megfogalmazott ellenőrzési pontok. A

fejlesztési folyamat kaotikus lehet

Cserkúti Péter, BME - AAIT

Page 39: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

39

A kettő együtt

� Mérföldkövek a vízesésből

� Kreativitás, visszacsatolás a spirális modellből

Cserkúti Péter, BME - AAIT

MSF folyamat modell

Vision/Scope

Approved

Project Plans

Approved

Scope

Complete

Release Readiness

Approved

Deployment

Complete

Cserkúti Péter, BME - AAIT

Page 40: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

40

MSF Mérföldkövek

� Az MSF folyamat modell egy mérföldkő alapú modell� A mérföldkövek felülvizsgáló és szinkronizációs pontok (az egyes

szerepek között)� A mérföldkövek lehetővé teszik az addigi végrehajtás értékelését és a

szükséges korrekciók megtételét� Mérföldkövek típusai

� Elsődleges mérföldkövek� Belső mérföldkövek

� Egy elsődleges mérföldkő elérése mindig a csapat és az ügyfél közötti egyetértés kérdése. Projektenként tipikusan azonosak.

� Belső mérföldkövek: a projekt folyamat és az elért eredmények értékelése. Projektenként változhat.

� A leszállítandó közbenső termékek a fizikai bizonyítékai annak, hogy a csapat elérte a mérföldkövet

Cserkúti Péter, BME - AAIT

Jellemző mérföldkövek

� Minden fázishoz, minden mérföldkőhöz tartoznak tipikus felelős szerepkörök

Mérföldkő Elsődleges felelős szerepkör

Vízió/határok elfogadva Product Management

Project terv elfogadva Project Management

Termék elfogadva Development és User Experience

Termék kiadható Testing és Release Managemente

Termék telepítve Release Management

Cserkúti Péter, BME - AAIT

Page 41: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

41

Iteratív fejlesztés

� Minden iterációnak új funkciókat adunk hozzá

� Version relese itáráció végén

� Nem szokás egyben kifejleszteni egy nagy projektet, célszerű felbontani

� Nem feltétlen szekvenciális

� Párhuzamosan

� Külön verzió csapatok

Cserkúti Péter, BME - AAIT

Verzió release-ek kezelése

� Fel kell készülni arra, hogy nem csak egy verzión dolgozunk, hanem lesz következő is

� Kell egy release stratégia� Melyik release-be milyen feature kerüljön� Release határidők

� Alapfunkciókat először� Egy már használható, minimális funkciójú verzióval kell indítani

� Funkciók priorizálása kockázat alapján� Iteráció ne legyen túl hosszú

� A felhasználónak ne kelljen sokat várnia

� Változás kezelés� Új funkciókról egyeztetés, hatásaik, költségeik, prioritásuk vizsgálata

Cserkúti Péter, BME - AAIT

Page 42: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

42

Fejlesztés és telepítés

� A telepítés is a folyamat fontos része

� Telepítéstől képez üzleti hasznot a termék

� Az iteráció részét képezi mind a kettő

Cserkúti Péter, BME - AAIT

Egy iteráció a folyamatban

Cserkúti Péter, BME - AAIT

Page 43: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

43

Vizionálás fázis (termék elképzelés)

� Jelzi az egyetértést� A projekt okait � A kívánt kimenetet� A projekt

megvalósít-hatóságát� A projekt céljait

és korlátait� A lehetőségeket és

kockázatokat� A projekt struktúráit

illetően

Elképzelés

Termék-elképzeléselfogadva

� A végére� Mindenki érti, hogy mi a végső

cél� Tudjuk, hogy milyen funkciók

kerülnek bele a projektbe és mik nem

� Hozzávetőleges ütemterv� Kockázatok nagyjából ismertek

Cserkúti Péter, BME - AAIT

Belső mérföldkövek

Kockázatértékelő dokumentum v1

Termékelképzelés dokumentum

tervezet

Csapat felállítása

Termékelképzeléselfogadva

Cserkúti Péter, BME - AAIT

Page 44: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

44

Project definíciós dokumentum

� Miért csináljuk

� Honnan tudjuk, hogy sikeresek vagyunk

� Kinek kell segítség

� Feltételezések, függőségek

� Kockázatok

üzletiigények

projektcélok

projektteljesítés

szerepek, felelősségek

feltételezésekkivételek

sikermérő-

számok

kockázatok

projektkompromisz-

szumok

Cserkúti Péter, BME - AAIT

Időterv

� Funkciókon és mérföldköveken a hangsúly� ~1 naptól egy hétig

� Milyen gyakran frissítsük az időtervet?

� Kell részletes cseklista?

� Idő vagy munka alapú becslés?� Erőforrsás követés plussz 50-75% karbantartási idő (megéri?)

� email

Cserkúti Péter, BME - AAIT

Page 45: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

45

Kommunikációs terv

� Hogyan kommunikálnak a tagok egymással, ügyfelekkel?

� Megbeszélés

� E-Mail (official, ad-hoc)

� Telefon

� Folyosón

� Új, belépő emberek ?

Cserkúti Péter, BME - AAIT

nuugdíjaskockázatok

kockázat értékelı dokumentum

Top 10

3. terv5. kontrol

2. elemzés1. azonosítás leírás

4. figyelés

Kockázat menedzsment

� Mindig csinálni kell – egyébként elfogadod a kockázatokat

� Felhasználható: csinálni vagy sem, milyen feltételekkel, milyen erőforrásokkal, stb.

Cserkúti Péter, BME - AAIT

Page 46: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

46

Tervezés fázis

� Követelmény lista leképzése megvalósítható funkciókra

� Use case-ek meghatározása

� Szintek� Koncepcionális

� Logikai

� Fizikai

� Funkcionális specifikáció elkészítése� A megvalósítandó funkciók listája

� Ez alapján időbecsülhetünk

Projekt tervekelfogadva Tervezés

Cserkúti Péter, BME - AAIT

Elfogadási feltételek

� Az érintettek és a fejlesztők egyetértenek

� Belső mérföldkövekben, azok határidejében

� Szerepkörökben és felelősségekben

� Kockázat kelezésben

� Funkcionális specifikáció

� Projekt ütemezési terv

� Melyik funkciót, ki és mikor?

Cserkúti Péter, BME - AAIT

Page 47: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

47

Belső mérföldkövek

Projekttervelfogadva

� Technológiák és felhasználandó termékek kiválasztása

� Funkcionális specifikáció

� Master project plan

� Master schedule plan

� Fejlesztő és tesztelő környezet felállítása

Cserkúti Péter, BME - AAIT

Fejlesztés fázis

� A funkciók kifejlesztése

� Elfogadási feltétel� Az összes funkció kifejlesztve

� Tesztelésre kész

� Eredmény� Forráskód

� Futtatható fájlok, binárisok

� Telepítő

� Megvalósított funkciók listája –befagyasztva (nincs több új funkció)

� Teszt esetek meghatározása

Terjedelemteljes

Fejlesztés

Cserkúti Péter, BME - AAIT

Page 48: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

48

Belső mérföldkövek

Terjedelemteljes

� Proof of concept verzió

� Belső build-ek (n., n+1. build)� Előrehaladás mérhető

� Belső szinkronizációs pontok a párhuzamosított munkákban

Cserkúti Péter, BME - AAIT

Stabilizáció fázis

� Jelzi az egyetértést a� Termék stabilitása� Minden programhiba ismert

vagy megoldott� Termék ügyféloldali elfogadása� Rendszer menedzsment

és támogathatóság� Csapat fókusza a következő kiadáson

kérdésekben

KiadásStabilizálás

� Tesztelés valós körülmények között

� Bugfix

Cserkúti Péter, BME - AAIT

Page 49: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

49

Belső mérföldkövek

Kiadás� Bug convergence

� A javított hibák száma utoléri a jelentett hibák számát

� Zero bug bounce� Amikor a bugfix utoléri a tesztelőket és nincs aktív

bug

� Release cancidate� Ez megy majd ki a pilot group-oknak

� Pre-production test complete

� User acceptance test complete

� Pilot complete

Cserkúti Péter, BME - AAIT

Telepítés fázis

� Előkövetelmény szoftverek feltelepítése

� Termék feltelepítése

� Konfiguráció

� Utána: felhasználói megelégedettség mérése

Cserkúti Péter, BME - AAIT

Page 50: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

50

Belső mérföldkövek

� Szükséges háttérszoftverek, keretrendszerek feltelepítve

� Termék feltelepítve� Ekkor még lehetnek felhasználói visszajelzések

problémákról

� Telepített verzió stabil� Egyetért mindenki abban, hogy a szoftver az elvárásoknak

megfelelően működik

� Telepítetés kész� A stabil verzió után van egy „csendes időszak”, amíg a

csapat nem dolgozik a projekten, de készenlétben vannak (15-30 nap)

Cserkúti Péter, BME - AAIT

Informatikai projektmenedzsment –gyakorlati módszerek

Cserkúti Péter, BME - AAIT

Page 51: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

51

Napi build

A termék minden egyes nap elkészül

A napi build előnyei:

� Jelzi, hogy a csapatmunka működik, a termék készül

� A termék és a termék fejlődése látható, tapasztalható

� A fejlesztési folyamat szívritmusa – vannak zavarai �

Cserkúti Péter, BME - AAIT

Tényleg tudok minden nap buildelni ?

� Egy tipikus 4-6 hónapos projektnél tényleg nehéz buildelni

� Aztán IGEN !

– az első héten

Cserkúti Péter, BME - AAIT

Page 52: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

52

Néhány tipp

� Forráskód követő rendszer� Minden fejlesztő lokálisan dolgozik� Minden este / éjjel megtörténik a rendszer

összeépítése és a fejlesztők minden reggel az új verzióval kezdenek

� Minőségi elvárások – forduljon, füstteszt, stb.� Automatizálás – a környezet kiépítése erőforrásokat

igényel� Ennek a felépítése egy folyamatos munka, még az első

projekt végén sem lesz tökéletes

Cserkúti Péter, BME - AAIT

(fél)kész tervből hogyan lesz forduló kód ?

� Nagyon kis projekt� Nincs terv, csak kód

� Kis projekt� Terv csak papíron esetleg Wordben

� Projekt� Egyszeri kódgenerálás

� Nagy projekt� Inkrementális kódgenerálás, szinkron

� Nagyon nagy projekt� MDA

Cserkúti Péter, BME - AAIT

Page 53: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

53

Kódgenerálás előnyei

� Tervezni kell

� A kód legalábbis hasonlítani fog a tervre

� Sok mechanikus munkától kímélhet meg

� Egységes, minta alapú megoldások a teljes rendszerben

� A kód és terv szinkronban tartása esetén nagyon erős eszköz (felelősség, kövspec.)

Cserkúti Péter, BME - AAIT

Skeleton generálás

Minták alkalmazása(minták alapján teljes kódrészek)

Mennyire legyen „okos” a generátor?

Kódgenerálási alapelvek

Cserkúti Péter, BME - AAIT

Page 54: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

54

Egyirányú kódgenerálás

Visio, XDE

� A terv sosincs’ kész

� A változások követése nehézkes� A kód felülíródik vagy nem konzisztens a tervvel

� A szinkron a terv és a kód között megoldható de nem biztosítható

☺ Van terv

☺ Ha teljesen kész a terv, akkor jó

Cserkúti Péter, BME - AAIT

Szinkronizáció

XDE, Visio, VS (reverse engineering)

� Nem válik szét a fejlesztő és a tervező

� Sérül: a terv az elsődleges példány (baj?)� Nincs master példány

� A módosítások követése nehéz

☺ Kis projektek esetén működhet� A fejlesztő és tervező ugyanaz a személy

☺ Valódi szinkron a terv és kód között

Cserkúti Péter, BME - AAIT

Page 55: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

55

Inkrementális kódgenerálás

Orcas

� Kis projektekhez drága

� A fejlesztőknek meg kell szokni

☺ A terv az elsődleges példány

☺ A módosítások szigorúan egy irányúak

☺ Sablon alapú megoldások, minták alkalmazása

☺ Egyszerű módosítás

Cserkúti Péter, BME - AAIT

Cél

• Fejlesztők csereszabatosak, és

• kód áttekinthető, egységes

legyen(ek)

Fejlesztési szabvány

Pl.elnevezési konvenciókminta kódok (pl. exception kezelés)

A generált kód fejlesztési alapelveiCserkúti Péter, BME - AAIT

Page 56: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

56

Napi munkafázisok – fejlesztésDevelop

� Készül az új kód

� A fejlesztő dolgozik a saját gépén

Develop(fejlesztés)

Specify(specifikálás)

módosítottés új kód

módosított és újkövetelmények

Cserkúti Péter, BME - AAIT

Napi munkafázisok – bejelentésCheck-in

� Az elkészült munkadarab integrációja a szoftver aktuális állapotába

� Változás!� tehát változáskezelést kell

alkalmazni

� forráskód-kezelő

� szabályok

Develop(fejlesztés)

Check-in(beadás)

Specify(specifikálás)

aktuálisállapot

módosítottés új kód

módosított és újkövetelmények

Cserkúti Péter, BME - AAIT

Page 57: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

57

Napi munkafázisok – buildBuild

� A szoftver aktuális állapotának leképezése telepíthető termékké

� Ha a projekt elkészült, ennek az eredményét adjuk ki a megrendelőnek

Build(elkészítés)

Develop(fejlesztés)

Check-in(beadás)

Specify(specifikálás)

aktuálisállapot

napibuild

módosítottés új kód

módosított és újkövetelmények

Cserkúti Péter, BME - AAIT

Napi munkafázisok – tesztelésTest

� A termék aktuális állapotának összevetése� a követelményekkel

� általános elvárásokkal

� A visszajelzéseket rögzítjük

Build(elkészítés)

Develop(fejlesztés)

Check-in(beadás)

Test(tesztelés)

Specify(specifikálás)

aktuálisállapot

napibuild

hibák,vissza-jelzésekmódosított

és új kód

módosított és újkövetelmények

Cserkúti Péter, BME - AAIT

Page 58: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

58

Visszacsatolás

� A fejlesztést természetesen befolyásolják a bejelentett hibák és egyéb észrevételek is

Build(elkészítés)

Develop(fejlesztés)

Check-in(beadás)

Test(tesztelés)

Specify(specifikálás)

aktuálisállapot

napibuild

hibák,vissza-jelzésekmódosított

és új kód

módosított és újkövetelmények

Cserkúti Péter, BME - AAIT

A napi ciklusA teljes kép

� A csapat tagjai konkurensen hajtják végre az egyes fázisokat

Build(elkészítés)

Develop(fejlesztés)

Check-in(beadás)

Test(tesztelés)

Specify(specifikálás)

aktuálisállapot

napibuild

hibák,vissza-jelzésekmódosított

és új kód

módosított és újkövetelmények

Cserkúti Péter, BME - AAIT

Page 59: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

59

Mikor ágaztassunk el?

� Ha szükség van rá, mert

� Inkompatibilis házirend

� Termék kiadása

� Új funkciók fejlesztése

� Ha egy ág befagyasztására van szükség

� Tesztelési okok

� Termék kiadása

Cserkúti Péter, BME - AAIT

Elágaztatás – alapok

� Főág (mainline) modell

� A fejlesztők a főágban vagy egy adott funkció fejlesztési ágában tevékenykednek

� A kiadott termékverziók ágában csak kritikus hibajavítások történnek

főág

V1.0

Új technológia próbaág

Cserkúti Péter, BME - AAIT

Page 60: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

60

Változások propagálása

� A változtatásokat lehetőleg az elágaztatás óta legkevesebbet módosult ágban tegyük meg

� Propagáljunk sűrűn és a lehető legkorábban

� Az összefésülést mindig a megfelelő tudással bíró ember végezze (vezető vagy senior fejlesztő)

Cserkúti Péter, BME - AAIT

A jó forráskódkövető rendszer

� Támogatja az elágaztatást (branching)

� Támogatja a háromutas összefésülést (three way merge)

� Integrálható a fejlesztők által használt környezetbe

� Nincs „útban”

Cserkúti Péter, BME - AAIT

Page 61: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

61

Az elkészült kód beadásaCheck-in

� Az elkészült munkadarabok kódjának elhelyezése a forráskód kezelő rendszerbe� Csak a forrásfa házirend

feltételeinek megfelelő kód

� A forráskód-kezelő nem biztonsági mentésre való!

Build(elkészítés)

Develop(fejlesztés)

Check-in(beadás)

Test(tesztelés)

Specify(specifikálás)

aktuálisállapot

napibuild

hibák,vissza-jelzésekmódosított

és új kód

módosított és újkövetelmények

Cserkúti Péter, BME - AAIT

A beadás lépései

� Mások változásainak szinkronizálása

� Build a fejlesztő gépén

� Fejlesztői regresszióteszt (elrontott-e valamit a szinkronizálás)

� Kódellenőrzés (code review)

� Beadás

� Társ-build (buddy-build)

� Hibanyilvántartás frissítése

Cserkúti Péter, BME - AAIT

Page 62: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

62

A termék megépítéseBuild

� A megépítés során a forráskód futtatható bináris állományokká alakul

Build(elkészítés)

aktuálisállapot

hibák,vissza-jelzésekmódosított

és új kód

módosított és újkövetelmények

Develop(fejlesztés)

Test(tesztelés)

Specify(specifikálás)

napibuild

Check-in(beadás)

Cserkúti Péter, BME - AAIT

Miért kell build környezet?

� Konzisztens fordítási beállítások az egész forrásfára

� Bármikor byte-helyesen reprodukálható eredmény

� A forrásfa tetszőleges al-fájának megépítése

� A fejlesztők saját gépén megépíthető legyen a termék

� Teljesen automatizált (telepítőkészletet produkál) –utólagos telepítőkészlet

Cserkúti Péter, BME - AAIT

Page 63: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

63

A build fő fázisai

� Build� A forráskódból a bináris állományok elkészítése

� Eredménye a bináris-fa

� Utó-build (postbuild)� A bináris állományok utófeldolgozása a bináris-fából

� Telepítőkészlet készítése

� Build Verification Test (BVT)� Az elkészült termék alapfunkcióinak ellenőrzése

Cserkúti Péter, BME - AAIT

A build típusai

� Minden egyes build több platformra készülhet

� Pl. x86, ia64, amd64, arm

� Az egyes platformokon belül legalább kétfélét készítünk:

� Checked (debug) : teljes debug-info

� Free (release) : a debug info csak a globálisokat és a függvénydefiníciókat tartalmazza

Cserkúti Péter, BME - AAIT

Page 64: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

64

A kiadások verziói

� A termék verziószáma mindig tartalmazza a build-számot:� Major.minor.build.serial

� Pl. 2.5.1018.1

� A build-szám minden nap más

� A serial az egy napon belüli build-eket különbözteti meg

� A napi build ideális szinkronizálási pont a másnapi munka elkezdéséhez

� Ne feledjük: ha egyszer kiadtunk valamit, az örökké él

Cserkúti Péter, BME - AAIT

1. Mindig kérdezd meg:

Mit akarok mindenképpen elérni?

Mit tudok tenni, hogy a projekt úton maradjon?

2. Minden munka ami nem javítja a terméket, kidobott idő

3. A projekt vezetés feladata az akadályok elhárítása a fejlesztők elől

4. Hibajavítás azonnal !

5. Minden szabály legyen csak útmutatás

6. Mindig a valódi problémán kell dolgozniCserkúti Péter, BME - AAIT

Page 65: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

65

8. Sose vállalj olyan határidőt, amit tudod, hogy nem tudsz teljesíteni

9. Ne hagyd, hogy a megfelelni vágyás veszélyeztesse a projektet

10. Ha Te vagy a felelős akkor viselkedj úgy

11. Nincs 10 perces feature vagy bugfix

12. Csak olyan riportot kérj, ami megéri a fáradtságot

13. Post-mortem elemzésből nagyon sokat lehet tanulni, csapatot építeni

14. Tervezd úgy a megbeszéléseket, hogy megérje őket megtartani Cserkúti Péter, BME - AAIT

15. A megbeszélés előtt tudd, hogy mit akarsz elérni és ahhoz mi kell – majd érd el!

16. Ne hagyd, hogy az időterv irányítsa a projektet vagy demoralizálja a csapatot

17. Legyen az időterv elég agresszív a fókuszhoz, de teljesíthető

18. Néhány havonta mindenki tanuljon meg valami újat

19. Amint tudod, hogy baj van, rögtön cselekedj !

Cserkúti Péter, BME - AAIT

Page 66: SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS ... · 10/4/2012 1 SZOFTVERFEJLESZTÉSI PROJECTEK MENEDZSMENTJE ÉS SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Cserkúti Péter, BME - AAIT

10/4/2012

66

22. Biztosítsd, hogy mindenki tudja, milyen nagyon nagyonnehéz bug mentes kódot írni

23. Ha valaki azt mondja, hogy nem lehet, biztosan téved –csak akarni kell

24. Feature-t akkor szállíts, ha minőségi25. Mindenki úgy nézze a terméket mint a végfelhasználó26. A közösen felhasználható kód élvezzen némi prioritást

(erőforrás!)27. Ha a projekt csúszik akkor valami gond van. Nem (csak)

többet kell dolgozni, hanem meg kell találni az okokat.

Cserkúti Péter, BME - AAIT

28. A több munka nem jelent jobb produktivitást

29. A hétvége a családé!

30. Gondolkozz többet, dolgozz kevesebbet!

31. A vezetők a csapat tagja, nem felsőbbrendűek

32. Csak az nem hibázik, aki nem dolgozik

Cserkúti Péter, BME - AAIT