Agile-model
Flexibele (Agile) methodologie helpt het risico bij softwareontwikkeling te verminderen door de workflow in verschillende kleine cycli te verplaatsen. Deze cycli worden iteraties genoemd en duren doorgaans twee tot drie weken.
Een iteratie is als een klein softwareproject dat bestaat uit taken die elk de functionaliteit verbeteren. Deze omvatten: een plan opstellen, eisen evalueren, overeenstemming bereiken over een project, code schrijven, testen en technische documentatie maken.
Eén iteratie is meestal niet genoeg voor een volwaardige softwarerelease. Het mooie van Agile is echter dat aan het einde van elke iteratie kleine onderdelen van het project klaar zijn voor evaluatie. Hierdoor kunnen teamleden prioriteiten wijzigen voor verder werk zonder te wachten op de definitieve release.
Door een “agile” ontwikkelmethodiek toe te passen, zie je na elke iteratie een concreet resultaat. Dat wil zeggen, de ontwikkelaar kan begrijpen of het resultaat van zijn werk aan de vereisten voldoet of niet. Dit is een van de belangrijke voordelen van het flexibele model.
Wat betreft de nadelen, bij het gebruik van Agile is het soms moeilijk om de kosten van arbeidsmiddelen en het budget van het project in te schatten. Als we de opties nemen voor de praktische toepassing van het flexibele model, dan is Extreme Programming (XP) de meest bekende.
XP is gebaseerd op korte vergaderingen van teamleden die elke dag plaatsvinden, en regelmatige vergaderingen (een keer per week of minder). Bij dagelijkse rally's (dagelijkse stand-up) worden meestal besproken:
- actuele resultaten van werkzaamheden;
- een lijst met taken die elk teamlid moet voltooien;
- ondervonden moeilijkheden en manieren om deze op te lossen.
manifest
Agile is een hele richting in ontwikkeling, dus de regels om eraan te werken worden verklaard in een speciaal document - Agile Manifesto. Dit omvat zowel praktijken als principes volgens welke het team zou moeten werken.
Agile Manifesto bestaat uit 4 fundamentele ideeën en 12 principes.
Belangrijkste ideeën:
- samenwerking tussen ontwikkelaars is belangrijker dan tools;
- de werkende versie van het product heeft voorrang op de documentatie;
- wederzijds begrip tussen het team en de klant is belangrijker dan de voorwaarden van het contract;
- Het oorspronkelijke plan kan altijd gewijzigd worden indien nodig.
Wat betreft de 12 principes van Agile, hier zijn ze:
- de belangrijkste prioriteit is de overeenstemming van het voltooide programma met de verwachtingen van de klant;
- veranderende omstandigheden zijn in elk stadium toegestaan, zelfs in de laatste ontwikkelingsfase (als dit de kwaliteit en het concurrentievermogen van de software kan verbeteren);
- regelmatige levering van werkende versies van het softwareproduct (elke 14 dagen, maand of kwartaal);
- de sleutel tot succes is regelmatige interactie tussen klant en ontwikkelaars (bij voorkeur dagelijks);
- projecten moeten worden gebouwd onder degenen die erin geïnteresseerd zijn, dergelijke mensen moeten de nodige voorwaarden voor werk en allerlei soorten ondersteuning krijgen;
- de beste manier om informatie in een team te delen is een persoonlijke ontmoeting;
- de werkende versie van de software is de beste indicator voor voortgang;
- alle belanghebbenden moeten in staat zijn het gewenste werktempo aan te houden gedurende het softwareontwikkelingsproces;
- technische verbetering en een goed ontwerp vergroten de flexibiliteit;
- het is belangrijk om het simpel te houden en niet te veel te creëren;
- de beste resultaten worden behaald met die teams die in staat zijn zichzelf te organiseren;
- teamleden moeten regelmatig nadenken over manieren om hun efficiëntie te verbeteren door de workflow te veranderen.
Volgens het Agile manifesto hangt een goed software ontwikkelproces direct af van de mensen die bij dit proces betrokken zijn. Om dit te doen, moet je hun interactie zo efficiënt mogelijk organiseren, het meest georganiseerde team creëren.
Methodologieën
Er zijn ook verschillende methodieken in het Agile Manifesto die waarden en principes toelichten:
- Agile modellering;
- Agile verenigd proces;
- Agile gegevensmethode
- Snelle applicatie-ontwikkeling (DSDM);
- Essentieel uniform proces;
- extreem programmeren;
- kenmerkgestuurde ontwikkeling;
- Echt worden;
- OpenUP;
- Scrummen.
Agile Modeling is een verzameling principes, termen en praktijken die de ontwikkeling van softwaremodellen en documentatie versnelt en vereenvoudigt.
Het doel van Agile Modeling is het verbeteren van modellering en documentatie. Het is belangrijk op te merken dat dit niet geldt voor coderen, testen of problemen met betrekking tot projectcontrole, implementatie en ondersteuning. Deze methodologie omvat echter codereview.
Agile Unified Process is een methodiek die het voor gebruikers eenvoudig maakt om te benaderen (modelleren). Meestal gebruikt om commerciële software te ontwikkelen.
Agile Data Method - verschillende vergelijkbare methodieken waarin klantcondities worden bereikt door de samenwerking van verschillende teams.
DSDM - deze benadering verschilt van de andere doordat, samen met de ontwikkelaars, gebruikers van het toekomstige product er actief aan deelnemen.
Feature-driven development is een ontwikkelmethodiek die een tijdslimiet heeft: “elke feature mag niet langer dan twee weken geïmplementeerd zijn.”
Het is de moeite waard om te overwegen dat als de use case klein is, deze als een functie kan worden beschouwd. Als het significant is, moet het in verschillende functies worden verdeeld.
Getting Real is een iteratieve methodologie waarbij eerst de programma-interface wordt ontwikkeld en pas daarna de functionaliteit.
OpenUP is een ontwikkelingsmethode die de projectcyclus verdeelt in vier fasen: aanvang, verfijning, constructie en overdracht.
Volgens de principes van Agile is het, ongeacht de duur van het werk, noodzakelijk om alle belanghebbenden en teamleden een manier te bieden om kennis te maken en beslissingen te nemen. Hierdoor is het mogelijk om de situatie effectief te beheersen en tussentijdse resultaten tijdig te evalueren. Het projectplan definieert de levenscyclus en het eindresultaat moet worden beschouwd als een stabiele release van de applicatie.
Wat Scrum betreft, het regelt de regels voor het beheer van het ontwikkelingsproces en stelt u in staat om bestaande coderingspraktijken toe te passen met de mogelijkheid om de voorwaarden aan te passen of wijzigingen aan te brengen. Door deze methodologie te gebruiken, kunt u afwijkingen van het verwachte resultaat in de vroege stadia van ontwikkeling zien en elimineren.
Laten we dit wat gedetailleerder bekijken...
GO TO FULL VERSION