Er heerst tweedracht in de softwarewereld. Tegenover elkaar staan de aanhangers van software-engineeringaanpakken, zoals Rational Unified Process (Rup), en supporters van Agile-methodes, zoals Scrum en XP. Aangezien beide benaderingen op incompatibele manieren zijn omschreven, is deze verdeeldheid wel begrijpelijk. In essentie vullen de achterliggende ideeën elkaar echter aan. De truc is om ze op een manier te combineren die voor beide kampen acceptabel is.
De softwarewereld houdt van schommelen. We schommelen van de ene manier van werken naar de andere, van het ene uiterste naar het andere. Van alles doen met UML volgens een prescriptief software-engineeringproces zijn we nu op weg naar het andere extreem, genaamd Agile. Ik zie daar jonge engineers die voor het eerst schommelen en mensen van middelbare leeftijd die net terugkomen van die software-engineeringaanpakken. Iedereen is agile tegenwoordig. Natuurlijk. We zijn toch niet gek?
Laat ik duidelijk zijn: ik mag dan wel medebedenker zijn van Rup, maar ik ben een groot fan van Agile. Mijn teams bij Ericsson waren al ontzettend agile. Maar de meeste mensen met wie ik spreek hebben slechts een vaag begrip van waar het nou precies om draait. Een tijdje terug deed ik mee aan een paneldiscussie met Agile-evangelisten. Toen het publiek ons vroeg naar een definitie, begonnen de zichzelf Agile-experts noemende panelleden te raaskallen. Herhaaldelijk heb ik ze horen zeggen dat iterativiteit toch wel een van de belangrijkste eigenschappen is. Helemaal verkeerd. Iteratief ontwikkelen is een van de sleutelpraktijken bij Rup. Sterker nog, het was er al lang vóór Rup. Toen heette het spiral development. Barry Boehm bedacht het eind jaren zeventig.