Agile versus traditionele software-ontwikkelingsmethodologie
Er zijn tegenwoordig verschillende methoden voor het ontwikkelen van software in de software-industrie. De watervalontwikkelingsmethode is een van de vroegste methoden voor softwareontwikkeling. V-Model, RUP en enkele andere lineaire, iteratieve en gecombineerde lineair-iteratieve methoden, die na de watervalmethodologie ontstonden, waren bedoeld om veel problemen met de watervalmethode weg te vagen. Al deze eerdere methodologieën worden traditionele software-ontwikkelingsmethodologieën genoemd. Agile-model is een recenter ontwikkeld software-ontwikkelingsmodel om de tekortkomingen in de traditionele modellen aan te pakken. De focus van Agile is het zo vroeg mogelijk opnemen van testen en het vroegtijdig vrijgeven van een werkende versie van het product, door het systeem op te delen in zeer kleine en beheersbare subonderdelen..
Wat is traditionele software-ontwikkelingsmethodologie?
Softwaremethodieken zoals Waterfall-methode, V-Model en RUP worden traditionele software-ontwikkelingsmethodieken genoemd. Watervalmethodologie is een van de eerste modellen voor softwareontwikkeling. Zoals de naam al doet vermoeden, is het een opeenvolgend proces waarin de voortgang van boven naar beneden, analoog aan een waterval, door verschillende fasen loopt (analyse van behoeften, ontwerp, ontwikkeling, testen en implementatie). V-Model wordt beschouwd als een uitbreiding van het software-ontwikkelingsmodel van de Waterfall. V-Model gebruikt dezelfde relaties tussen fasen die zijn gedefinieerd in het model Waterval. Maar in plaats van lineair af te dalen (zoals het watervalmodel) stapt V-Model diagonaal naar beneden en gaat dan weer omhoog (na de coderingsfase), waarbij het de vorm van de letter V vormt. RUP (Rational Unified Process) is een aanpasbaar procesraamwerk (niet een enkel concreet proces), dat door de ontwikkelingsorganisatie kan worden aangepast aan hun behoeften. Iets vergelijkbaar met waterval, heeft het gefixeerde fasen als inceptie, uitwerking, constructie en overgang. Maar in tegenstelling tot waterval is RUP een iteratief proces.
Wat is Agile?
Agile is een zeer recente softwareontwikkelingsmethodologie (of juister, een groep van methodologieën) gebaseerd op het agile-manifest. Dit is ontwikkeld om een tekortkoming in traditionele softwareontwikkelingsmethodieken op te lossen. Agile methoden zijn gebaseerd op het geven van hoge prioriteit aan de klantparticipatie in het begin van de ontwikkelingscyclus. Het adviseert om testen door de klant vroeg en vaak mogelijk op te nemen. Testen gebeurt op elk punt waarop een stabiele versie beschikbaar komt. De basis van Agile is gebaseerd op het starten van testen vanaf het begin van het project en loopt door tot het einde van het project. Scrum- en Extreme-programmering zijn twee van de meest populaire varianten van Agile-methoden.
De kernwaarde 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 van het testteam). Een ander belangrijk aspect van Agile is de software opsplitsen in kleinere, hanteerbare onderdelen en deze snel aan de klant leveren. Het leveren van een werkend product is van het grootste belang. Vervolgens blijft het team de software verbeteren en continu leveren bij elke belangrijke stap. Dit wordt bereikt door zeer korte vrijgavecycli (sprints genoemd in Scrum) en feedback voor verbetering aan het einde van elke cyclus te krijgen. Bijdragers zonder veel interacties van het team, zoals ontwikkelaars en testers in de eerdere methoden, werken nu samen in het Agile-model.
Wat is het verschil tussen Agile en Traditional Software Development Methodology?
Hoewel de Agile-methode gebaseerd is op iteratieve ontwikkeling als enkele van de traditionele benaderingen, hebben Agile en traditionele methodologieën belangrijke verschillen. Traditionele benaderingen gebruiken planning als hun besturingsmechanisme, terwijl Agile-modellen de feedback van de gebruikers gebruiken als het belangrijkste besturingsmechanisme. Agile kan een op mensen gerichte benadering worden genoemd dan traditionele methoden. Agile-model levert een werkende versie van het product heel vroeg in vergelijking met traditionele methodologieën, zodat de klant al vroeg voordelen kan realiseren. De testcyclustijd van Agile is relatief kort in vergelijking met traditionele methoden, omdat het testen parallel aan de ontwikkeling wordt gedaan. De meeste traditionele modellen zijn erg stijf en relatief minder flexibel dan het Agile-model. Vanwege al deze voordelen heeft Agile op dit moment de voorkeur boven de traditionele methodologieën.