Hvorfor forsinkelser i programvareprosjekt ikke bør ignoreres

( 23. okt 2020)

En titt på de mest fremtredende utfordringene teamene står overfor i programvarelevering – og forslag til hvordan de kan håndtere disse problemene for å holde prosjekter på sporet.

Når dagens virksomheter løper for å digitalisere, er programvareutviklingsteam under økende press for å levere nye funksjoner i høy hastighet . Som et resultat blir forsinkelser i programvareprosjekter uunngåelige. Det blir et problem når disse forsinkelsene blir behandlet som en «normal» del av livssyklusen for programvareutvikling. Selv om en enkelt forsinkelse ikke nødvendigvis gir grunn til større bekymring, bør forsinkelser som skjer igjen og igjen tas på alvor, da de ofte er et symptom på en større og farligere grunnårsak.

Programvareprodukt utvikling er et komplekst, dynamisk system. I et godt balansert system, i takt med at nye forespørsler blir lagt til produktets etterspørsel, blir de eksisterende forespørslene omgjort til funksjoner som er tilgjengelige for kunden. Når tempoet på innkommende forespørsler er høyere enn tempoet for utgående funksjoner, kommer systemet ut av balanse. Hvis vi ignorerer det, vil denne ubalansen fortsette og til slutt føre til systemfeil.

Her er noen vanlige årsaker jeg ofte ser i praksis:

Planlegging som er for optimistisk

Vi er vanligvis for optimistiske av natur og overvurderer hvor mye vi kan gjøre i en bestemt tidsperiode. Dette er ikke nødvendigvis en dårlig ting. Men hvis det skjer ofte, viser det at tidsfristene ikke tas på alvor. Et viktig smidig prinsipp er at bare programvareutviklerne er ansvarlige og ansvarlige for anslaget. Enda mer er det en god praksis for hvert smidige team å spore forskjellen mellom arbeidet som er forpliktet til å bli utført i en sprint og det faktiske arbeidet som er utført etter sprinten. Målet er å observere fremdriften på hvor nøyaktig teamet spår over tid.

Med utsikt over kompleksiteten i implementeringen

Når du planlegger de nye sprintfunksjonene, er det lett å overse kompleksiteten som oppstår under implementeringen. Ofte er imidlertid den oversett kompleksiteten et direkte resultat av en kompleks programvaredesign. Når programvaren har en kompleks struktur, og det ikke er noen klare mønstre for hvordan programvaremoduler er avhengige av hverandre, er det umulig å ha en god mental forståelse av hvordan programvaren fungerer. Dette gjør det umulig å planlegge realistisk. Dessverre er dette ofte ikke lett å løse; det krever imidlertid absolutt å undersøke levedyktige måter å renovere og forbedre programvaren på.

Uventede feil med høy prioritet

En produksjonsfeil (et funksjonsfeil, ytelses- eller sikkerhetsproblem) har absolutt høy prioritet og må løses umiddelbart. Men når slike problemer ofte kommer i veien for å bygge nye funksjoner, er det et alarmerende tegn på at noe må forbedres. Dette er et symptom på betydelig teknisk gjeld (dvs. kodekvalitetsproblemer) akkumulert over tid. Å redusere denne tekniske gjelden bør ha høy prioritet; ellers er det høyst sannsynlig at systematferden og produktiviteten i utviklingen vil forverres ytterligere.

Venter på innspill fra et annet team

Programvareprodukter er vanligvis bygget av flere team, hvor ett team produserer innspill som kreves av et annet. Arbeidet skal fordeles mellom teamene på en måte som gir jevn informasjonsflyt i systemet. Forsinkelser forårsaket av å vente på andre lag indikerer at det er nødvendig med en bedre teamorganisasjon for å minimere avhengighet mellom dem. Å ha en god produktleder er sentralt her, noen som overvåker fremdriften for hele produktet og setter prioriteringer effektivt.

Denne listen er absolutt ikke uttømmende, og det kan være mange andre grunner til forsinkelser i programvarelevering. Ikke desto mindre er hyppige forsinkelser et tegn for at du bremser litt, finner årsaken til problemet og får systemet tilbake i balanse.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *