Det finns många oli­ka utveck­lings­me­to­der som används inom mjuk­va­ru- och web­b­ut­veck­ling. Någ­ra av de van­li­gas­te meto­der­na inkluderar:

  • Agil utveck­ling: Agil utveck­ling är en ite­ra­tiv och inkre­men­tell metod för mjuk­va­ru­ut­veck­ling som foku­se­rar på att leve­re­ra fun­ge­ran­de mjuk­va­ra snabbt och regel­bun­det. Agil utveck­ling kän­ne­teck­nas ofta av använd­ning­en av kor­ta utveck­lingscyk­ler, kän­da som “sprints”, där team arbe­tar med en spe­ci­fik upp­sätt­ning funk­tio­ner eller upp­gif­ter och sedan grans­kar och för­fi­nar sitt arbete.
  • Kan­ban: Kan­ban är en metod för att han­te­ra och för­bätt­ra arbets­pro­ces­ser. Den utveck­la­des ursprung­li­gen för till­verk­ning och har sedan dess anpas­sats för använd­ning i mjuk­va­ru­ut­veck­ling. I Kan­ban repre­sen­te­ras arbe­tet visu­ellt på en tav­la, med kolum­ner som repre­sen­te­rar oli­ka sta­di­er i arbets­pro­ces­sen och kort som repre­sen­te­rar enskil­da upp­gif­ter. Det­ta gör att tea­men kan se sta­tus för sitt arbe­te med en över­blick och göra juste­ring­ar efter behov.
  • Vat­ten­fall: Vat­ten­fall är ett lin­järt, sekven­ti­ellt till­vä­ga­gångs­sätt för mjuk­va­ru­ut­veck­ling. I Water­fall avslu­tas var­je steg i utveck­lings­pro­ces­sen innan man går vida­re till näs­ta steg. Den­na metod är känd för sin strik­ta efter­lev­nad av pla­ner och sche­man, men kan vara oflex­i­bel och kanske inte anpas­sas väl till för­änd­ring­ar i krav.
  • Scrum: Scrum är en agil utveck­lings­me­tod som foku­se­rar på att leve­re­ra fun­ge­ran­de mjuk­va­ra genom kor­ta, ite­ra­ti­va utveck­lingscyk­ler. I Scrum arbe­tar team i små, tvär­funk­tio­nel­la enhe­ter för att leve­re­ra en poten­ti­ellt leve­rans­bar pro­dukt i slu­tet av var­je sprint. Scrum beto­nar sam­ar­be­te, anpass­nings­för­må­ga och stän­di­ga förbättringar.
  • Lean: Lean är en utveck­lings­me­tod som byg­ger på prin­ci­per­na för Toyo­ta Pro­duc­tion System. Den beto­nar eli­mi­ne­ring av avfall och stän­dig för­bätt­ring av pro­ces­ser. Inom Lean mjuk­va­ru­ut­veck­ling foku­se­rar tea­men på att leve­re­ra hög­kva­li­ta­tiv mjuk­va­ra snabbt och effek­tivt, genom att eli­mi­ne­ra onö­di­ga akti­vi­te­ter och foku­se­ra på de som till­för vär­de för slutanvändaren.

Det­ta är bara någ­ra exem­pel på de många utveck­lings­me­to­der som används inom mjuk­va­ru- och web­b­ut­veck­ling. Den bäs­ta meto­den för ett givet pro­jekt kom­mer att bero på pro­jek­tets spe­ci­fi­ka behov och mål, såväl som utveck­lings­tea­mets pre­fe­ren­ser och förmågor.

Kan­ban

Kan­ban är en metod för att han­te­ra och för­bätt­ra arbets­pro­ces­ser. Den utveck­la­des ursprung­li­gen för till­verk­ning och har sedan dess anpas­sats för använd­ning i mjukvaruutveckling.

I Kan­ban repre­sen­te­ras arbe­tet visu­ellt på en tav­la, med kolum­ner som repre­sen­te­rar oli­ka sta­di­er i arbets­pro­ces­sen och kort som repre­sen­te­rar enskil­da upp­gif­ter. Det­ta gör att tea­men kan se sta­tus för sitt arbe­te med en över­blick och göra juste­ring­ar efter behov.

Kan­ban byg­ger på prin­ci­per­na för pull-base­rad pro­duk­tion, där arbe­tet bara påbör­jas när det behövs. Det­ta hjäl­per till att för­hind­ra över­pro­duk­tion och gör att tea­men kan foku­se­ra på de upp­gif­ter som är viktigast.

Kan­ban beto­nar ock­så sam­ar­be­te och stän­di­ga för­bätt­ring­ar. Tea­men upp­munt­ras att regel­bun­det se över sina arbets­pro­ces­ser och göra juste­ring­ar för att för­bätt­ra effek­ti­vi­te­ten och mins­ka avfallet.

För att använ­da Kan­ban ska­par team först en sty­rel­se som repre­sen­te­rar deras arbets­pro­cess. Den­na tav­la inne­hål­ler van­ligt­vis kolum­ner för var­je steg i pro­ces­sen, som “Att göra”, “Pågår” och “Slut­fört”. Lag ska­par sedan kort för var­je upp­gift, som pla­ce­ras i lämp­lig kolumn base­rat på deras status.

När upp­gif­ter­na arbe­tas flyt­tas kor­ten från väns­ter till höger över hela bor­det. Det­ta gör att team­me­d­lem­mar­na kan se vil­ka upp­gif­ter som arbe­tas med, vem som arbe­tar med dem och hur nära de är slutförda.

Kan­ban inne­hål­ler ock­så spe­ci­fi­ka reg­ler och prax­is som hjäl­per team att arbe­ta effek­tivt. Till exem­pel kan team använ­da “work in progress”-gränser (WIP) för att säker­stäl­la att de inte arbe­tar med för många upp­gif­ter sam­ti­digt, och kan använ­da “kaizen”-evenemang för att regel­bun­det grans­ka och för­bätt­ra sina arbetsprocesser.

Sam­man­ta­get är Kan­ban en flex­i­bel och effek­tiv metod för att han­te­ra arbets­pro­ces­ser och för­bätt­ra sam­ar­be­te och effek­ti­vi­tet inom team. Den är sär­skilt väl läm­pad för mjuk­va­ru­ut­veck­ling, där för­må­gan att anpas­sa sig till för­änd­ra­de krav och pri­o­ri­te­ring­ar är avgörande.

Scrum

Scrum är en agil utveck­lings­me­tod som foku­se­rar på att leve­re­ra fun­ge­ran­de mjuk­va­ra genom kor­ta, ite­ra­ti­va utveck­lingscyk­ler. I Scrum arbe­tar team i små, tvär­funk­tio­nel­la enhe­ter för att leve­re­ra en poten­ti­ellt leve­rans­bar pro­dukt i slu­tet av var­je sprint.

 

Scrum byg­ger på prin­ci­per­na om trans­pa­rens, inspek­tion och anpass­ning. Det­ta inne­bär att alla aspek­ter av utveck­lings­pro­ces­sen är öpp­na och syn­li­ga för hela tea­met och att tea­met regel­bun­det ser över och juste­rar sina pro­ces­ser för att för­bätt­ra effek­ti­vi­te­ten och effektiviteten.

Scrum-team består van­ligt­vis av en Scrum Mas­ter, som är ansva­rig för att under­lät­ta Scrum-pro­ces­sen och ta bort hin­der som kan hind­ra tea­met från att leve­re­ra fun­ge­ran­de mjuk­va­ra; en pro­dukt­ä­ga­re, som före­trä­der intres­sen­ter­nas intres­sen och pri­o­ri­te­rar lagets arbe­te; och utveck­lings­tea­met, som ansva­rar för att leve­re­ra den fun­ge­ran­de mjukvaran.

I Scrum är utveck­lings­pro­ces­sen upp­de­lad i sprints, som van­ligt­vis är två till fyra vec­kor långa. I bör­jan av var­je sprint arbe­tar utveck­lings­tea­met och pro­dukt­ä­ga­ren till­sam­mans för att ska­pa en sprint­back­log, som är en lis­ta över de upp­gif­ter som tea­met kom­mer att arbe­ta med under sprinten.

Under sprin­ten arbe­tar utveck­lings­tea­met med upp­gif­ter­na i sprint­back­log­gen och använ­der dag­li­ga stand-up-möten för att hål­la varand­ra infor­me­ra­de om deras fram­steg och för att iden­ti­fi­e­ra even­tu­el­la hin­der eller utma­ning­ar som behö­ver åtgär­das. Scrum Mas­tern hjäl­per till att under­lät­ta des­sa möten och se till att tea­met arbe­tar effektivt.

I slu­tet av sprin­ten pre­sen­te­rar utveck­lings­tea­met den fun­ge­ran­de mjuk­va­ran för pro­dukt­ä­ga­ren och intres­sen­ter. Pro­dukt­ä­ga­ren och intres­sen­ter­na ger feed­back, och tea­met använ­der den­na feed­back för att pla­ne­ra näs­ta sprint.

Sam­man­ta­get är Scrum en sam­ar­be­tan­de och flex­i­bel utveck­lings­me­tod som är utfor­mad för att hjäl­pa team att leve­re­ra fun­ge­ran­de mjuk­va­ra snabbt och effek­tivt. Genom att använ­da Scrum kan team anpas­sa sig till för­änd­ra­de krav och pri­o­ri­te­ring­ar och leve­re­ra hög­kva­li­ta­tiv mjuk­va­ra som möter intres­sen­ter­nas behov.

I ett Scrum-utveck­lings­sce­na­rio spe­lar kun­den en avgö­ran­de roll för att ge rikt­ning och feed­back till utvecklingsteamet.

Kun­den repre­sen­te­ras van­ligt­vis av Pro­dukt­ä­ga­ren, som ansva­rar för att före­trä­da intres­sen­ter­nas intres­sen och pri­o­ri­te­ra utveck­lings­tea­mets arbe­te. Pro­dukt­ä­ga­ren arbe­tar nära utveck­lings­tea­met för att defi­ni­e­ra egen­ska­per­na och kra­ven för pro­duk­ten, och för att säker­stäl­la att pro­duk­ten utveck­las på ett sätt som möter intres­sen­ter­nas behov.

Under var­je sprint arbe­tar pro­dukt­ä­ga­ren till­sam­mans med utveck­lings­tea­met för att ska­pa en sprint­back­log, som är en lis­ta över de upp­gif­ter som tea­met kom­mer att arbe­ta med under sprin­ten. Pro­dukt­ä­ga­ren ansva­rar ock­så för att ge input och feed­back på upp­gif­ter­na i sprint­back­lo­gen, för att säker­stäl­la att de över­ens­stäm­mer med pro­jek­tets över­gri­pan­de mål och mål.

I slu­tet av var­je sprint pre­sen­te­rar utveck­lings­tea­met den fun­ge­ran­de mjuk­va­ran för pro­dukt­ä­ga­ren och and­ra intres­sen­ter. Pro­dukt­ä­ga­ren och intres­sen­ter­na ger feed­back om pro­gram­va­ran, och utveck­lings­tea­met använ­der den­na feed­back för att pla­ne­ra och pri­o­ri­te­ra arbe­tet inför näs­ta sprint.

Totalt sett spe­lar kun­den en avgö­ran­de roll i ett Scrum-utveck­lings­sce­na­rio genom att ge rikt­ning, feed­back och stöd till utveck­lings­tea­met. Genom att arbe­ta nära Pro­dukt­ä­ga­ren och utveck­lings­tea­met kan kun­den säker­stäl­la att pro­duk­ten som utveck­las hål­ler hög kva­li­tet och upp­fyl­ler deras behov och mål.