Agile Methodologie: Betekenis, voordelen, nadelen & meer

Altijd al willen weten wat agile methodiek in softwareontwikkeling is? Kijk hier voor de details.

De agile-methodologie is een softwareontwikkelingsfilosofie die tot doel heeft klanten meer waarde te bieden door kortere ontwikkelingscycli te gebruiken en constante herzieningen toe te passen.

Software-ontwikkeling groeide uit het gebied van wiskunde en wetenschap. Het bevatte dus oorspronkelijk de wetenschappelijke methoden uit die gebieden.

Deze methoden evolueerden in de jaren zeventig naar de watervalbenadering om tegemoet te komen aan de eisen van de dag. Computers en hun software waren in die tijd groot, complex en ontworpen om tientallen jaren mee te gaan. De watervalmethode paste dus goed.

Maar tegen het einde van de jaren negentig veranderde het internet de wereld drastisch en werd een nieuwe aanpak noodzakelijk. Zo kwam de agile methodiek tot leven.

Hieronder wordt nader ingegaan op deze softwareontwikkelingsbeweging en hoe deze u en uw team kan helpen.

Geschiedenis van de Agile-ontwikkelmethode

Agile softwareontwikkeling groeide uit het internet en de onverzadigbare behoefte aan applicaties tijdens de hoogconjunctuur van de jaren negentig en het begin van de jaren 1990.

Dit was ook een periode waarin veel ontwikkelaars zonder informatica-achtergrond overstapten op webontwikkeling vanwege de enorme behoefte aan websites voor verschillende groepen en industrieën.

Natuurlijk waren de meeste startups klein. De meeste ontwikkelingen vonden dus plaats in kleine teams, met als uiteindelijk doel vaak een snelle time-to-market. Te laat komen betekende marktaandeel verliezen.

Om de beperkingen die het watervalmodel oplegde om producten zo snel mogelijk op de markt te krijgen, tegen te gaan, kwamen verschillende ontwikkelaars in de jaren negentig met verschillende methoden. Ze omvatten Rapid Application Development (RAD), Scrum, Extreme Programming (XP), Kanban en andere.

Toen, ergens in 2001, kwamen 17 ontwikkelaars die de ene of de andere vorm van vroege agile ontwikkeling beoefenden, samen in Utah, VS. Daarna sloten ze hun bijeenkomst af met het publiceren van het 'Manifesto for Agile Software Development'.

Dit manifest is gebaseerd op 4 waarden en 12 principes.

De 4 waarden en 12 principes van Agile ontwikkeling

Op basis van de ervaringen die ze tijdens hun bijeenkomst hadden verzameld, bereikten de 17 ontwikkelaars een akkoord over een reeks waarden om software efficiënter te maken.

Deze vier waarden zijn als volgt:

  1. Individuen en interacties over processen en tools. Dit betekent dat het ontwikkelen van software met tools en het volgen van een specifiek proces belangrijk is. Maar het is belangrijker om competente mensen effectiever samen te laten werken.

  2. Werkende software dan uitgebreide documentatie. Deze valt de watervalmethode aan waarbij eerst software wordt ontworpen en er documentatie voor wordt geschreven voordat het daadwerkelijke softwareontwikkelingsproces begint.

  3. Samenwerking met de klant boven contractonderhandeling. Alleen door nauw samen te werken met de klant of gebruiker kun je precies leren en ontwikkelen wat de klant nodig heeft. Dit creëert meer waarde.

  4. Reageren op verandering dan het volgen van een plan. Het volgen van een projectplan is belangrijk. Maar het plan mag niet te rigide zijn. Het moet rekening houden met veranderingen om te voldoen aan de verwachtingen van belanghebbenden.

Deze Agile Manifesto-waarden hierboven zijn gebaseerd op 12 Principes en zijn als volgt:

  1. Klanttevredenheid door vroege en continue levering van waardevolle software.
  2. Verwelkom veranderende vereisten, zelfs in de late ontwikkeling.
  3. Lever regelmatig werkende software (weken in plaats van maanden)
  4. Nauwe, dagelijkse samenwerking tussen zakenmensen en ontwikkelaars
  5. Projecten zijn opgebouwd rond gemotiveerde individuen, die vertrouwd moeten worden
  6. Face-to-face gesprek is de beste vorm van communicatie (co-locatie)
  7. Werkende software is de belangrijkste maatstaf voor vooruitgang
  8. Duurzame ontwikkeling, in staat om een ​​constant tempo aan te houden
  9. Continue aandacht voor technische uitmuntendheid en goed design
  10. Eenvoud - de kunst van het maximaliseren van de hoeveelheid niet gedaan werk - is essentieel
  11. De beste architecturen, vereisten en ontwerpen komen voort uit zelforganiserende teams
  12. Het team denkt regelmatig na over hoe het effectiever kan worden en past zich daarop aan

Iteraties of sprints

Iteraties of sprints in agile softwareontwikkeling zijn korte perioden van meestal 1 tot 4 weken, waarin ontwikkelwerk wordt opgedeeld. Dit maakt het beheer eenvoudiger, omdat er minder planning nodig is.

Elk team bestaat doorgaans ook uit leden met verschillende functies, waaronder planning, analyse, ontwerp, codering en testen.

Het team werkt bij elke iteratie of sprint samen aan de software. En ze produceren uiteindelijk een werkend product. Dit werkende stuk software is een maatstaf voor echte vooruitgang, volgens het Agile Manifesto.

Afhankelijk van het product en de behoeften van de klant, kan het product van een iteratie op de markt komen of niet. Er zijn dus vaak veel iteraties nodig voor een enkele release.

De voordelen van Agile ontwikkeling

Zoals je je kunt voorstellen, brengt de agile methodiek veel voordelen met zich mee. Ze zijn als volgt:

  1. Snellere implementatie van ideeën
  2. Meer flexibiliteit dan de watervalbenadering
  3. Verbeterde productiviteit met beheerde iteraties
  4. Betere producten door gebruikersinteracties
  5. Fouten worden snel geïdentificeerd en geëlimineerd

Nadelen van de Agile-methodologie

Er zijn ook enkele nadelen aan het werken met een agile ontwikkelmethode. En ze kunnen zijn:

  1. Het kan in het begin moeilijk zijn om de volledige kosten in te schatten
  2. Het heeft veel input van de klant nodig
  3. Brengt veel ongepland werk met zich mee
  4. Geen duidelijk omschreven projecteinde

Wanneer Agile-methoden te gebruiken?

  1. Wanneer u niet kunt inschatten wat de software nodig heeft
  2. Je hebt voldoende toegang tot klanten
  3. U ontwikkelt een web-app of een eenvoudig te updaten systeem
  4. U moet snel marktaandeel veroveren met een vroege release

Er zijn veel populaire agile ontwikkelingsframeworks. Sommigen begonnen ver voor het Agile Manifesto van 2001, terwijl anderen later kwamen.

Het doel van een raamwerk is simpelweg om de regels van een methode te definiëren. Dus hoewel de meest populaire frameworks hieronder ter referentie worden vermeld, zijn er nog veel meer. En u bent ook vrij om uw eigen raamwerk te maken of een bestaand raamwerk aan te passen aan uw team.

  1. Worsteling om de bal: Dit raamwerk is ontworpen voor teams met 10 of minder leden. Het werk wordt opgedeeld in sprints van 2-4 weken met dagelijkse bijeenkomsten van 15 minuten.

  2. Kanban: Kanban, afkomstig van Toyota, is een Japans woord dat billboard betekent en is zeer nuttig voor teams die visuele hulpmiddelen waarderen. Taken worden van de ene fase naar de andere verplaatst met behulp van visuele representaties zoals plaknotities of apps.

  3. Snelle applicatieontwikkeling RAD: Deze uitdrukking kan zowel verwijzen naar agile softwareontwikkeling in het algemeen als naar de James Martin-methode. RAD richt zich op gebruikersinterfacevereisten en leunt zwaar op prototyping.

  4. Lean Startup: Dit raamwerk is bedoeld voor diegenen die een product of dienst moeten ontwikkelen, maar eerst de levensvatbaarheid ervan op de markt moeten bepalen. Het gaat om het gebruik van experimenten om te zien wat werkt en wat niet.

Andere opmerkelijke frameworks zijn Extreme Programming (XP), Adaptive Software Development, Agile Modeling, Dynamic Systems Development Method en het Scaled Agile Framework.

De Agile vs Waterfall-methodologieën

Hier is een zij-aan-zij blik op de agile- en watervalmethoden voor het ontwikkelen van software. Het kan helpen om te weten hoe elke methode zich verhoudt tot de andere. Zo kiest u eenvoudig het beste gereedschap voor uw klus.

BehendigWaterval
Incrementele & iteratieve benaderingLineair en sequentieel levenscyclusmodel
Flexibel te veranderenStijve implementaties
Tests en beoordelingen zijn aan de gangEr is slechts één testfase na voltooiing
Vereisten kunnen veranderenVereisten worden vastgesteld na planning
Een verzameling van vele kleinere projectenEén enkel project
Meer klantbetrokkenheidMinder klantbetrokkenheid

Adaptieve versus voorspellende ontwikkeling

Het doel van agile softwareontwikkeling is om je aan te passen aan veranderingen in de echte wereld. En deze zijn vaak het resultaat van de behoeften van een klant of gebruiker. Aanpassing staat in schril contrast met het voorspellende karakter van het watervalmodel.

Het is dan logisch om agile methoden te gebruiken bij het ontwikkelen van systemen waarvan je niet zo zeker weet hoe het zal aflopen. Of wanneer er constante veranderingen en evoluties zijn in een branche. Het internet is een groot voorbeeld.

Anders, als je ontwikkelt voor een systeem of markt waar je alles van weet, en die nauwelijks verandert of immuun is voor verandering. Dan kan het voorspellende karakter van de watervalfilosofie van pas komen.

Software vakmanschap

Softwarevakmanschap is een andere filosofie die voortbouwt op agile ontwikkelingsprincipes en die zich richt op het benadrukken van de vaardigheden van de softwareontwikkelaars die bij een project betrokken zijn.

De Software Craftsmanship-beweging heeft ook een manifest en daarin staat:

Als aspirant-softwarevakmensen leggen we de lat van professionele softwareontwikkeling hoger door het te oefenen en anderen te helpen het vak te leren. Door dit werk zijn we gaan waarderen: · Niet alleen werkende software, maar ook goed gemaakte software · Niet alleen reageren op veranderingen, maar ook gestaag waarde toevoegen · Niet alleen individuen en interacties, maar ook een gemeenschap van professionals · Niet alleen klant samenwerking, maar ook productieve partnerships Dat wil zeggen, bij het nastreven van de items aan de linkerkant hebben we de items aan de rechterkant onmisbaar gevonden. © 2009, ondergetekende. Deze verklaring mag in elke vorm vrijelijk worden gekopieerd, maar alleen in zijn geheel via deze kennisgeving

Conclusie

Aan het einde van onze blik op de agile methodologie en softwareontwikkeling, zie je dat er zoveel opties zijn.

Elke ploeg is anders. En net zoals verschillende teams hun verschillende methoden ontwikkelden om zich aan te passen aan veranderende tijden. Ook u zult zich moeten aanpassen door ofwel met een reeds vastgesteld raamwerk te gaan of door het aan te passen aan uw team.

Nnamdi Okeke

Nnamdi Okeke

Nnamdi Okeke is een computerliefhebber die graag een breed scala aan boeken leest. Hij heeft een voorkeur voor Linux boven Windows/Mac en gebruikt al jaren
Ubuntu sinds zijn begindagen. Je kunt hem op twitter vangen via bongotrax

Artikelen: 278

Technische spullen ontvangen

Tech trends, startup trends, reviews, online inkomsten, webtools en marketing een of twee keer per maand

Een reactie

  1. Dit is een van de mooiste samenvattingen en vergelijkingen die ik heb gezien.
    Handig dat het erop wijst dat Agile NIET het noodzakelijke antwoord is op alle problemen in de ontwikkeling van enterprise-software.

Laat een reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd *