Software project management Áttekintés Miskolci Egyetem Általános Informatikai Tanszék PMAN /1
Miért szükséges? A software fejlesztési tevékenység Csoportmunkát igényel Jelentÿserÿforrásokat használ fel Határidÿ és költségfigyelést igényel Ellenérdek felek (felhasználók, fejlesztÿk, management) kommunikációját igényli Ezért a software fejlesztési project is management problémákat vet fel! Software project management (Áttekintés) PMAN /2
A software project sajátosságai A project management problémáinak megoldására léteznek már általános módszerek A software project eltérése a hagyományos mérnöki tevékenységektÿl A termék megfoghatatlan, nincsenek kézzelfogható jelei például az ütemezéstÿl való eltéréseknek. A software elÿállítási folyamat nem teljesen kidolgozott. A nagy software rendszerek gyakran egyediek, elÿzmény nélküliek. Ezért kell foglalkozni a software project management sajátosságaival Software project management (Áttekintés) PMAN /3
Fÿ tevékenységek Nincs általános gyakorlat - függ az adott project jellemzÿitÿl és az adott szervezet szokásaitól. Általában: Tervezet készítés (proposal) Project költség tervezés, költségfigyelés Tervezés és ütemezés Project ellenÿrzés és áttekintés Személyek kiválasztása, értékelése Jelentés készítés, bemutatás Kapcsolattartás a megrendelÿvel Software project management (Áttekintés) PMAN /4
A software management struktúrája Egy nagy szervezetben hasonló, mint más területeken, de az alárendeltek száma kisebb. Software project management (Áttekintés) PMAN /5
Csoport szervezÿdési módok Nagy csoport nem jó! (kevesebb mint 8 fÿ). Szervezÿdési módok: Informális "chief programmer" Software project management (Áttekintés) PMAN /6
Csoport szervezÿdési módok (folyt.) "chief programmer" típusú szervezet résztvevÿi vezetÿ programozó helyettese könyvtáros egyéb szakértÿk (idÿlegesen vagy állandóan) project adminisztrátor "Tool smiths" (eszköz készítÿ) dokumentum szakértÿ programnyelvi szakértÿ további beosztott programozók Software project management (Áttekintés) PMAN /7
Csoport szervezÿdési módok (folyt.) Problémák: Túlságosan függ a siker két embertÿl (vezetÿ programozó és helyettese). A sikert a vezetÿ programozó "viszi el'. A vezetÿ programozó nehezen illeszthetÿ be a hagyományos hierarchiába. Software project management (Áttekintés) PMAN /8
A programozó termelékenysége Nem mérhetÿ közvetlenül, pedig a költségeket alapvetÿen befolyásolja. Ami könnyen számítható: a forrássorok száma / programozó-hónap object kód mérete / programozó-hónap A fentieknél reálisabb mérÿszámok szükségesek! Software project management (Áttekintés) PMAN /9
A programozó termelékenysége (folyt.) Befolyásoló tényezÿk: A user interface komplexitása. A végfelhasználó részvétele a követelmény analízisben. Módszerek - de ez mellékhatás, a módszerek elsÿdleges célfüggvénye a minÿség javítása. A tényleges munkára fordítható idÿ hányad (20-30%). Software project management (Áttekintés) PMAN /10
Project tervezés Iterációs folyamat. A kezdeti terv / ütemezés megadott idÿnként felülvizsgálandó és módosítandó Fontos: "mérföldkövek", jól definiálható és ellenÿrizhetÿ project állapotok meghatározása. Problémák: A project céljai nem mindig egyértelm ek a fejlesztés kezdetén. Bizonyos célkit zések egymásnak ellentmondanak => opcionális célkit zések: ezek között választania kell a managementnek. Erre különbözÿ stratégiákat dolgoztak ki. Software project management (Áttekintés) PMAN /11
Project ütemezés Hasonló a feladat mint más gyártás ütemezés esetén, de több a bizonytalanság nehezen becsülhetÿ a részfeladatok idÿigénye kezelni kell a visszalépéseket Részfeladatok: Párhuzamosíthatók Függetlenek egymástól Az erÿforrások korlátozottak Software project management (Áttekintés) PMAN /12
Összetevÿk: Fejlesztési költség becslése hardware, software költségek utazási képzési adminisztrációs, m ködése személyi (bér és egyéb), ez a legnehezebben becsülhetÿ Software project management (Áttekintés) PMAN /13
Költség becslési technikák Boehm -> technikák: Algoritmikus Szakértÿi vélemény Analógia más fejlesztési projektekkel Parkinson törvénye (annyit költünk, amennyi rendelkezésre áll) Üzlet elnyerése Top-down Bottom-up Software project management (Áttekintés) PMAN /14
Algoritmikus technikák Számos kísérlet. Alapvetÿ probléma: ismerni kellene hozzá a végsÿ termék bizonyos adatait. Egy klasszikus modell: COCOMO Constructive Cost Model egyszer sített és továbbfejlesztett forma Software project management (Áttekintés) PMAN /15
Egyszer sített COCOMO modell Munkaráfordítás (programozó-hónapban) PN = a * (KDSI) b ahol KDSI: A forráskód mérete (1000 sorokban), a, b: konstansok Fejlesztési idÿ hónapokban: TDEV = 2.5 * (PN) c ahol c konstans Software project management (Áttekintés) PMAN /16
Egyszer sített COCOMO modell (folyt.) A konstansok tapasztalati értékei a feladat típusa szerint: Feladat típusa a b c Alkalmazói 2.4 1.05 0.38 Semi-detached 3 1.12 0.35 Rendszer (embedded) 3.6 1.2 0.32 Software project management (Áttekintés) PMAN /17
Továbbfejlesz bbfejlesztett COCOMO modell PM-hez szorzó tényezÿk az alábbiak alapján: Termék jellemzÿi: Megbízhatóság Adatbázis mérete Robusztusság Számítógép jellemzÿk: Futási idÿ határ Memória foglalás korlátja Fejlesztÿ hardware Fejlesztÿ software Software project management (Áttekintés) PMAN /18
Továbbfejlesz bbfejlesztett COCOMO modell (folyt.) Emberi jellemzÿk: Vezetÿk képességei Vezetÿk gyakorlata Operációs rendszer ismeret Programozók képességei Nyelvi (fejlesztÿ környezetbeli) gyakorlottság Project jellemzÿk: Metodológia Támogatottság Tervezettség Software project management (Áttekintés) PMAN /19