A szoftverfejlesztési menedzsment ( eng. Software project management ) a projektmenedzsment egy speciális típusa , amelyen belül a szoftverfejlesztési projektek tervezése, nyomon követése és ellenőrzése történik . A szoftverfejlesztési projekt menedzselésének kulcsa a megfelelő fejlesztési módszer kiválasztása.
A XX. század 60-as és 70-es éveiben a számítógépek teljesítményének rohamos növekedése miatt a segítségükkel megoldható problémák egyre nehezebbé váltak. Ezért nagyobb projektekre volt szükség , amelyek magukban foglalták több ember munkájának koordinálását és sokkal több kód írását . Az ilyen projektek menedzselésére használt módszereket azonban úgy alakították ki, hogy megfeleljenek a sokkal kisebb projektek kihívásainak. A szükséges módszertan hiánya rengeteg sikertelen projekthez vezetett. A helyzet jobb megváltoztatására tett kísérletek a fejlesztési folyamat új modelljének megalkotásához vezettek , amely inkább arra összpontosít, hogy a végső szoftvertermék megfeleljen a vevő eredeti követelményeinek .
A sikertelen projektekről szóló tanulmányok kimutatták, hogy a kudarc leggyakoribb okai a következők voltak: [1]
Azóta számos fejlesztést vezettek be a már meglévő ( iteratív megközelítés ) és teljesen új ( tesztvezérelt fejlesztés ) irányítási szoftverfejlesztési módszerekhez. Napjainkban azonban megfigyelhető az a tendencia, hogy a vízesés modellről egy ciklikus modellre térnek át , amely utánozza a szoftverfejlesztés szakaszait .
A GOST 19 "Egységes szoftverdokumentációs rendszer" [2] és a GOST 34 "Az automatizált rendszerek fejlesztésének szabványai" [3] a szoftverfejlesztés következetes megközelítésére összpontosít. A szabványoknak megfelelő fejlesztés szakaszosan történik, amelyek mindegyike szigorúan meghatározott munka végrehajtásával jár. Ezen GOST-ok szigorú betartása kaszkádmodellhez vezet. Ezen szabványok alapján az oroszországi kormányzati megrendelésekhez szoftverrendszereket fejlesztenek ki.
Ezt a modellt az 1980-as évek közepén fejlesztette ki a Carnegie Mellon Egyetem Szoftvermérnöki Intézete , hogy referenciamodellt hozzon létre a szoftverfejlesztés megszervezéséhez. Ennek alapja a szervezet bizonyos követelményeknek való megfelelésének ellenőrzése és a szoftverfejlesztési folyamat érettségi szintjének meghatározása.
Az egyesített folyamatot a Rational Software fejlesztette ki az UML kiegészítéseként . A RUP modell egy absztrakt általános folyamatot ír le, amely alapján egy szervezetnek vagy egy projektcsapatnak létre kell hoznia egy speciális, az igényeire összpontosító folyamatot.
A Microsoft Solutions Framework az iteratív fejlesztés köré épül. Az MSF sajátossága, hogy nagy figyelmet fordítanak egy hatékony és bürokratikus csapat kialakítására.
A Személyes Szoftverfolyamat meghatározza a fejlesztő kompetenciakövetelményeit, hogy elsajátíthassák a Team Software Processhoz szükséges készségeket. A csapatszoftver-folyamat a személyes szoftverfolyamattal kombinálva 3-20 fős önállóan irányított csapatokra támaszkodik. A csapatoknak:
Az összes agilis modell alapötlete az, hogy a szoftverfejlesztési folyamat adaptív legyen. Céljuk, hogy a folyamatok és eszközök helyett az emberekre és interakcióikra összpontosítsanak. Minden rugalmas modell az iteráción, az inkrementalitáson, a csapat önmenedzselésén és a folyamatok alkalmazkodóképességén alapul.
A szoftverfejlesztési projekt menedzselésének folyamata más, specifikusabb folyamatokat foglal magában, amelyek bizonyos üzleti döntések meghozatalát célozzák. Sok közülük más típusú projektekben is alkalmazható. Például:
Általánosságban elmondható, hogy a szoftverfejlesztési menedzsment, amelynek számos kölcsöne van a projektmenedzsmenttől, alkalmazható a hagyományos menedzsment módszereire is . Az iparág egyedisége miatt azonban a szakemberek anyaggyártásban felhalmozott és például a PMI PMBOK szabványban megfogalmazott tapasztalata kevéssé járul hozzá a szoftverprojektek menedzselésének sikeréhez. Sokféle vélemény létezik arról, hogy egy szoftverfejlesztési projektmenedzsernek milyen tudással és képességekkel kell rendelkeznie. Például a híres amerikai informatikus, John Reynolds ezt írta:
Egyesek azt állítják, hogy lehetséges a szoftverek létrehozása programozási ismeretek nélkül is . Úgy tűnik, hogy ez a bizalom abból a tévhitből fakad, hogy a szoftverfejlesztés a termelés egy formája. De a termelés ismétlődő azonos objektumok létrehozása, míg a szoftvergyártás egyedi objektumok létrehozása, vagyis a kreativitás egyik formája . Így a szoftvergyártás hasonló a publikációhoz – egy szoftverfejlesztési menedzser, aki nem tud kódolni, olyan, mint egy újságszerkesztő, aki nem tud írni.
Eredeti szöveg (angol)[ showelrejt] "Egyesek azzal érvelnek, hogy a szoftvergyártást programozási képesség nélkül is lehet irányítani. Úgy tűnik, ez a hiedelem abból a téves nézetből fakad, hogy a szoftvergyártás a gyártás egy formája. A gyártás azonban azonos objektumok ismételt megalkotása, míg a szoftvergyártás egyedi tárgyakat, azaz a teljes folyamat a tervezés egy formája.Törött link