Agile softwareontwikkeling biedt een flexibel raamwerk om teams te helpen een duidelijke focus te houden op een snelle levering van bedrijfswaarde. In de huidige werkomgeving is het tempo van verandering versneld en moeten bedrijven hierop kunnen reageren. Meer traditionele softwareontwikkelmethoden ondersteunen verandering niet effectief en dit is waar Agile goed geplaatst is.

Agile softwareontwikkeling stelt organisaties in staat om voorrang te geven aan wat belangrijk is, snel op veranderingen in te spelen en resultaten en bedrijfswaarde te leveren. Als gevolg hiervan kunnen bedrijven het algehele risico van softwareontwikkeling aanzienlijk verminderen.

Agile retourneert uiteindelijk de controle naar het bedrijf door klantgerichtheid en een proces van continue planning en feedback. Met Agile kunnen organisaties ook de kosten nauwlettend in de gaten houden en zich snel aanpassen aan veranderingen.

Behendig versus waterval

Alle ontwikkeling verloopt in bepaalde stadia: conceptie, initiatie, analyse, ontwerp, constructie, testen, implementatie en onderhoud. Het verschil tussen wendbaarheid en watervalontwikkeling is hoe ze deze verschillende stadia benaderen.

Waterfall is een sequentieel ontwerpproces, waarbij de ontwerp- en ontwikkelingsvereisten voor een systeem van voren worden afgebeeld. Door van tevoren aan alle eisen te voldoen weet iedereen precies wat ze willen bereiken. Dit betekent dat de klant weet wat hij kan verwachten en een idee heeft van het tijdsbestek, de omvang en de kosten van het project.

Het nadeel van deze traditionele aanpak is dat de klant mogelijk niet zo veel feedbackmogelijkheden krijgt als met agile ontwikkeling, of de ruimte heeft om elementen van het ontwerp / de ontwikkeling te veranderen. Omdat het proces opeenvolgend is, kunt u na het voltooien van een ontwikkelingsfase niet gemakkelijk teruggaan naar een vorige fase om wijzigingen aan te brengen.

Dit is redelijk riskant voor een bedrijf, want als de aanvankelijke vereisten van het project op enigerlei wijze veranderen, zal het project bijna gegarandeerd falen. Op zijn beurt zou het bedrijf dan de extra kosten dragen om eventuele problemen te verhelpen, en zou het project langer duren dan voorspeld.

  • Agile of Waterfall? Hoe gemengde methodologieën met succes te beheren

Incrementele ontwikkeling

Agile methodologie volgt een incrementele benadering van ontwikkeling en heeft een sterke focus op het leveren van wat de klant nodig heeft in plaats van wat zij denken dat ze willen. Ontwikkelaars beginnen met een eenvoudig projectontwerp in plaats van een groot document en werken op kleine modules. Als korte herhalingen van het werk aan het project worden gedaan (meestal in wekelijkse of tweewekelijkse cycli) prioriteiten van het project worden beoordeeld, geëvalueerd en getest. In elke fase wordt een steeds completer product aan de klant verstrekt dat zij kunnen gebruiken en waarop feedback wordt gegeven.

De instelling van een agile ontwikkelingsteam is om verandering te plannen en te omarmen. Het is deze reactiviteit en flexibiliteit die behendig de rand in de zakelijke omgeving geeft. Bedrijven veranderen voortdurend en moeten mogelijk reageren op externe wijzigingen en agile kan dit aanpassen. Testen wordt gedaan terwijl het product wordt ontwikkeld, zodat eventuele bugs vroeg in het proces worden gevonden en het product veel sneller kan worden vrijgegeven. Vroegtijdige feedback betekent ook dat ontwikkelaars een meer specifiek product kunnen maken, zodat ze beter kunnen voldoen aan de behoeften van de klant.

Elke methodologie heeft zijn voor- en nadelen, maar het bewijs toont aan dat naarmate het tempo van de veranderingen toeneemt, veel meer bedrijven kiezen voor een agile software-ontwikkelingsaanpak.

Agile mythes versus realiteit

Agile is een zilveren kogel: er is niets om te zeggen dat een behendig project zal slagen. Succes hangt erg af van diegenen die het project aansturen. Omdat Agile u echter in staat stelt wijzigingen aan te brengen, is er voldoende gelegenheid om het project indien nodig te herzien en opnieuw te focussen. Dit helpt om extra tijd en kosten te voorkomen.

Agile is niet schaalbaar: in het algemeen heeft softwareontwikkeling zelf schaalproblemen. Hoe groter de reikwijdte van het project, hoe groter de faalkans - en hoe groter het aantal mensen dat bij een project is betrokken, hoe groter het communicatierisico en de complexiteit. Agile ontwikkeling breekt één project af in kleinere projecten met kortere levertijden en kleinere teams, dus de ruimte voor fouten wordt verminderd en de activiteit wordt opgesplitst in kleine, beheersbare stukken. Dit helpt bedrijven grip te houden op een project en een project effectiever te beheren.

Agile betekent geen planning: dit heeft eigenlijk te maken met een gebrek aan inzicht in een agile planningsbenadering. De meeste agile teams spenderen evenveel tijd, zo niet meer, aan het plannen van projecten, maar de planning is niet helemaal vooraf, en veel ervan is verspreid over de levensduur van het project. De focus van Agile op vroege levering en vaak betekent dat planning is gericht op tastbare resultaten. Het stelt teams in staat om veel gemakkelijker te reageren op veranderingen in vereisten, zakelijke eisen of mensenkwesties. Dit geeft bedrijven meer flexibiliteit.

Agile betekent geen documentatie: een meer accurate manier om hiernaar te kijken, is dat Agile geen documentatie doet omwille van de documentatie. Documentatie wordt, net als bij elk ander product dat op een project kan worden afgeleverd, geschat en geprioriteerd zoals elke andere taak. Door de documentatie tot een minimum te beperken, wordt er geen tijd verspild aan veel ongebruikte plannen en rapporten.

De opkomst van agile

Hoewel beide benaderingen van softwareontwikkeling nog steeds in gebruik zijn, is agile ontwikkeling de laatste vijf jaar snel de voorkeursaanpak geworden voor veel van 's werelds toonaangevende technologiebedrijven. Veel marktleiders hebben agile ontwikkeling opgenomen en omarmd, en nu zijn zowel grote als kleine bedrijven steeds meer op zoek naar agile oplossingen voor hun bedrijven en gedijen het als een resultaat..

  • John Cooke is managing director bij Black Pepper Software