CodeGym /Java blog /Tilfældig /Alt hvad du behøver at vide om softwareudviklingsmetoder:...
John Squirrels
Niveau
San Francisco

Alt hvad du behøver at vide om softwareudviklingsmetoder: trends, principper og faldgruber for begyndere

Udgivet i gruppen
Softwareudvikling er en kompleks forretningsproces. Det betyder, at it-professionelle skal tale sproget med optimering, planlægning og omkostningsberegning. En forståelse af ledelseskoncepter giver både arbejdsgivere og udviklere en stor fordel og hjælper med at tage samarbejdet til næste niveau. Alt hvad du behøver at vide om softwareudviklingsmetoder: trends, principper og faldgruber for begyndere - 1

Bemærk, begyndere! Modeller, metoder og generel forvirring

Til at starte med skal vi lave en vigtig afklaring: Softwareudviklingsmodeller og softwareudviklingsmetoder er adskilte og adskilte. Modeller forudsiger, hvordan et system vil opføre sig. Metoder er nødvendige for at systemet kan fungere som det skal. Forvirrende softwareudviklingsmodeller og -metoder er standarddriftsproceduren for enhver it-nybegynder, så dette betragtes ikke som en stor bommert. Et eksempel på en model er den klassiske vandfaldsmodel med dens lineære progression, klare definition af mål for hver fase og streng kontrol over deadlines. En anden model er spiralmodellen, med sit fokus på tidlig opdagelse og reduktion af projektrisici. Spiraludvikling starter i det små, først løser lokale problemer og går derefter videre til mere komplekse. Endelig er en anden model iterativ og inkrementel udvikling (IID) , hvor projektets livscyklus er opdelt i en række iterationer, som hver især ligner et "miniprojekt". Generelt er en model en beskrivelse af softwareudviklingsprocessen . Men metoder er systemer til at kontrollere, evaluere og overvåge arbejde på tildelte opgaver. Metoder er stokken og guleroden i den moderne tidsalder, der er nødvendige for at kontrollere hvert trin i udviklingsprocessen. De vælges ud fra projektets retning, dets budget og deadlines for implementering af det endelige produkt. Desuden kan metoder vælges baseret på temperamentet hos projektlederen og hans eller hendes team. Selv baseret på virksomhedens eller kundens filosofi. Lad os tage et kig på de mest populære metoder.

1. Scrum

Scrum er en agil projektledelsesmetode. Det er baseret på "sprints", eller korte iterationer, strengt begrænset i tid (normalt 2-4 uger). Dette minimerer varigheden af ​​møder, men øger deres hyppighed. Hver sprint består af en liste over opgaver, der skal udføres ved slutningen af ​​iterationen, og hver af dem har sin egen "vægt". Under møderne diskuterer teamet, hvad teammedlemmerne har gjort, hvad de planlægger at gøre, og hvilke problemer der er. Scrum bruger et efterslæb til planlægning. I denne tilgang har hold generelt en scrum master. Denne person hjælper teamet med at arbejde uden afbrydelser og skaber et behageligt miljø for teamet. Projektet vil også have en person i rollen som produktejer. Denne person er udviklingschef, overvåger produktet og fungerer som hovedleddet mellem det, kunden efterspørger, og det, teamet producerer.

Fordele:

  • evne til hurtigt at iværksætte et projekt med det lavest mulige budget;
  • daglig overvågning af fremskridt, hyppige projektdemoer;
  • evnen til at foretage justeringer undervejs i projektet.

Ulemper:

  • vanskeligheder med at indgå kontrakter på grund af manglen på et fast budget;
  • fungerer ikke for et uerfarent team, eller når deadlines eller budgettet er undervurderet;
  • evnen til konstant at lave ændringer mellem spurterne kan skabe forvirring.

Hvem er det til?

Et system som dette er velegnet til projekter på op til ti personer, uanset om de er selvstændige eller eksisterer i store virksomheder. Dette er praktisk, hvis teamet har en stor mængde arbejde og en lang livscyklus, der tvinger dem til at ændre sig og tilpasse sig nye markedsforhold.

2. Kanban

Det vigtigste træk ved Kanban er visualisering af projektets livscyklus. Der oprettes kolonner til udførelse af arbejdsemner. Arbejdspunkterne løses individuelt. Kolonnerne er markeret med statusser som: At gøre, Igangværende, Kodegennemgang, Under test, Udført (selvfølgelig kan kolonnenavnene variere). Hvert teammedlems mål er at reducere antallet af arbejdsemner i den første kolonne. Kanbans tilgang er intuitiv og hjælper dig med at forstå, hvor problemerne ligger. Strukturen af ​​Kanban er ikke endegyldigt og uigenkaldeligt fast: afhængigt af projektets specifikationer kan du tilføje improviserede kolonner. For eksempel bruger nogle teams et system, hvor du skal definere færdige regler for et arbejdsemne, før du udfører det. I dette tilfælde tilføjes to kolonner: Angiv (specificer parametrene) og Implementer (kom i gang).

Fordele:

  • fleksibilitet i planlægningen. Teamet koncentrerer sig kun om det aktuelle arbejde, prioriteringen af ​​en opgave er også defineret;
  • sigtbarhed. Når alle deltagere har adgang til data, er globale problemer lettere at få øje på;
  • høj involvering i udviklingsprocessen. Visualisering af processer øger selvorganisering og selvkontrol.

Ulemper:

  • arbejder ikke med teams på mere end fem personer;
  • ikke beregnet til langsigtet planlægning;
  • ikke egnet til et umotiveret team. Kanban har ikke deadlines for hvert arbejdsemne. Metoden fastsætter heller ikke bøder for forsinkelser.

Hvem er det til?

Kanban fungerer fantastisk i virksomheder, hvor teamet er motiveret til at vokse og opnå resultater. Det burde allerede være indlysende - dette er for et lille team. Måske endda en løsrivelse eller en del af et team.

3. Rational Unified Process (RUP)

RUP-metoden bruger en iterativ udviklingsmodel. Ved afslutningen af ​​hver iteration (som tager 2 til 6 uger), bør teamet nå de planlagte mål og få en fungerende, omend midlertidig, version af projektet. RUP opfordrer til at opdele projektet i fire faser . I hver fase arbejdes der med den næste generation af produktet: start, udarbejdelse, konstruktion og overgang. I slutningen af ​​en fase opnås en projektmilepæl. Det øjeblik, hvor teamet evaluerer sine resultater, kan betragtes som en projektmilepæl. Det betyder, at metodikken indebærer, at hovedfunktionerne frigives i første fase, og tilføjelser tilføjes i efterfølgende faser.

Fordele:

  • gør det muligt at håndtere skiftende opgaver, både fra kundens side og ændringer, der opstår i løbet af arbejdet;
  • sikrer løbende forbedring af produktet. Under iterationer kan du evaluere projektet omhyggeligt;
  • gør det muligt at identificere og eliminere risici i de tidlige stadier af arbejdet, samt at kontrollere kvaliteten af ​​udviklingen effektivt.

Ulemper:

  • Denne metode er ret kompleks og svær at implementere i et lille team eller virksomhed;
  • afhænger af eksperternes evne til at stille opgaver;
  • har brug for overdreven dokumentation af krav.

Hvem er det til?

Store projekter med klart fastlagte krav og risici, der er velforståede, når produktet skal frigives hurtigst muligt. Selv på bekostning af funktionalitet, for hurtigt at indtage din niche og først senere tilføje prikken over i'et.

Der er mange metoder, men én tendens

Ud over scrum og Kanban, som unægteligt er populære og baseret på agile principper , samt den hårdføre, iterative RUP-metodologi, bruger virksomheder mange variationer af metoder. Én virksomhed kan være tættere på ekstrem programmering og træffe de hurtigste og enkleste beslutninger. En anden kan være tættere på testdrevet udvikling. En anden foretrækker måske stadig hurtig applikationsudvikling (RAD). Når det er sagt, er der en stærk, ubestridelig tendens til at bruge flere metoder samtidigt. Eller endda ved at kombinere modeller og metoder til et unikt ledelsessystem. Nutidens virksomheder stræber efter at fjerne bureaukratiske barrierer og skabe en atmosfære af samlet teamwork i organisationen uden at flytte ansvar mellem afdelinger og organisatoriske enheder. Ifølge Scrum Alliance, 70 % af it-virksomhederne bruger scrum. Blandt dem er sådanne giganter som Google, Amazon, Salesforce, Microsoft og Adobe. Startups og unge projekter er mere tilbøjelige til Kanban, men Toyota og for eksempel gamerne hos Wargaming bruger det også. Scrum er et planlægningsværktøj, mens Kanban er til at overvåge fremskridt. Hvad angår RUP, så bruges det oftest af vestlige virksomheder med 50-200 ansatte og en omsætning på 1-10 millioner dollars. IBM modificerede imidlertid RUP for at komme tættere på agile principper og frigav OpenUP-metoden (RUP, men agile). Denne berømmede agile metode driver nu IT-verdenen . Dette er ikke bare et forbigående modefænomen – det er stadig innovativt, og det bruges faktisk i mange store virksomheder. Agile bruges i Silicon Valley. Facebook og Uber bruger det.

Bundlinjen

Hvert projekt har sin egen softwareudviklingsmetodologi, som afhænger af teamet, finansiering, deadlines og kundekrav. Der er ingen universel ledelsesteknik: Selv den vildt populære agile metode kan ikke sikre den bedste tilgang til udviklingsprocessen. Som følge heraf vælges metoder omhyggeligt, nogle gange endda principielt. Så meget, at vi kan drage konklusioner om en virksomhed selv eller om dens kunder ved at se på dens metodik. Metoder blandes, suppleres med modeller og tilpasses. Så meget, at de giver anledning til nye tilgange. Når det er sagt, forbliver ledelsesområdet i sidste ende i hænderne på scrum og Kanban, med uventede elementer af vandfaldsmodellen eller den iterative RUP-metode.
Mere læsning:
Websites: Bøger:
  • Andrew Stelman, Jennifer Greene: "Learning Agile";
  • Per Kroll, Bruce MacIsaac: «Agility and Discipline Made Easy: Practices from OpenUP and RUP»;
  • Mike Cohn: "Succesed with Agile: Software Development Using Scrum";
  • Robert C. Martin: "Agil softwareudvikling: principper, mønstre, praksis";
  • Marcus Hammarberg, Joakim Sunden: "Kanban i aktion";
  • I. Jacobson, G. Booch, J. Rumbaugh: "Unified Software Development Process".
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION