Wat is Agile Softwareontwikkeling?
Agile is een stroming welke betrekking heeft op de gebruikte principes bij het flexibel en projectmatig ontwikkelen van softwareontwikkeling. Agile zelf is geen methode maar een verzamelnaam. Binnen Agile zijn er verschillende onderliggende methodes ontstaan welke elk een andere manier van werken kenmerkt. Een voorbeeld is Scrum. Hoewel elke methode onder de noemer Agile valt staat bij elke methode de principes van het Agile Manifesto aan de basis.
Kenmerken van Agile softwareontwikkeling zijn het werken met iteraties, directe communicatie, definitie van de voortgang en het tussentijds opleveren van werkende software.
De basis van Agile: het Agile Manisfesto
Het Agile Manifesto is al in de jaren 90 ontstaan uit onvrede over klassieke softwareontwikkeling, zoals het watervalmodel. Van deze methoden vond men dat het creativiteit en effectiviteit van ontwikkelaars vooral belemmert ipv stimuleert.
Later in 2001 werd het Agile Manifesto ook echt op papier gezet. Dit gebeurde tijdens een bijeenkomst van zeventien softwareontwikkelaars in Utah (USA).
Het Agile Manifesto is daar door zeventien mensen ondertekend. Enkelen hiervan hebben de “Agile Alliance” opgericht. Doel is hiervan is om de principes om te zetten in methodieken.
Nederlandse vertaling van het Agile Manifesto
In het Agile Manifest wordt uitgesproken welke kernwaarden voor softwareontwikkeling belangrijk zijn. Het Agile manifest zelf is zeer kort en krachtig. De basisprincipes werden uitgelicht als tegenstellingen. Hier een overzicht van de belangrijke Agile principes.
- Mensen en hun onderlinge samenwerking prefereren boven processen en hulpmiddelen
- Werkende producten prefereren boven allesomvattende documentatie
- Samenwerking met de klant prefereren boven contractonderhandelingen
- Inspelen op verandering prefereren boven het volgen van een plan
Verdere toelichting van het Agile Manifesto voor softwareontwikkeling.
- De hoogste prioriteit is het tevredenstellen van de klant door het vroeg en voortdurend opleveren van waardevolle software.
- Men verwelkomt veranderende requirements (eisen), zelfs laat in het ontwikkelproces. Agile processen benutten verandering tot concurrentievoordeel van de klant.
- Lever regelmatig werkende software op. Liefst iedere paar weken, minimaal iedere paar maanden.
- Mensen uit de business en ontwikkelaars moeten dagelijks samenwerken gedurende het gehele project.
- Bouw projecten rond gemotiveerde individuen. Geef hen de omgeving en ondersteuning die ze nodig hebben en vertrouw erop dat ze de klus klaren.
- De meest efficiënte en effectieve manier om informatie te delen in en met een ontwikkelteam is door met elkaar te praten.
- Werkende software is de belangrijkste maat voor voortgang.
- Agile processen bevorderen constante ontwikkelsnelheid. De opdrachtgevers, ontwikkelaars en gebruikers moeten een constant tempo eeuwig kunnen volhouden.
- Voortdurende aandacht voor een hoge technische kwaliteit en voor een goed ontwerp versterken agile werken
- Eenvoud, de kunst van het maximaliseren van het werk dat niet gedaan wordt, is essentieel.
- De beste architecturen, eisen en ontwerpen komen voort uit zelfsturende teams.
- Het Agile team onderzoekt op vaste tijden hoe het effectiever kan worden en past vervolgens zijn gedrag daarop aan.