Mit der Nutzung unserer Website erklären Sie sich damit einverstanden, dass wir Cookies verwenden. Mehr Informationen

| Zustimmen

Blog

Was ist agile Softwareentwicklung?

Agile Softwareentwicklung

Agile Softwareentwicklung ist der Oberbegriff für verschiedene Projektmanagement-Methoden, die als Gegenentwurf zum traditionellen IT-Projektmanagement entstanden sind.

Das agile Vorgehen zeichnet sich durch iterative und schlanke Prozesse aus, die durch Rückkopplung mit dem Kunden das unternehmerische Risiko minimieren und zu schnelleren und besseren Endergebnisse führen.

Historie
Werte & Prinzipen
Agile Methoden
Vorteile
Nachteile
Fazit

Historie

Die agile Softwareentwicklung hat ihre Ursprünge in den 1990er-Jahren. Unternehmen hatten erkannt, dass die technologische Entwicklung zu schnell verläuft und sie mit dem traditionellen Vorgehen Projekte nicht mehr optimal umsetzen konnten. Kunden war und ist es oft nicht möglich, von Beginn an alle Anforderungen an ihre Software zu nennen. In der Regel verändern sich Anforderungen im Laufe des Projekts. Vor diesem Hintergrund begannen Entwickler mit flexibleren Ansätzen zu experimentieren. Damals wurden bereits Elemente der heutigen Methodiken eingesetzt, allerdings noch unter anderen Bezeichnungen.

Als ein Meilenstein für die agile Softwareentwicklung gilt die Veröffentlichung von "Extreme Programming" von Kent Beck 1999, die die Basis für die Weiterentwicklung des agilen Ansatzes legte. Eine Entwicklergruppe um Beck formulierte schließlich 2001 das Agile Manifest, in dem die Werte, Konzepte und Methoden der agilen Softwarentwicklung definiert wurden.

Werte & Prinzipien

Agile Softwareentwicklung folgt anderen Prioritäten als die klassische Entwicklung, ohne die traditionellen Werte und Prinzipien völlig aus den Augen zu verlieren.

Die 4 Werte des Agilen Ansatzes

  1. Menschen und Interaktionen sind wichtiger als Prozesse und Werkzeuge
  2. Zusammenarbeit mit dem Kunden ist wichtiger als die Vertragsverhandlung
  3. Funktionierende Software ist wichtiger als eine umfassende Dokumentation
  4. Reagieren auf Veränderungen ist wichtiger als das Festhalten an einem einmal erstellten Plan

Die 12 agilen Prinzipien

Da die Werte noch keinen Leitfaden bilden für die Umsetzung von Projekten, wurden sie durch zwölf praxisorientierte Prinzipien konkretisiert:

  1. Höchste Prioriät hat die Zufriedenheit des Kunden, die durch frühe und kontinuierliche Auslieferung von wertvoller Software erreicht wird.
  2. Veränderungen werden willkommen geheißen, auch spät im Prozess und zum Wettbewerbsvorteil des Kunden genutzt.
  3. In regelmäßigen, bevorzugt kurzen Zeitspannen (wenige Wochen oder Monate) wird funktionierende Software geliefert.
  4. Fachexperte und Entwickler kommunizieren täglich während des Projektes
  5. Projektmitarbeiter wird ein angemessenes Arbeitsumfeld zur Verfügung gestellt und Unterstützung angeboten, die sie benötigen, um ihre Aufgabe motiviert zu erfüllen.
  6. Informationen werden möglichst im persönlichen Gespräch von Angesicht zu Angesicht übermittelt.
  7. Als wichtigstes Fortschrittsmaß gilt die Funktionsfähigkeit der Software
  8. Das gleichmäßige Arbeitstempo wird von Auftraggebern, Entwicklern und Benutzern eingehalten, um eine nachhaltige Entwicklung zu erreichen.
  9. Das Augenmerk liegt kontinuierlich auf technischer Exzellenz und gutem Design.
  10. Einfachheit ist essenziell (KISS-Prinzip).
  11. Teams organisieren sich selbst bei der Planung und Umsetzung.
  12. Die Selbstreflexion der Teams über das eigene Verhalten macht Effizienzsteigerungen möglich.

Mehr zum Agilen Manifest

Anwendung

Agile Softwarentwicklung ist ein Sammelbegriff. Für die konkrete Umsetzung des Ansatzes wurden verschiedene Modelle entwickelt.

Ihnen gemeinsam ist, dass die Entwicklung von Software in Inkrementen (Teilergebnissen) erfolgt. Die Phasen Konzeption, Planung, Entwicklung, Test und Auslieferung, die in der traditionellen Methodik sukzessive abgeschlossen werden, finden im Agilen in jedem Sprint bzw. für jede Teilentwicklung statt.

Einzelne Software-Elemente werden in iterativen Prozessen fertiggestellt und immer wieder über Feedback vom Kunden optimiert, bis ein zufriedenstellendes Endergebnis vorliegt.

Anders als in klassischen Projekten ist also der Umfang des Projekts nicht vorab final definiert. Als fixe Rahmenbedingungen sind Zeit und Ressourcen gegeben.

Agile Methoden – Eine Übersicht

Zu den bekanntesten agilen IT-Projektmanagement-Methoden gehören Scrum, Kanban und Extreme Programming.

Scrum

Agile Softwareentwicklung nach Scrum ist eine der am weitesten verbreiteten Methoden. Scrum wird auch außerhalb der IT-Entwicklung in vielen Branchen für das Projektmanagement eingesetzt.

Charakteristisch für die Entwicklung mit Scrum ist die Arbeit in kleinen Entwicklerteams (drei bis neun Personen), kurzen Sprints von maximal vier Wochen und einem hohen Grad an Selbstorganisation der Entwicklerteams.

Mehr zu Scrum

Kanban

Die Methode stammt ursprünglich aus der Produktentwicklung des Automobilherstellers Toyota. Im IT-Projektmanagement unterstützt der visuelle Ansatz Teams, Engpässe schnell zu erkennen, Verbesserungsansätze zu definieren sowie zu testen und einen gleichmäßigen Workflow sicherzustellen.

Herzstück von Kanban (japan. Signalkarte) ist das Kanban Board, das in drei Spalten gegliedert wird, und auf dem farbige Aufgabenkärtchen platziert werden. Alle Aufgaben fallen in eine der drei Kategorien: To Do, In Progress oder Done. Einzelne Aufgaben werden auf Kärtchen notiert und je nach Status durch die Spalten verschoben. Dabei gibt es nur einen Bearbeiter pro Karte. Häufig wird auch ein Aufgabenlimit pro Mitarbeiter definiert. Kanban Boards können in physischer oder digitaler Form geführt werden.

Kanban strukturiert das Aufgabenmanagement. Daher kann es mit der klassischen Planung, zum Beispiel in einem Gantt Chart, kombiniert werden.

Mehr zu Kanban

Unser Support empfiehlt:

Durch einen Wechsel der Ansicht können Sie in Merlin Project vom klassischen Strukturplan auf eine agile Kanban-Tafel umschalten. So geht hybrides Projektmanagment!

Extreme Programming

Die Bezeichnung Extreme Programming spielt darauf an, dass in dieser Methode agile Prinzipien auf extreme Weise umgesetzt werden.

Der Ansatz geht davon aus, dass der Kunde vorab noch keine genauen Kenntnisse seiner Anforderungen haben kann. Daher müssen Änderungen im Verlauf des Projekts einbezogen werden. Um Kostenexplosionen zu verhindern, werden im Extreme Programming schnelle Entwicklungsprozesse benötigt. Auch in dieser Methode findet die Entwicklung in Iterationen statt. Entwickler, Kunden und Manager stehen während des gesamten Projekts in engem kommunikativem Austausch, der auf Augenhöhe stattfindet.

Anders als zum Beispiel bei Scrum, das klare Rahmenbedingungen vorgibt, kennt Extreme Programming nur wenige feste Regeln. Vielmehr werden diese in gemeinsamen Meetings ausgehandelt. Im Fokus steht immer die effiziente Zeitnutzung. Es wird festgelegt, welche Aufgaben oder Routinen in welcher Zeiteinheit erledigt werden soll. Diese werden in jeder Iteration durchlaufen, sodass die Zeiteinheiten die Struktur des Extreme Programmings vorgeben.

Mehr zu Extreme Programming

Weitere agile Methoden in der Software-Entwicklung

  • DSDM
  • Adaptive Software Development
  • Crystal
  • Feature-Driven Development
  • Pragmatic Programming

Vorteile

Die agile Softwareentwicklung hat verschiedene Vorteile gegenüber traditionellen Methoden wie dem Wasserfall- oder dem Spiralmodell.

  • Schnellere Ergebnisse: Da die Entwicklung in Inkrementen erfolgt, können früh erste Ergebnisse präsentiert und getestet werden.
  • Bessere Qualität: Qualitätssicherung und Testing sind als feste Bestandteile in die einzelnen Sprints integriert.
  • Kommunikationsvorteile: Kommunikation gehört zum Kern der agilen Methoden. Kundenanforderungen und Interessen von Stakeholdern werden eher berücksichtigt
  • Risikominimierung: Durch die Arbeit in Teams und kurzen Sprints werden Fehler schneller sichtbar und wird wirtschaftlicher Schaden in Grenzen gehalten.
  • Höhere Rentabilität: Da Teilergebnisse bereits früh live gehen, während Entwickler weitere Features fertigstellen, wird der Umsatz erhöht.

Nachteile

Mit den Vorteilen der Agilität sind auch einige Nachteile oder Risiken verbunden.

  • Unsicherheit: Teilweise besteht zu Beginn des Projekts erhebliche Unsicherheit in Bezug auf das anzusteuernde Endergebnis. Dies kann zu Frustration, unklugen Entscheidungen und unsauberer Arbeit führen.
  • Zeit: Wer agil arbeitet, muss mehr Zeit für Kommunikation einplanen. Viele Meetings sind als Face-to-Face-Gespräche geplant, was Mitarbeitern Zeit und Energie kostet.
  • Soft Skills: Die Zusammenarbeit mit dem Kunden ist deutlich enger als im traditionellen Projektmanagement. Damit sie gelingt, braucht der Kunde gegebenenfalls Schulungen oder Vorbereitung. Auch die Entwickler sind gefordert, ihre kollaborativen und kommunikativen Kompetenzen zu trainieren.
  • Scope: Beim agilen Vorgehen besteht die Gefahr, dass Projekte ausufern, weil sich der Scope aufgrund von neuen und unklaren Kundenanforderungen permanent ändert.

Fazit

Dass Softwareentwicklung von agilen Elementen profitiert, bestreitet heute kaum noch jemand. Doch nicht immer ist agiles Vorgehen die beste Wahl. Agile Softwareentwicklung spielt ihre Stärken aus, wenn das Projektziel komplex und das Endergebnis zu Beginn nicht oder nicht klar definiert werden kann. Wenn absehbar ist, dass während des Projekts mehrfach Änderungen integriert werden müssen, sind agile Methoden der Ansatz der Wahl. Allerdings eignen sich agile Methoden nicht, wenn der Kunden nicht bereit ist, den einmal gewählten Scope während des Projekt anzupassen. Auch zu berücksichtigen ist, dass Unternehmen mehr Nachteile als Vorteile haben, wenn sie zwar agile Ansätze wie Sprints und Stand-up Meetings integrieren, aber Mindset und Prozesse der traditionellen Herangehensweise beibehalten.

Weiterführende Links

Geschrieben von Paul Henkel am 08.01.2018 unter Projektmanagement
Tags: agil scrum kanban crystal

Merlin Project auf dem Mac und dem iPad

Ihre Ideen, unsere Magie – Projekte einfach verwirklichen!
Jetzt 30 Tage kostenlos testen.