Evolutionäre Entwicklung

Manchmal ist man sich als Entwicklerteam nicht ganz darüber im Klaren, was die zu entwickelnde Software eigentlich wirklich alles können soll und kennt die Schnittstellen zu anderen Systemen vielleicht noch nicht ganz. Hier bietet sich eine evolutionäre Entwicklung an.

Von der Anfangsbeschreibung des zu entwicklenden Softwaresystems ausgehend arbeitet die evolutionäre Entwicklung mit abwechselnd mit der:

  • Spezifizierung (Anforderungsdefinition und –analyse)
  • Entwicklung (Entwurfsphase)
  • Validierung (Testphase)

Jede Aktivität hat einen Outputstrom. Die Spezifizierung entwirft eine anfängliche Version der Software während die Entwicklung laufend neue Versionen an bspw. den Auftraggeber liefert, damit der diese beurteilen kann. Jede Version wird also validiert und, falls noch Verbesserungen möglich sind, wird die Spezifierungsphase bzw. Entwicklungsphase wieder aktiviert. Nach erfolgreicher Validierung  steht man mit der entgültigen Version da.

Evolutionäre Entwicklung führt zu verkürzten Entwicklungszeiten und ermöglicht es dem Entwicklerteam, möglichst früh Feedback vom Auftraggeber zu erhalten. Wie schon erwähnt bietet sich dies besonders bei Projekten an, deren Anforderungen unklar und deshalb mit Risiken verbunden sind.