Agil utvecklingsmetodik

Agile utvecklingsmetodik ( engelska  agil mjukvaruutveckling , agil utveckling ) är en allmän term för ett antal tillvägagångssätt och metoder baserade på värderingarna i Agile Software Development Manifesto och de 12 principer som ligger till grund för det [1] .

Agila metoder inkluderar i synnerhet extrem programmering , DSDM , Scrum , FDD , BDD och andra.

De flesta agila metoder syftar till att minimera risken genom att reducera utvecklingen till en serie korta cykler, kallade iterationer, som vanligtvis varar två till tre veckor. Varje iteration i sig ser ut som ett miniatyrprogramvaruprojekt och inkluderar alla uppgifter som krävs för att producera en minitillväxt i funktionalitet: planering, kravanalys , design , programmering , testning och dokumentation . Även om en enstaka iteration i allmänhet inte räcker för att släppa en ny version av en produkt, antas det att ett agilt mjukvaruprojekt är redo för release i slutet av varje iteration. I slutet av varje iteration omvärderar teamet utvecklingsprioriteringar.

Agila metoder betonar kommunikation ansikte mot ansikte. De flesta agila team finns på samma kontor, ibland kallade eng.  bullpen . Åtminstone inkluderar det också "kunder" ( engelsk  produktägare  - kunden eller dennes auktoriserade representant som bestämmer kraven för produkten; denna roll kan utföras av en projektledare, affärsanalytiker eller kund). På kontoret kan även inkludera testare, gränssnittsdesigners, tekniska skribenter och chefer.

Huvudmåttet för agila metoder är arbetsprodukten. Genom att prioritera kommunikation ansikte mot ansikte minskar agila metoder mängden skriftlig dokumentation jämfört med andra metoder. Detta har lett till kritik av dessa metoder som odisciplinerade.

Historik

Under 1990-talet utvecklades ett antal lätta mjukvaruutvecklingsmetoder som svar på de rådande tunga metoderna, som kritiker kallade överreglerade, planerade och mikrostyrda. Dessa inkluderar: Rapid Application Development (RAD) sedan 1991 [2] [3] ; enhetlig process och metod för att utveckla dynamiska system sedan 1994; Scrum, sedan 1995; Crystal Clear och Extreme Programming (XP), båda sedan 1996; och funktionsorienterad utveckling sedan 1997. Även om de alla har sitt ursprung före publiceringen av Agile Manifesto, kallas de nu gemensamt för agil mjukvaruutveckling.

I februari 2001 släpptes " Agil Software Development Manifesto " i Utah, USA . Det gav ett alternativ till dokumentdrivna "tungviktiga" programvaruutvecklingsmetoder som " vattenfallsmetoden ", som var den gyllene standarden för utveckling vid den tiden. Detta manifest godkändes och undertecknades av representanter för följande metoder: Extreme Programmering , Crystal Clear , DSDM , Funktionsdriven utveckling , Scrum , Adaptiv mjukvaruutveckling , Pragmatisk programmering . Agile utvecklingsmetodik användes av många företag redan innan manifestet antogs, men inträdet av Agile utveckling i massorna inträffade precis efter denna händelse.

Principer

Agile är en familj av utvecklingsprocesser, inte ett enda tillvägagångssätt inom mjukvaruutveckling, och definieras av Agile Manifesto [4] . Agile inkluderar inte praxis, utan definierar de värderingar och principer som vägleder team.

Agile Manifesto utvecklades och antogs 11-13 februari 2001 på The Lodge at Snowbird skidort i Utah-bergen. Agile Manifesto innehåller 4 huvudidéer och 12 principer. Det är anmärkningsvärt att Agile Manifesto inte innehåller praktiska råd.

Nyckelidéer:

Grundläggande principer för Agile Manifesto [6] :

Kritik

En av de återkommande kritikpunkterna: det agila tillvägagångssättet försummar ofta skapandet av en plan ("roadmap") för produktutveckling, såväl som kravhantering , i den process som en sådan "karta" bildas av. Ett flexibelt förhållningssätt till kravhantering innebär inte långtgående planer (i själva verket existerar kravhantering helt enkelt inte i denna metodik), utan innebär kundens förmåga att plötsligt och oväntat ställa nya krav i slutet av varje iteration, ofta motsäger arkitekturen hos en redan skapad och levererad produkt. Detta leder ibland till katastrofala "hands on work" med massiv refaktorering och omarbetning vid nästan varje nästa iteration.

Dessutom tror man att arbete i agilt motiverar utvecklare att lösa alla inkommande uppgifter på det enklaste och snabbaste möjliga sättet, samtidigt som de ofta inte uppmärksammar kodens korrekthet när det gäller kraven på den underliggande plattformen (den "fungerar och allt”) utan att ta hänsyn till att koden kan sluta fungera om den ändras ytterligare. Detta resulterar i minskad produktkvalitet och en ansamling av defekter (se " tekniska skulder ").

Metoder

Det finns metoder som följer de värderingar och principer som anges i Agile Manifesto, några av dem är:

Anteckningar

  1. Vad är agil mjukvaruutveckling? . Agile Alliance. - "Agil mjukvaruutveckling är ett paraplybegrepp för en uppsättning ramverk och praxis baserade på de värderingar och principer som uttrycks i Manifestet för agil mjukvaruutveckling och de 12 principerna bakom det." Hämtad 29 juni 2019. Arkiverad från originalet 31 juli 2018.
  2. Martin, James. Snabb applikationsutveckling . - Macmillan, 1991. - ISBN 978-0-02-376775-3 .
  3. Kerr, James M.; Hunter, Richard. Inside RAD: Hur man bygger ett fullt fungerande system på 90 dagar eller mindre . - McGraw-Hil, 1993. - ISBN 978-0-07-034223-1 .
  4. Agile Manifesto Arkiverad 23 februari 2011 på Wayback Machine 
  5. ^ De grundläggande principerna för det agila manifestet . agilemanifesto.org. Datum för åtkomst: 8 december 2016. Arkiverad från originalet 25 december 2014.
  6. Agile modellering . Behandlingsdatum: 25 december 2011. Arkiverad från originalet 31 december 2008.

Litteratur