AGILE-SOFTWARE-DEVELOPMENT

Algemeen

Onze voorkeur voor software-ontwikkeling is de zogenaamde Agile-software-ontwikkeling. Dit is een conceptueel raamwerk voor het uitvoeren van software-ontwikkelingsprojecten als alternatief voor traditionele methodes. Het concept hiervan valt terug te brengen tot het Agile Manifesto (februari 2001), tijdens een informele samenkomst van ontwikkelaars. Het Engelse woord agile betekent: behendig, lenig.

Het handvest stelt dat goede software wordt gemaakt door:

  1. Personen en interacties, eerder dan processen en tools
  2. Software die werkt, eerder dan lijvige documentatie
  3. Samenwerking met de klant, eerder dan onderhandeling over het contract
  4. Omgaan met verandering, eerder dan het volgen van een plan

Uit dit handvest volgen twaalf principes:

  1. Klanttevredenheid, door snelle, continue levering van bruikbare software
  2. Zelfs late veranderingen in de requirements zijn welkom
  3. Werkende software wordt regelmatig geleverd (weken eerder dan maanden)
  4. De ontwikkelaars werken nauw en dagelijks samen met de mensen die de business kennen
  5. Projecten steunen op gemotiveerde en betrouwbare personen
  6. Een gesprek in levende lijve is de beste manier van communicatie, wat betekent dat men zich best op dezelfde plek bevindt
  7. Werkende software is de eerste maatstaf van vooruitgang
  8. De ontwikkeling kan te allen tijde worden voortgezet
  9. Er is voortdurende aandacht voor technische uitmuntendheid en goed ontwerp
  10. Eenvoud is belangrijk: hoe meer er niet gedaan wordt, hoe beter
  11. De teams organiseren zichzelf
  12. Men past zich aan aan de omstandigheden

Dit handvest en de principes zijn een kristallisatie van ideeën die midden de jaren negentig zijn ontstaan, als reactie op methoden die men traditioneel klasseert als waterval-ontwikkelmodellen. Deze traditionele modellen worden dikwijls ervaren als bureaucratisch, traag en bekrompen en belemmeren in veel gevallen de creativiteit en effectiviteit van ontwikkelaars. 

Kenmerken van Agile-software-ontwikkeling

De agile-software-ontwikkeling kenmerkt zich door iteraties, communicatie en vooruitgang.

Iteraties

Met deze methode proberen wij risico's te verminderen door software te ontwikkelen in korte overzichtelijke perioden (timeboxes), die 'iteraties' genoemd worden. Elke iteratie is als het ware een miniatuurproject op zichzelf, en omvat alle noodzakelijke taken: planning, analyse, ontwerp, testen en documentatie. Een iteratie levert niet altijd genoeg op om het eindproduct vrij te geven. Desondanks is het de bedoeling van een agile-project om na iedere iteratie iets bruikbaars voor de markt op te leveren. Voor software gaat dat vaak op als ze web-gebaseerd is. Maar, ongeacht het resultaat wordt na iedere iteratie door het ontwikkelteam opnieuw afgewogen wat de project-prioriteiten zijn.

Communicatie

Bij agile-methoden ligt de nadruk op directe communicatie, bij voorkeur als persoonlijk contact, in plaats van geschreven verslaglegging. Hoewel de meeste agile-teams zijn gehuisvest op één locatie, werkt deze methodiek ook als onze medewerkers vanuit ons kantoor werken aan opdrachten. Hoewel directe communicatie het meest optimaal is, is het gebruik van telefoon, skype en mail dikwijls ook toereikend genoeg. Een agile-team bestaat ten minste uit de ontwikkelaars en diegenen die het product definiëren. Dat kunnen product-managers zijn, business-analisten of zelfs klanten.

Vooruitgang

Bij agile-methoden wordt de voortgang afgemeten aan de hand van werkende producten of prototypes. In agile-projecten wordt erg weinig geschreven documentatie geproduceerd, vergeleken met andere methoden.

Meer informatie over agile-software-ontwikkeling.

Neem contact met mij op