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ős erő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
Fejlesztési költség becslése Összetevők: 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