Agile versus traditionele softwareontwikkelingsmethodologie
Er zijn tegenwoordig een aantal verschillende softwareontwikkelingsmethodologieën die in de software-industrie worden gebruikt. Waterfall-ontwikkelingsmethode is een van de vroegste methoden voor softwareontwikkeling. V-Model, RUP en enkele andere lineaire, iteratieve en gecombineerde lineair-iteratieve methoden, die na de watervalmethode kwamen, waren bedoeld om veel problemen van de watervalmethode weg te vagen. Al deze eerdere methoden worden traditionele softwareontwikkelingsmethoden genoemd. Agile-model is een recenter model voor softwareontwikkeling dat is geïntroduceerd om de tekortkomingen in de traditionele modellen aan te pakken. De belangrijkste focus van Agile is het zo vroeg mogelijk opnemen van testen en het zeer vroeg vrijgeven van een werkende versie van het product, door het systeem op te splitsen in zeer kleine en beheersbare subonderdelen.
Wat is traditionele softwareontwikkelingsmethodologie?
Softwaremethodologieën zoals de Waterfall-methode, V-Model en RUP worden traditionele softwareontwikkelingsmethodologieën genoemd. De watervalmethode is een van de vroegste modellen voor softwareontwikkeling. Zoals de naam al doet vermoeden, is het een sequentieel proces waarbij de voortgang door verschillende fasen (analyse van de behoefte, ontwerp, ontwikkeling, testen en implementatie) van boven naar beneden gaat, analoog aan een waterval. V-Model wordt beschouwd als een uitbreiding van het Waterfall-softwareontwikkelingsmodel. V-Model gebruikt dezelfde relaties tussen fasen die zijn gedefinieerd in het Waterfall-model. Maar in plaats van lineair af te dalen (zoals het Waterfall-model), stapt V-Model diagonaal naar beneden en gaat dan weer omhoog (na de coderingsfase), waardoor de vorm van de letter V wordt gevormd. RUP (Rational Unified Process) is een aanpasbaar procesraamwerk (geen enkel concreet proces), dat door de ontwikkelingsorganisatie kan worden aangepast aan hun behoeften. Enigszins vergelijkbaar met waterval, heeft het vaste fasen als begin, uitwerking, constructie en overgang. Maar in tegenstelling tot waterval is RUP een iteratief proces.
Wat is Agile?
Agile is een zeer recente softwareontwikkelingsmethodologie (of beter gezegd, een groep methodologieën) gebaseerd op het agile manifest. Dit is ontwikkeld om een tekortkoming in traditionele softwareontwikkelingsmethodologieën op te lossen. Agile-methoden zijn gebaseerd op het vroeg in de ontwikkelingscyclus hoge prioriteit geven aan de participatie van de klant. Het raadt aan om het testen door de klant zo vroeg en zo vaak mogelijk op te nemen. Elke keer dat er een stabiele versie beschikbaar komt, wordt er getest. De basis van Agile is gebaseerd op het starten met testen vanaf het begin van het project en doorgaan tot het einde van het project. Scrum- en Extreme-programmering zijn twee van de meest populaire varianten van Agile-methoden.
Key waarde van Agile is "kwaliteit is de verantwoordelijkheid van het team", wat benadrukt dat de kwaliteit van de software de verantwoordelijkheid is van het hele team (niet alleen het testteam). Een ander belangrijk aspect van Agile is het opsplitsen van de software in kleinere beheersbare delen en deze zeer snel aan de klant te leveren. Het leveren van een werkend product is van het grootste belang. Daarna blijft het team de software verbeteren en continu leveren bij elke belangrijke stap. Dit wordt bereikt door zeer korte releasecycli (sprints in Scrum genoemd) te hebben en aan het einde van elke cyclus feedback te krijgen voor verbetering. Bijdragers zonder veel interactie van het team, zoals ontwikkelaars en testers in de eerdere methoden, werken nu samen binnen het Agile-model.
Wat is het verschil tussen Agile en traditionele softwareontwikkelingsmethodologie?
Hoewel de Agile-methode gebaseerd is op iteratieve ontwikkeling, zoals sommige van de traditionele benaderingen, hebben Agile en traditionele methodologieën belangrijke verschillen. Traditionele benaderingen gebruiken planning als hun controlemechanisme, terwijl Agile-modellen de feedback van de gebruikers gebruiken als het belangrijkste controlemechanisme. Agile kan een mensgerichte benadering worden genoemd dan traditionele methoden. Agile-model levert zeer vroeg een werkende versie van het product op in vergelijking met traditionele methodologieën, zodat de klant al vroeg enkele voordelen kan realiseren. De testcyclustijd van Agile is relatief kort in vergelijking met traditionele methoden, omdat het testen parallel aan de ontwikkeling gebeurt. De meeste traditionele modellen zijn erg rigide en relatief minder flexibel dan het Agile-model. Vanwege al deze voordelen heeft Agile op dit moment de voorkeur boven de traditionele methodieken.