10 grunner til at så mange programvareprosjekter mislykkes
-BBC Digital Media Initiative (DMI) mislyktes på grunn av styringssvikt og forsinket levering. Det var et prosjekt alle hadde sett øynene på fordi det var ment å digitalisere BBCs produksjon.
-En rekke årsaker forårsaket feilen i FBIs Virtual Case File (VCF), men urealistiske forventninger var en av hovedårsakene. Prosjektet kastet bort rundt 104,5 millioner dollar fra skattebetalernes penger.
-US Feds nye system gikk på en smell, den første natten den gikk live og leverte 28 milliarder dollar som renter til feil medlemsbanker.
Hvordan kan godt planlagte programvareprosjekter mislykkes? Var de virkelig godt planlagt? Eller det trodde de. Dessverre nok mislykkes mange prosjekter; faktisk har det blitt en så vanlig hendelse at folk nesten ikke snakker om det, diskuterer det, bortsett fra de som hadde måttet gå gjennom fiaskoen. I 2013 avslørte Innotas, et prosjektledelsesselskap at rundt 50 % av virksomhetene de undersøkte hadde prosjektledelsessvikt. Nå 4 år senere er ikke historien mye annerledes. Hva får programvareprosjekter til å mislykkes? Vi har utforsket noen av årsakene basert på våre observasjoner, hva tror du?
1. Unaligning av forretningsmål med prosjektresultater
Du kan si at prioriteringene er forskjellige for ulike selskaper. For noen bedrifter er det fokus på å nå forretningsmål, mens for andre er det å levere prosjektet i tide og innenfor budsjett. Dette er bilturen hvor de tar feil vei og går seg vill. Hvis både forretningsmål og prosjektresultater er på linje med hverandre, er sjansen stor for at programvaren ikke vil mislykkes. Men å gjøre dette er ikke en lett oppgave i det hele tatt.
2. Ikke i stand til å forstå hva du skal prioritere
Å unnlate å prioritere hvilke prosjekter som er viktige. Lederen for prosjektledelsen setter seg sammen med interessentene og andre autoritative ledere i selskapet for å bestemme prioriteringene til prosjektene. De vil da fordele ressursene og personellet, og vurdere budsjett og tid. Noen ganger går ting galt mens man tilpasser forretningsmålene med prosjektresultater, og dette kan også være fordi de ikke klarte å prioritere riktige.
3. Vage krav
Et av de første trinnene i enhver programvareutviklingssyklus er å forstå kundens krav. Med mindre kravene er tydelig kartlagt og godkjent av klienten, kan det hende at dere begge ikke er der
samme side på slutten av utviklingssyklusen.
4. Tidsbegrensninger
Tidsbegrensninger hindrer ofte utviklere i å få prosjektklarhet fra klienten, og dette kan føre til mye omarbeiding og mer ressursallokering, samtidig som det reflekterer negativ omtale for selskapet. Så rett før du faktisk setter deg ned for å utvikle et prosjekt, er det viktig å gjøre en kravanalyse og sørge for at alle, inkludert oppdragsgiver, er klare på hvordan sluttproduktet vil se ut.
5. Dårlig tidsplan estimat
Utviklere er mennesker og det er begrenset hvor mange timer de kan jobbe i løpet av en dag. Planlegg tiden på en logisk måte slik at prosjektet blir fullført som forventet og utvikleren fortsatt er i live for å ta på seg et annet prosjekt.
6. Ikke klar til å skyve fristen
Prosjektlederne og interessentene må være hensynsfulle når de setter utviklerteamet i arbeid. Ja, en ekstra arbeidsdag øker utgiftene, men det vil være verdt det i lengden.
7. Å gi en merkelig urealistisk tidsskala vil bare forsinke prosjektet
I motsetning til hva interessenter og prosjektledere tror, vil det å sette urealistiske tidsskalaer bare gi store tap for selskapet. Planlegg alltid prosjektet på en slik måte at forventningene er rimelige, avhengig av arbeidsmengden.
8. Kommunikasjonsgap
Dårlig kommunikasjon er årsaken til mange feil i livet. Faktisk er det så viktig for alle som er tilknyttet et prosjekt at det å gjennomgå profesjonelle kurs om mellommenneskelige ferdigheter definitivt vil være et pluss. Kommunikasjon og meldinger må deles riktig, fordi motstridende synspunkter og meninger kan drepe et prosjekt selv før det er klart til å fly. Prosjektleder har ansvar for å stå som formidler mellom alle tilknyttet teamet. Sørg for at meldingene når alle, spesielt når det er noe som angår prosjektresultatet.
9. Ikke få de rette folkene til jobben
Uhensiktsmessig bemanning er en annen årsak til prosjektsvikt. Du har et team med gode utviklere. Men tror du de er «one size fits all»-typen? Kan de håndtere alle slags prosjekter som er tildelt dem? Du må kanskje tildele folk avhengig av deres ferdigheter. Riktig sett med mennesker, selv om de er dyre, vil vise seg å være gunstig. Tross alt må kvaliteten på prosjektet ikke lide. Ineffektive eller middelmådige utviklere vil forsinke prosjektet mens en 10x-utvikler vil holde prosjektet i hånden.
10. Dårlig testing
Programvaretestene mislykkes. Etter at alt er gjort, innser du at det er et kodingsproblem som ennå ikke er fikset. Hvis du ikke har milepæler som styrer kodeutviklingsfasen, kan prosjektet mislykkes. Du kan starte automatiseringstesting der testeren skriver skript og bruker en annen programvare for å teste de forskjellige funksjonene til applikasjonen/programvaren. De forskjellige typene programvaretesting er
- Enhetstesting
- Integrasjonstesting
- Funksjonstesting
- Systemtesting
- Stresstesting
- Ytelsestesting
- Brukbarhetstesting
- Aksepttesting
- Regresjonstesting
- Beta-testing
Det er tidkrevende, men absolutt verdt innsatsen og tiden. Gjennom testing kan du forstå kvaliteten på prosjektet; det er en slags verifiserings- og valideringsprosess.
Konklusjon
Det er viktig å forstå prosjektet først og deretter allokere ressurser og arbeidskraft. Gi dem tilstrekkelig tid til å jobbe med prosjektet, og ressurser når og når de trenger det. Følg de ovennevnte tipsene, og du vil sannsynligvis treffe lønnssmuss.
Et siste ord: Sørg for at systemkravene er definert og nedfelt på riktig måte. Du har ikke råd til å ha hikke med systemet når programvaren er klar til å rulle.
Litt mer informasjon….
- 10 grunner til at programvareprosjekter mislykkes
- De vanligste årsakene til at programvareprosjekter mislykkes
Flickr.com/ Patrizio Cuscito