Agile Softwareentwicklung - Grundlagen, Werte und Prinzipien

Agile Softwareentwicklung - Grundlagen, Werte und Prinzipien

Grundlagen

Als Begründung für die Entstehung der agilen Software-Entwicklung wird meistens das Wasserfallmodel oder V-Modell angeführt. In den 90er-Jahren war das Wasserfallmodel vorherrschend. Die erste formale Beschreibung des Wasserfallmodells wird Winston W. Royce zugeschrieben, obwohl dieser in seinem 1970 erschienenen Artikel den Namen „Wasserfall“ nicht verwendete. Das Wasserfallmodel wurde aus dem Bau- und Produktionsprozess auf die Software-Entwicklung adaptiert, weil es noch keinen formalen Softwareentwicklungsprozess gab [1].

Durch die CASE-Tools - computer-aided Software Engineering-Tools - wurde versucht, den Softwareentwicklungsprozess möglichst zu automatisieren, was nicht gelang. Allerdings gibt es diese Tools heute noch für spezielle Aufgabenstellungen.

Auch diese Tools änderten am eigentlichen Problem wenig. Das Problem war, dass viele Softwareentwicklungsprojekte scheiterten.

Kent Beck war einer der ersten, der mit seinem Buch 'Extreme Programming' 1999 ein agiles Vorgehen bei der Softwareentwicklung beschrieb. Kent Beck war mit anderen dann auch dabei, als sich 2001 in Utah 17 Software-Entwickler trafen um über den Stand der Software-Entwicklung zu sprechen. Ein Ergebnis dieses Treffens ist die Postulierung des 'Agilen Manifestes' - 'The agile manifesto'. Das agile Manifest findet man in [2].

Es haben sich verschiedene Frameworks etabliert auf der Basis der agilen Werte und Prinzipien. Die meisten existierten bereits zum Zeitpunkt, als das agile Manifest formuliert wurde. Die zwei Wichtigsten sind Scrum und XP (eXtreme Programming), weil ein Großteil aller agilen(!) Softwareentwicklungsprojekte mit einem der beiden oder einer Kombination aus beiden durchgeführt werden.

Scrum wurde Mitte der Neunziger Jahre von Ken Schwaber und Jeff Sutherland vorgestellt. Im Jahr 2000 stellte Kent Beck eXtreme Programming in seinem Buch 'Extreme Programming – das Manifest' vor.

Werte

Die agilen Werte, die sich aus den Grundlagen ableiteten sind:

  • Mut
  • Respekt
  • Fokussierung
  • Einfachheit
  • Kommunikation
  • Offenheit
  • Selbstverpflichtung (commitment)
  • Rückmeldung (feedback)

Die konkrete Ausgestaltung der Werte in Handlungen findet man bei den beschriebenen Frameworks umgesetzt:

Prinzipien (sicher nicht vollständig)

  • Verantwortung
  • Selbstorganisation
  • Reflexion
  • Kontinuierliche Verbesserung
  • Bevollmächtigt sein
  • Verschwendung vermeiden

[1]: Wasserfallmodel

[2]: Agile Softwareentwicklung