Agile udviklingsmetodik

Agile udviklingsmetodologi ( engelsk  agile software development , agile development ) er en generel betegnelse for en række tilgange og praksis baseret på værdierne i Agile Software Development Manifesto og de 12 principper, der ligger til grund for det [1] .

Agile metoder omfatter især ekstrem programmering , DSDM , Scrum , FDD , BDD og andre.

De fleste agile metoder sigter mod at minimere risikoen ved at reducere udviklingen til en række korte cyklusser, kaldet iterationer, der typisk varer to til tre uger. Hver iteration i sig selv ligner et miniaturesoftwareprojekt og inkluderer alle de opgaver, der er nødvendige for at producere en minivækst i funktionalitet: planlægning, kravanalyse , design , programmering , test og dokumentation . Selvom en enkelt iteration generelt ikke er tilstrækkelig til at frigive en ny version af et produkt, antages det, at et agilt softwareprojekt er klar til udgivelse ved slutningen af ​​hver iteration. I slutningen af ​​hver iteration revurderer teamet udviklingsprioriteterne.

Agile metoder lægger vægt på ansigt-til-ansigt kommunikation. De fleste agile teams er placeret på samme kontor, nogle gange omtalt som eng.  bullpen . Som minimum inkluderer det også "kunder" ( engelsk  produktejer  - kunden eller dennes autoriserede repræsentant, der bestemmer kravene til produktet; denne rolle kan udføres af en projektleder, forretningsanalytiker eller klient). Kontoret kan også omfatte testere, grænsefladedesignere, tekniske skribenter og ledere.

Det vigtigste mål for agile metoder er arbejdsproduktet. Ved at prioritere ansigt-til-ansigt kommunikation reducerer agile metoder mængden af ​​skriftlig dokumentation sammenlignet med andre metoder. Dette har ført til kritik af disse metoder som udisciplinerede.

Historie

I løbet af 1990'erne udviklede en række lette softwareudviklingsmetoder sig som reaktion på de fremherskende tunge metoder, som kritikere kaldte overregulerede, planlagte og mikrostyrede. Disse omfatter: Rapid Application Development (RAD) siden 1991 [2] [3] ; samlet proces og metode til udvikling af dynamiske systemer siden 1994; Scrum, siden 1995; Crystal Clear og Extreme Programming (XP), begge siden 1996; og funktionsorienteret udvikling siden 1997. Selvom de alle opstod før offentliggørelsen af ​​Agile Manifesto, omtales de nu samlet som agil softwareudvikling.

I februar 2001 blev " Agil Software Development Manifesto " udgivet i Utah, USA . Det gav et alternativ til dokumentdrevet "tungvægts" softwareudviklingspraksis såsom " vandfaldsmetoden ", som var den gyldne standard for udvikling på det tidspunkt. Dette manifest blev godkendt og underskrevet af repræsentanter for følgende metoder: Ekstrem programmering , Crystal Clear , DSDM , Funktionsdrevet udvikling , Scrum , Adaptiv softwareudvikling , Pragmatisk programmering . Agile udviklingsmetodologi blev brugt af mange virksomheder, selv før vedtagelsen af ​​manifestet, dog skete den agile udviklings indtog i masserne netop efter denne begivenhed.

Principper

Agile er en familie af udviklingsprocesser, ikke en enkelt tilgang til softwareudvikling, og er defineret af Agile Manifesto [4] . Agile inkluderer ikke praksis, men definerer de værdier og principper, der guider teams.

Agile Manifesto blev udviklet og vedtaget 11.-13. februar 2001 på The Lodge at Snowbird skisportssted i Utah-bjergene. Agile Manifesto indeholder 4 hovedideer og 12 principper. Det er bemærkelsesværdigt, at Agile Manifesto ikke indeholder praktiske råd.

Nøgle ideer:

Grundlæggende principper for Agile Manifesto [6] :

Kritik

Et af de tilbagevendende kritikpunkter: Den agile tilgang negligerer ofte oprettelsen af ​​en plan ("roadmap") for produktudvikling samt kravstyring , i den proces, hvormed et sådant "kort" dannes. En fleksibel tilgang til kravstyring indebærer ikke vidtrækkende planer (faktisk eksisterer kravstyring simpelthen ikke i denne metodologi), men indebærer kundens evne til pludselig og uventet at stille nye krav i slutningen af ​​hver iteration, ofte i modstrid med arkitekturen af ​​et allerede skabt og leveret produkt. Dette fører nogle gange til katastrofalt "hands on work" med massiv refactoring og rework ved næsten hver næste iteration.

Derudover menes det, at arbejde i agile motiverer udviklere til at løse alle indkommende opgaver på den enkleste og hurtigst mulige måde, mens de ofte ikke er opmærksomme på kodens korrekthed i forhold til kravene til den underliggende platform (den "værker og alt” tilgang), uden at tage højde for, at koden kan holde op med at fungere, hvis den ændres yderligere. Dette resulterer i nedsat produktkvalitet og en ophobning af defekter (se " teknisk gæld ").

Metoder

Der er metoder, der overholder de værdier og principper, der er angivet i Agile Manifesto, nogle af dem er:

Noter

  1. Hvad er agil softwareudvikling? . Agile Alliance. - "Agil softwareudvikling er en paraplybetegnelse for et sæt rammer og praksis baseret på de værdier og principper, der er udtrykt i Manifestet for Agile Softwareudvikling og de 12 principper bag det." Hentet 29. juni 2019. Arkiveret fra originalen 31. juli 2018.
  2. Martin, James. Hurtig applikationsudvikling . - Macmillan, 1991. - ISBN 978-0-02-376775-3 .
  3. Kerr, James M.; Jæger, Richard. Inside RAD: Sådan bygger du et fuldt funktionelt system på 90 dage eller mindre . - McGraw-Hil, 1993. - ISBN 978-0-07-034223-1 .
  4. Agile Manifesto Arkiveret 23. februar 2011 på Wayback Machine 
  5. De grundlæggende principper for det agile manifest . agilemanifesto.org. Dato for adgang: 8. december 2016. Arkiveret fra originalen 25. december 2014.
  6. Agile modellering . Behandlingsdato: 25. december 2011. Arkiveret fra originalen 31. december 2008.

Litteratur