Řízení vývoje softwaru

Software development management ( angl.  Software project management ) je speciální typ projektového managementu , v rámci kterého probíhá plánování, sledování a kontrola projektů vývoje softwaru . Klíčem k řízení projektu vývoje softwaru je výběr správné metody vývoje.

Hlavní rozdíly od jiných typů projektového řízení

Historie

Příčiny

Vzhledem k rychlému nárůstu výkonu počítačů v 60. a 70. letech 20. století se problémy, které bylo možné s jejich pomocí vyřešit, staly obtížnějšími. Proto byly vyžadovány větší projekty , které zahrnovaly koordinaci práce více lidí a psaní mnohem více kódu . Metody používané k řízení takových projektů však byly navrženy tak, aby odpovídaly výzvám mnohem menších projektů. Nedostatek potřebné metodiky vedl k obrovskému počtu neúspěšných projektů. Pokusy o změnu situace k lepšímu vedly k vytvoření nového modelu vývojového procesu , zaměřeného více na shodu finálního softwarového produktu s původními požadavky zákazníka .

Další vývoj

Studie neúspěšných projektů ukázaly, že nejčastější příčiny neúspěchu byly: [1]

  1. Nerealizovatelné nebo nejasné cíle projektu
  2. Špatný výpočet požadovaných zdrojů
  3. Nesprávně definované systémové požadavky
  4. Nedostatečná informovanost projektového manažera o přesném stavu projektu
  5. Neřízená rizika
  6. Slabá interakce mezi zákazníkem, vývojářem a uživatelem
  7. Používání příliš nových, nestabilních technologií
  8. Neschopnost vyrovnat se se složitostí projektu
  9. Slabé projektové řízení
  10. Finanční omezení

Od té doby bylo zavedeno několik vylepšení již existujících ( iterativní přístup ) a zcela nových ( testem řízený vývoj ) metod řízení vývoje softwaru. Dnes však existuje tendence přejít od vodopádového modelu k cyklickému modelu , který napodobuje fáze vývoje softwaru .

Základní metody vývoje softwaru

GOST

GOST 19 "Jednotný systém dokumentace softwaru" [2] a GOST 34 "Normy pro vývoj automatizovaných systémů" [3] jsou zaměřeny na konzistentní přístup k vývoji softwaru. Vývoj v souladu s těmito standardy se provádí v etapách, z nichž každá zahrnuje provádění přesně definovaných prací. Přísné dodržování těchto GOST vede ke kaskádovému modelu. Na základě těchto standardů jsou vyvíjeny softwarové systémy pro vládní zakázky v Rusku.

SW-CMM

Tento model byl vyvinut v polovině 80. let Institutem softwarového inženýrství na Carnegie Mellon University za účelem vytvoření referenčního modelu pro organizaci vývoje softwaru. Je založena na kontrole dodržování určitých požadavků organizací a stanovení úrovně vyspělosti procesu vývoje softwaru.

RUP

Unified Process byl vyvinut společností Rational Software jako doplněk k UML . Model RUP popisuje abstraktní obecný proces, na jehož základě by měla organizace nebo projektový tým vytvořit konkrétní specializovaný proces zaměřený na její potřeby.

Lékaři bez hranic

Microsoft Solutions Framework je postaven na iterativním vývoji. Zvláštností Lékařů bez hranic je velká pozornost věnovaná vytvoření efektivního a nebyrokratického týmu.

PSP /TSP

Proces osobního softwaru definuje požadavky na kompetence vývojáře, aby mohli získat dovednosti nezbytné pro proces týmového softwaru. Týmový softwarový proces v kombinaci s osobním softwarovým procesem se opírá o samostatně řízené týmy o 3-20 lidech. Týmy musí:

Agilní

Základní myšlenkou všech agilních modelů je, že proces vývoje softwaru by měl být adaptivní. Jejich cílem je zaměřit se spíše na lidi a jejich interakce než na procesy a nástroje. Všechny flexibilní modely jsou založeny na iteraci, inkrementalitě, týmové samořízení a adaptabilitě procesů.

Související procesy v projektovém řízení

Proces řízení projektu vývoje softwaru zahrnuje další, specifičtější procesy zaměřené na přijímání určitých obchodních rozhodnutí. Mnohé z nich lze aplikovat i na jiné typy projektů. Například:

Plánování, sledování a řízení projektu

Filosofie

Obecně platí, že řízení vývoje softwaru, které má mnoho výpůjček z projektového řízení, lze aplikovat na metody tradičního řízení . Vzhledem k jedinečnosti tohoto odvětví však zkušenosti profesionálů nashromážděné ve výrobě materiálů a uvedené například ve standardu PMI PMBOK přispívají k úspěchu při řízení softwarového projektu jen málo. Existuje mnoho názorů na to, jaké znalosti a dovednosti by měl mít projektový manažer vývoje softwaru. Například slavný americký počítačový vědec John Reynolds napsal:

Někteří tvrdí, že je možné řídit tvorbu softwaru, aniž byste měli nějaké programátorské dovednosti . Zdá se, že tato důvěra pramení z mylné představy, že vývoj softwaru je formou výroby. Ale produkce je vytváření opakujících se identických objektů, zatímco softwarová výroba je vytváření jedinečných objektů, to znamená, že je to jedna z forem kreativity . Produkce softwaru je tedy podobná publikování  — manažer vývoje softwaru, který neumí kódovat, je jako redaktor novin, který neumí psát.

Původní text  (anglicky)[ zobrazitskrýt] "Někteří tvrdí, že lze řídit výrobu softwaru bez schopnosti programovat. Zdá se, že tato víra vychází z mylného názoru, že výroba softwaru je formou výroby. Výroba je však opakovaná konstrukce identických objektů, zatímco výroba softwaru je konstrukce unikátní předměty, tj. celý proces je formou designu.

Viz také

Poznámky

  1. IEEE archivováno 21. prosince 2011 Článek o Wayback Machine od Roberta N. Charettea v angličtině „Why Software Fails“
  2. [1] Archivní kopie ze dne 24. listopadu 2010 na Wayback Machine ESPD na webu FSUE Standartinform
  3. [2] Archivní kopie z 11. dubna 2012 na Wayback Machine GOST 34 na rugost.com

Literatura

Odkazy

Nefunkční odkaz