Ledelse af softwareudvikling

Softwareudviklingsledelse ( eng.  Software project management ) er en særlig type projektledelse , inden for hvilken planlægning, sporing og kontrol af softwareudviklingsprojekter finder sted . Nøglen til at styre et softwareudviklingsprojekt er at vælge den rigtige udviklingsmetode.

Vigtigste forskelle fra andre typer projektledelse

Historie

Årsager

På grund af den hurtige stigning i computerens kraft i 60'erne og 70'erne af det XX århundrede blev de problemer, der kunne løses med deres hjælp, vanskeligere. Derfor var der behov for større projekter , som omfattede koordinering af flere menneskers arbejde og skrivning af meget mere kode . Metoderne, der blev brugt til at styre sådanne projekter, blev imidlertid designet til at imødekomme udfordringerne ved meget mindre projekter. Manglen på den nødvendige metode har ført til et stort antal fejlslagne projekter. Forsøg på at ændre situationen til det bedre førte til oprettelsen af ​​en ny model af udviklingsprocessen , der fokuserede mere på det endelige softwareprodukts overensstemmelse med kundens oprindelige krav .

Videreudvikling

Undersøgelser af mislykkede projekter har vist, at de mest almindelige årsager til fiasko var: [1]

  1. Urealiserbare eller uklare projektmål
  2. Fejlberegning af nødvendige ressourcer
  3. Forkert definerede systemkrav
  4. Manglende bevidsthed hos projektlederen om den nøjagtige status for projektet
  5. Ukontrollerede risici
  6. Svagt samspil mellem kunde, udvikler og bruger
  7. Bruger for nye, ustabile teknologier
  8. Manglende evne til at håndtere kompleksiteten i projektet
  9. Svag projektledelse
  10. Økonomiske restriktioner

Siden da er flere forbedringer af allerede eksisterende ( iterativ tilgang ) og helt nye ( testdrevet udvikling ) metoder til styring af softwareudvikling blevet introduceret. Men i dag er der en tendens til at gå fra en vandfaldsmodel til en cyklisk model , der efterligner stadierne af softwareudvikling .

Grundlæggende softwareudviklingsmetoder

GOSTs

GOST 19 "Unified system of software documentation" [2] og GOST 34 "Standards for the development of automated systems" [3] er fokuseret på en konsekvent tilgang til softwareudvikling. Udvikling i overensstemmelse med disse standarder udføres i etaper, som hver involverer implementering af strengt defineret arbejde. Streng overholdelse af disse GOST'er fører til en kaskademodel. Baseret på disse standarder udvikles softwaresystemer til offentlige ordrer i Rusland.

SW-CMM

Denne model blev udviklet i midten af ​​1980'erne af Software Engineering Institute ved Carnegie Mellon University for at skabe en referencemodel til organisering af softwareudvikling. Det er baseret på kontrol af organisationens overholdelse af visse krav og bestemmelse af modenhedsniveauet for softwareudviklingsprocessen.

RUP

The Unified Process blev udviklet af Rational Software som et supplement til UML . RUP-modellen beskriver en abstrakt generel proces, på grundlag af hvilken en organisation eller et projektteam skal skabe en specifik specialiseret proces med fokus på dens behov.

Læger uden Grænser

Microsoft Solutions Framework er bygget op omkring iterativ udvikling. Et særligt træk ved Læger uden Grænser er den store opmærksomhed på at skabe et effektivt og ikke-bureaukratisk team.

PSP /TSP

Den personlige softwareproces definerer udviklerens kompetencekrav, så de kan tilegne sig de nødvendige færdigheder til teamsoftwareprocessen. Team Software Process i kombination med Personal Software Process er afhængig af selvstyrende teams på 3-20 personer. Holdene skal:

Agile

Grundtanken bag alle agile modeller er, at softwareudviklingsprocessen skal være adaptiv. De sigter mod at fokusere på mennesker og deres interaktioner frem for processer og værktøjer. Alle fleksible modeller er baseret på iteration, inkrementalitet, team-selvledelse og procestilpasning.

Relaterede processer i projektledelse

Processen med at styre et softwareudviklingsprojekt omfatter andre, mere specifikke processer, der tager sigte på at træffe bestemte forretningsbeslutninger. Mange af dem kan anvendes til andre typer projekter. For eksempel:

Planlægning, sporing og kontrol af projektet

Filosofi

Generelt kan softwareudviklingsledelse, som har mange lån fra projektledelse, anvendes på metoder fra traditionel ledelse . Men på grund af branchens unikke karakter bidrager erfaringen fra fagfolk, der er akkumuleret i materialeproduktion og angivet, for eksempel i PMI PMBOK-standarden , kun lidt til succes med at styre et softwareprojekt. Der er mange meninger om, hvilken viden og færdigheder en softwareudviklingsprojektleder bør have. For eksempel skrev den berømte amerikanske computerforsker John Reynolds:

Nogle hævder, at det er muligt at styre skabelsen af ​​software uden at have nogen programmeringsevner . Denne tillid synes at stamme fra den misforståelse, at softwareudvikling er en form for produktion. Men produktion er skabelsen af ​​gentagne identiske objekter, mens softwareproduktion er skabelsen af ​​unikke objekter, det vil sige, det er en af ​​formerne for kreativitet . Softwareproduktion er således beslægtet med udgivelse  - en softwareudviklingsleder, der ikke kan kode, er som en avisredaktør, der ikke kan skrive.

Originaltekst  (engelsk)[ Visskjule] "Nogle hævder, at man kan styre softwareproduktion uden at kunne programmere. Denne tro synes at opstå ud fra den fejlagtige opfattelse, at softwareproduktion er en form for fremstilling. Men fremstilling er den gentagne konstruktion af identiske objekter, mens softwareproduktion er konstruktion af unikke objekter, dvs. hele processen er en form for design.

Se også

Noter

  1. IEEE Arkiveret 21. december 2011 Wayback Machine- artikel af Robert N. Charette på engelsk "Why Software Fails"
  2. [1] Arkivkopi dateret den 24. november 2010 på Wayback Machine ESPD på FSUE Standartinforms hjemmeside
  3. [2] Arkivkopi af 11. april 2012 på Wayback Machine GOST 34 på rugost.com

Litteratur

Links

Ødelagt link