Agile model

Fleksibel (Agil) metodologi hjælper med at reducere risikoen i softwareudvikling ved at flytte arbejdsgangen i flere små cyklusser. Disse cyklusser kaldes iterationer og varer typisk to til tre uger.

En iteration er som et lille softwareprojekt, der består af opgaver, som hver især forbedrer funktionaliteten. Disse omfatter: udarbejdelse af en plan, evaluering af krav, aftale om et projekt, skrivning af kode, test og oprettelse af teknisk dokumentation.

Én iteration er normalt ikke nok til en fuldgyldig softwareudgivelse. Det gode ved Agile er dog, at små dele af projektet er klar til evaluering i slutningen af ​​hver iteration. Dette giver teammedlemmer mulighed for at ændre prioriteter for yderligere arbejde uden at vente på den endelige udgivelse.

Ved at anvende en "agile" udviklingsmetodologi kan du se et konkret resultat efter hver iteration. Det vil sige, at udvikleren kan forstå, om resultatet af hans arbejde opfylder kravene eller ej. Dette er en af ​​de vigtige fordele ved den fleksible model.

Hvad angår ulemperne, når du bruger Agile, er det nogle gange vanskeligt at estimere omkostningerne til arbejdskraft og projektets budget. Hvis vi tager mulighederne for den praktiske anvendelse af den fleksible model, så er den mest berømte blandt dem Extreme Programming (XP).

XP er baseret på korte møder med teammedlemmer, der finder sted hver dag, og regelmæssige møder (en gang om ugen eller mindre). Ved daglige stævner (daglig standup) diskuteres normalt:

  • aktuelle resultater af arbejdet;
  • en liste over opgaver, der skal udføres af hvert teammedlem;
  • vanskeligheder og måder at løse dem på.

Manifest

Agile er en hel retning i udviklingen, så reglerne for at arbejde med det er erklæret i et særligt dokument - Agile Manifesto. Dette omfatter både praksis og principper, som teamet skal arbejde efter.

Agile Manifesto består af 4 grundlæggende ideer og 12 principper.

Nøgle ideer:

  • samarbejde mellem udviklere er vigtigere end værktøjer;
  • den fungerende version af produktet har forrang frem for dokumentationen;
  • gensidig forståelse mellem teamet og kunden er vigtigere end vilkårene i kontrakten;
  • Den oprindelige plan kan altid ændres, hvis det er nødvendigt.

Hvad angår de 12 principper for Agile, er de her:

  • hovedprioriteten er overholdelse af det færdige program med kundens forventninger;
  • ændrede forhold er tilladt på ethvert trin, selv på det sidste trin af udviklingen (hvis dette kan forbedre softwarens kvalitet og konkurrenceevne);
  • regelmæssig levering af fungerende versioner af softwareproduktet (hver 14. dag, måned eller kvartalsvis);
  • nøglen til succes er regelmæssig interaktion mellem kunden og udviklerne (helst dagligt);
  • projekter bør bygges blandt dem, der er interesserede i dem, sådanne mennesker bør have de nødvendige betingelser for arbejde og alle former for støtte;
  • den bedste måde at dele information på i et team er et personligt møde;
  • den fungerende version af softwaren er den bedste indikator for fremskridt;
  • alle interessenter skal være i stand til at opretholde det ønskede arbejdstempo gennem hele softwareudviklingsprocessen;
  • teknisk forbedring og godt design forbedrer fleksibiliteten;
  • det er vigtigt at holde det enkelt og ikke overskabe;
  • de bedste resultater opnås fra de hold, der er i stand til at organisere sig selv;
  • teammedlemmer bør regelmæssigt tænke over måder at forbedre deres effektivitet ved at ændre arbejdsgangen.

Ifølge Agile-manifestet afhænger en god softwareudviklingsproces direkte af de mennesker, der er involveret i denne proces. For at gøre dette skal du organisere deres interaktion så effektivt som muligt, skabe det mest organiserede team.

Metoder

Der er også flere metoder i Agile Manifesto, der forklarer værdier og principper:

  • Agile modellering;
  • Agile Unified Process;
  • Agile datametode
  • Hurtig applikationsudvikling (DSDM);
  • Essential Unified Process;
  • ekstrem programmering;
  • funktionsdrevet udvikling;
  • At blive rigtig;
  • Åben op;
  • Scrum.

Agile Modeling er en samling af principper, udtryk og praksis, der fremskynder og forenkler udviklingen af ​​softwaremodeller og dokumentation.

Målet med Agile Modeling er at forbedre modellering og dokumentation. Det er vigtigt at bemærke, at dette ikke inkluderer kodning, test eller problemer relateret til projektkontrol, implementering og support. Denne metode inkluderer dog kodegennemgang.

Agile Unified Process er en metode, der gør det nemt for brugerne at tilnærme sig (model). Bruges normalt til at udvikle kommerciel software.

Agile Data Method - flere lignende metoder, hvor kundeforhold opnås gennem samarbejde mellem flere teams.

DSDM - denne tilgang adskiller sig fra de andre ved, at brugere af det fremtidige produkt sammen med udviklerne tager aktiv del i det.

Funktionsdrevet udvikling er en udviklingsmetodologi, der har en tidsbegrænsning: "hver funktion må ikke implementeres længere end to uger."

Det er værd at overveje, at hvis brugssagen er lille, kan den betragtes som en funktion. Hvis det er væsentligt, så skal det opdeles i flere funktioner.

Getting Real er en iterativ metode, hvor programgrænsefladen udvikles først, og først derefter udvikles dens funktionalitet.

OpenUP er en udviklingsmetode, der deler projektcyklussen op i fire faser: start, forfining, konstruktion og overdragelse.

Ifølge principperne for Agile er det, uanset arbejdets varighed, nødvendigt at give alle interessenter og teammedlemmer en måde at stifte bekendtskab med og træffe beslutninger på. Takket være dette er det muligt effektivt at kontrollere situationen og evaluere mellemresultater i tide. Projektplanen definerer livscyklussen, og det endelige resultat bør betragtes som en stabil udgivelse af ansøgningen.

Hvad angår Scrum, regulerer det reglerne for styring af udviklingsprocessen og giver dig mulighed for at anvende eksisterende kodningspraksis med mulighed for at justere betingelserne eller foretage ændringer. Ved at bruge denne metode kan du se og eliminere afvigelser fra det forventede resultat i de tidlige udviklingsstadier.

Lad os tage et kig på dette lidt mere detaljeret...