Hvorfor softwareprojektforsinkelser ikke bør ignoreres

( 23. oktober 2020)

Et kig på de mest fremtrædende udfordringer, hold står over for i softwarelevering – og forslag til, hvordan de kan håndtere disse problemer for at holde projekter på sporet.

Når dagens virksomheder kæmper for at digitalisere, er softwareudviklingsteam under stigende pres for at levere nye funktioner i høj hastighed . Som et resultat bliver forsinkelser af softwareprojekter uundgåelige. Det bliver et problem, når disse forsinkelser behandles som en “normal” del af softwareudviklingens livscyklus. Mens en enkelt forsinkelse muligvis ikke nødvendigvis giver anledning til større bekymring, bør forsinkelser, der sker igen og igen, tages alvorligt, da de ofte er et symptom på en større og farligere grundårsag.

Softwareprodukt udvikling er et komplekst, dynamisk system. I et velafbalanceret system, når nye anmodninger føjes til produktets efterslæb, i samme tempo, omdannes de eksisterende anmodninger til funktioner, der er tilgængelige for kunden. Når tempoet for indgående anmodninger er højere end tempoet for udgående funktioner, kommer systemet ud af balance. Hvis vi ignorerer det, vil denne ubalance udvikle sig yderligere og i sidste ende føre til en systemfejl.

Her er nogle almindelige årsager, som jeg ofte ser i praksis:

Planlægning, der er for optimistisk

Vi er normalt for optimistiske af natur og overvurderer, hvor meget vi kan gøre i en bestemt tidsperiode. Dette er ikke nødvendigvis en dårlig ting. Men hvis det sker ofte, viser det at overholdelse af deadlines ikke tages alvorligt. Et vigtigt smidigt princip er, at kun softwareudviklerne er ansvarlige og ansvarlige for estimering af indsatsen. Endnu mere er det en god praksis for hvert smidige hold at spore forskellen mellem det arbejde, der er forpligtet til at blive udført i en sprint, og det faktiske arbejde, der udføres efter sprinten. Målet er at observere fremskridt med, hvor nøjagtigt teamet forudsiger over tid.

Overser kompleksiteten af ​​implementeringen

Når du planlægger de nye sprintfunktioner, er det let at overse de kompleksiteter, der opstår under implementeringen. Ofte er den oversete kompleksitet imidlertid et direkte resultat af et komplekst softwaredesign. Når softwaren har en kompleks struktur, og der ikke er klare mønstre for, hvordan softwaremoduler afhænger af hinanden, er det umuligt at have en god mental forståelse af, hvordan softwaren fungerer. Dette gør det umuligt at planlægge realistisk. Desværre er dette ofte ikke let at løse; det kræver dog bestemt at undersøge levedygtige måder at renovere og forbedre softwaren på.

Uventede fejl med høj prioritet

En defekt i produktionen (et funktionsfejl, ydeevne eller sikkerhedsproblem) har bestemt høj prioritet og skal løses med det samme. Men når disse slags problemer alt for ofte kommer i vejen for at opbygge nye funktioner, er det et alarmerende tegn på, at noget skal forbedres. Dette er et symptom på betydelig teknisk gæld (dvs. kodekvalitetsproblemer) akkumuleret over tid. At reducere denne tekniske gæld bør have høj prioritet; ellers er det meget sandsynligt, at systemets adfærd og produktiviteten i udviklingen yderligere forværres alvorligt.

Venter på input fra et andet team

Softwareprodukter bygges normalt af flere teams, hvor et hold producerer input, der kræves af et andet. Arbejdet skal fordeles mellem holdene på en måde, der muliggør en jævn informationsflow i systemet. Forsinkelser forårsaget af at vente på andre hold indikerer, at der er behov for en bedre holdorganisation for at minimere afhængigheder mellem dem. At have en god produktleder er centralt her, en person, der fører tilsyn med fremskridt med hele produktet og sætter prioriteter effektivt.

Denne liste er bestemt ikke udtømmende, og der kan være mange andre grunde til forsinkelser i leveringen af ​​software. Ikke desto mindre er hyppige forsinkelser et tegn på, at du sænker lidt, finder årsagen til problemet og får systemet i balance igen.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *