Softwareontwikkeling methoden

Geschiedenis Ontwikkelmethoden

Tot in de jaren negentig van de vorige eeuw werden IT-systemen vooral ontwikkeld met behulp van de zogenaamde lineaire of watervalmethoden. Doordat projecten die op basis van die methoden werden uitgevoerd tot problemen leidden (tijd, budget en kwaliteit) ontstond er een behoefte aan alternatieve systeemontwikkelingsmethoden. Ontwikkelmethoden die flexibeler en minder bureaucratisch waren. Vanuit die behoefte ontstonden de zogenaamde incrementele en iteratieve ontwikkelmethoden voor systeemontwikkeling. De zogenaamde Agile ontwikkelmethoden. Waarvan in de jaren '90 de methode RUP het meest populair was. Terwijl vandaag de dag Scrum veruit de meest populaire ontwikkelmethode is. Hieronder worden de belangrijkste methoden toegelicht:
 
  1. Watervalmethode / V-model
  2. Agile
  3. Rational Unified Process (RUP)
  4. Scrum
 
Een softwareontwikkelmethode wordt gebruikt om het ontwikkelproces systematisch aan te pakken. Alle softwareontwikkelingsmethoden maken daarbij gebruik van de vier basisstappen in softwareontwikkeling; specificeren, ontwerpen, programmeren (bouwen) en testen. De methoden verschillen doordat zij de stappen anders invullen. Of omdat de verschillende methoden meer een iteratief of planmatig karakter hebben. Maar welke ontwikkelmethode is nu het best?
 

Keuze ontwikkelmethode

In de literatuur en in de praktijk heeft Agile ontwikkelen in de vorm van Scrum op dit moment de voorkeur. Omdat deze methode flexibel is en 'lean and mean' is vormgegeven. Als er wordt voldaan aan de uitgangspunten van Scrum en er is sprake van veranderende specificaties dan is Scrum ook volgens ons de beste ontwikkelmethode. Maar wat als de specificaties wel stabiel zijn? Of er wordt niet voldaan aan de eisen die Scrum stelt aan de IT-organisatie? Hieronder staan een aantal overwegingen om de juiste ontwikkelmethodiek te kiezen:
 
  • Stabiliteit specificaties; als de specificaties stabiel zijn dan kan het watervalmodel net zo goed als Agile-methoden (zoals RUP en Scrum) uitkomst bieden. Als de specificaties nog niet vast staan of er als ervoor gekozen wordt om incrementeel te ontwikkelen dat lijkt alleen een Agile methodiek reëel. Maar dan moet de IT-organisatie deze vorm van ontwikkelen natuurlijk wel ondersteunen. 
  • Rol gebruikersorganisatie; bij lineair ontwikkelen (watervalmodel) beperkt de betrokkenheid van de gebruikersorganisatie zich tot het opstellen van specificaties en het accepteren van het systeem. Bij agile-achtige methodieken is de gebruiker onderdeel van de voortbrenging. De gebruiker is dan continu aanwezig, heeft mandaat om beslissingen te nemen en durft dat ook. Heeft de gebruiker geen tijd of mandaat of durft de gebruiker geen beslissingen te nemen dan verliest Agile iets van haar kracht. 
  • Multidisciplinaire teams; het flexibel inspelen op veranderende specificaties stelt hoge eisen aan de aansturing van het project. Daarom vereisen agile-achtige methodieken dat teamleden naast inhoudelijke kennis en kunde ook beschikken over projectmanagement vaardigheden. Bij de watervalmethode is dat laatste minder het geval. 
  • Deployfrequentie; agile-achtige ontwikkelmethoden vereisen een hoge frequentie van deploy. Waardoor meerdere omgevingen (zoals productie, test en ontwikkelomgeving) zonder problemen naast elkaar beheerd kunnen worden. Dit stelt hoge eisen aan het deploy- en configuratiemanagement. De watervalmethode stelt door het lineair ontwikkelen hier minder hoge eisen aan. En volstaat een productie- en ontwikkel-/testomgeving. De vraag is wat de IT-organisatie aan kan. 
  • Volwassenheid IT-organisatie; wanneer een organisatie geen ervaring heeft met grote IT-projecten verdient het sterk de voorkeur om een methodiek te kiezen waar iteratief ontwikkelen centraal staat. Omdat dan regelmatig duidelijk wordt hoe het project ervoor staat doordat de opgeleverde deelsystemen door de gebruikersorganisatie tussentijds beoordeeld worden. Terwijl bij het watervalmodel pas bij oplevering van het gehele systeem duidelijk wordt of het voldoet aan de verwachtingen van de gebruikersorganisatie.
 
Agile-achtige ontwikkelmethoden zoals RUP en Scrum hebben de voorkeur. En al helemaal als systeemontwikkeling in een veranderende omgeving plaatsvindt. Maar dan nog is het de vraag of je deze methoden daadwerkelijk kunt gebruiken. Dat is afhankelijk van de aandachtspunten die hierboven staan opgesomd. Stel dat de gebruikersorganisatie geen medewerkers ter beschikking kan stellen. Of dat de IT-organisatie niet in staat is om meerdere ontwikkel-omgevingen naast elkaar te beheren. In dat geval leiden andere methoden, zoals iteratief ontwikkelen of het watervalmodel toch tot betere resultaten.

Deel House of Control via Social Media