Agile Softwareentwicklung – was ist das eigentlich?

Agile Softwareentwicklung ist seit Jahren ein Trendbegriff, insbesondere im Bereich der Informationstechnologie. Er beinhaltet die Forderung nach einem höheren Entwicklungstempo, flexibleren Reaktionen und iterativen Prozessen. Was sich dahinter verbirgt bleibt jedoch häufig unklar.

 

Was ist agile Softwareentwicklung?

Hinter der agilen Softwareentwicklung verbirgt sich ein relativ neuer Ansatz. Das Ziel ist es, die Effizienz und Effektivität der Softwareentwicklung maßgeblich zu erhöhen. Gleichzeitig soll der Aufwand der Entwicklung so gering wie möglich gehalten werden. Dabei gibt es jederzeit die Möglichkeit, in den Prozess einzugreifen und Veränderungen vorzunehmen.
 

Wie genau diese Ziele erreicht werden sollen, zeigt sich in dem Manifest der agilen Softwareentwicklung. Dieses dient der Orientierung sowohl für den Ablauf als auch für die Interaktion während der Entwicklung.
 

 

Das Manifest der agilen Softwareentwicklung

Das sogenannte Manifest wurde 2001 von der Forschergruppe rund um Kent Beck erarbeitet, der mit seinem Buch „Extreme Programming“ 1999 den Grundstein für die agile Softwareentwicklung legte. Dieses Manifest umfasst vier Leitsätze:
 

  1. Individuen und Interaktionen sind wichtiger als Prozesse und Werkzeuge.
  2. Funktionierende Software hat Vorrang vor umfassender Dokumentation.
  3. Zusammenarbeit mit den Kunden steht über der Vertragsverhandlung.
  4. Reagieren auf Veränderungen geht vor Befolgen eines Plans.

Bereits an diesen vier Leitsätzen wird deutlich, dass sowohl der Mensch als auch die flexible Reaktion auf Veränderungen vor haargenauen Dokumentationen und Verträgen stehen. Noch deutlicher werden diese Aspekte in den herausgearbeiteten Prinzipien der agilen Softwareentwicklung.


 

Prinzipien der agilen Softwareentwicklung
 

Schnell und vor allem effizient klingt zunächst ganz praktisch. Dabei wird gerne direkt an Kostenvorteile und die Aussicht auf erste Produkt-Prototypen gedacht. Doch so schön das auch klingt, gilt es auch hierbei bestimmte Prinzipien zu beachten:
 

  1. Höchste Priorität hat die Kundenzufriedenheit. Diese wird durch eine schnelle Entwicklung und Bereitstellung bzw. Zulieferung von Software gewährleistet.
  2. Veränderungen werden stets bei der Entwicklung berücksichtigt, um dem Kunden dadurch Wettbewerbsvorteile zu sichern. Entsprechend agil sind die Entwicklungsprozesse.
  3. Funktionierende Software wird in kurzen Zeitspannen zur Verfügung gestellt (wenige Wochen/Monate).
  4. Auch die tägliche Zusammenarbeit von Experten und Entwicklern ist unerlässlich.
  5. Das Projektteam muss aus motivierten Personen bestehen. Dieses Team muss die passende Unterstützung in einem angemessenen Umfeld erhalten.
  6. Die Informationsvermittlung sowie Absprachen erfolgen am besten im persönlichen Gespräch.
  7. Der Projekt- bzw. Entwicklungsfortschritt wird anhand der funktionierenden Software gemessen.
  8. Die Nachhaltigkeit der Entwicklung wird durch ein permanentes, gleichmäßiges Tempo geschaffen.
  9. Die „Bewegung“ bzw. die Agilität innerhalb der Entwicklung wird durch den Fokus auf Perfektion hinsichtlich Design und Technik gefördert.
  10. Je einfacher, desto besser. Deshalb ist Einfachheit essentiell.
  11. Die Entwicklungsteams organisieren sich selbst.
  12. Die Teams nutzen eine regelmäßige Selbstreflexion zur Effizienzsteigerung der Arbeit.

     

Methoden für maximale Agilität bei der Softwareentwicklung


Um eine agile Vorgehensweise zu garantieren, gibt es mittlerweile diverse Herangehensweisen an Projekte. Die beiden bekanntesten Methoden für dieses Projektmanagement sind zum einen Scrum und zum anderen Kanban.
 

Die Scrum-Methode
 

Bei Scrum werden einzelne Projekte in Meilensteine, sogenannte „Sprints“, unterteilt. Das Projektteam bzw. einzelne Teammitglieder erarbeiten die jeweiligen „Sprints“, die zu fixen Zeitpunkten abgeschlossen sein müssen. Im Anschluss erfolgt eine „Sprint-Review“, um das bestehende Ergebnis zu beurteilen und nachfolgende Sprints (Verbesserungen, Erweiterungen etc.) festzulegen.

 

Die Kanban-Methode
 

Kanban ist insbesondere durch die Anwendung innerhalb der Produktion bei Toyota bekannt. Aufgaben werden visuell an einem sogenannten Kanban-Board festgehalten, das ebenfalls der zentrale Anlaufpunkt für Projektbesprechungen ist. Diese Board kann entweder als Whiteboard sichtbar in einem Raum hängen, oder digital mit Projektmanagement-Tools abgebildet werden. Die Projektteams organisieren sich mit Hilfe des Boards, indem sie dort die einzelnen Aufgaben sowohl dem Bearbeiter als auch dem entsprechenden Status zuordnen (z. B. „Offen“, „In Bearbeitung“ etc.).

 

Agile Softwareentwicklung = Lean Development?


Lean Development ist ein weiterer Trendbegriff, der gerne mit der agilen Softwareentwicklung direkt in Zusammenhang gebracht wird. Der Grund ist ganz einfach: Über Lean Development wird alles „Überflüssige“ eliminiert, wobei immer die Qualität des Endprodukte im Vordergrund steht. Damit einhergehend wird immer eine Effizienzsteigerung unterstellt.


Doch gerade der Ausschluss von „Überflüssigem“ ist das, was eine direkte Gleichsetzung von Lean Development und agiler Entwicklung unmöglich macht. Letztgenannte ist sehr kommunikations- und interaktionsbedürftig, wobei genau diese Punkte bei klaren Projektstrukturen häufig als „überflüssig“ betrachtet wird.

 

Vorteile der agilen Softwareentwicklung


Agil klingt direkt vielversprechend und bereits in den vorhergehenden Abschnitten zeigt sich, dass sich dahinter einige Vorteile verbergen. Folgend alle Vorteile zusammengefasst auf einen Blick.
 

  • Keine Zeitverluste bei der Programmierung durch übermäßige Protokolle und Dokumentationen  
  • Regelmäßige Resultate in vergleichbar kurzen Zeitabständen
  • Durch regelmäßige Resultate kann ebenfalls regelmäßig geprüft und getestet werden
  • Iterative Prozesse in denen Änderungswünsche den Fortschritt maßgeblich beeinflussen
  • Steter Kontakt zwischen allen Projektbeteiligten – sowohl intern als auch auf Kundenseite
  • Das fertige Produkt hat die Funktionen, die benötigt werden
  • Hohe Transparenz während des Entwicklungsprozesses
     

Neugierig geworden? Im Zuge der agilen Softwareentwicklung und -wartung haben Sie als Kunde bei uns stets alles im Blick. Dadurch haben Sie die Sicherheit, dass wir Ihre Bedürfnisse genau verstehen und sie zielsicher umsetzen. Sie möchten mehr wissen? Gerne informieren wir Sie in einem persönlichen Gespräch. Kontaktieren Sie uns einfach.

Tags

digitale Revolution
Softwareentwicklung
Projektmanagement
Ihr Ansprechpartner: Sven Bartak

Wir beantworten gerne persönlich Ihre Fragen dazu, wie wir agile Softwareentwicklung einsetzen. 

Sven Bartak | CTO
+49 231 556952-74 | s.bartak@teampenta-systems.eu