Klassische Softwareentwicklungsmethoden wie das Wasserfallmodell setzen darauf, zu Anfang eines Projekts genau die Anforderungen etwa in einem Pflichtenheft festzuhalten, nach denen die Software entwickelt wird. Dies ist eine nicht ganz unerhebliche Aufgabe; da sich genaue Anforderungen für den Einsatz am Markt mitunter zu Projektstart noch nicht bis ins letzte Detail definieren lassen. Agile Softwareentwicklung hingegen setzt darauf, so früh wie möglich ein laufendes System auszuliefern, das dann in Iterationen und basierend auf dem Feedback des Nutzers immer weiter entwickelt wird. Tägliche „Stand-Up-Meetings“(von meist sehr kurzer Dauer) über den laufenden Entwicklungsfortschritt und die Festlegung nächster Ziele sorgen dafür, dass das Team über den Entwicklungsprozess im Bilde ist und auch aus den anderen Bereichen des Projektes auf dem Laufenden ist, was zu einem besseren Verständnis in der Produktenwicklung sorgt. Im engen Austausch mit den Nutzern werden die kommenden Entwicklungsschritte diskutiert, die dann in der nächsten Iterationsstufe implementiert werden. Bekannte Projektmanagementmethoden aus diesem Bereich sind Scrum oder Kanban.
Erste Ansätze agiler Software-Entwicklung reichen zurück bis in die frühen 90er Jahre. Als feststehender Begriff wurde es aber 2001 im sogenannten „Agilen Manifest“ geprägt.
Weiterhin sagt das Manifest, dass die Werte auf der rechten Seite zwar auch wichtig seien – schwerer würden aber die Werte auf der linken Seite wiegen.
Aus diesen Werten leitet das Agile Manifest sogenannte agile Prinzipien ab:
Diesen Prinzipien folgend bedeutet agile Softwareentwicklung, dass man weitaus kleinteiliger aber auch schneller an das gesamte Projekt herangeht und sich so in kleinen Schritten dem finalen Produkt nähert. Insofern ist eine der zentralen Komponenten der agilen Softwareentwicklung, dass man sich aus dem starren Rahmen von langfristigen Entwicklungs- und Planungszyklen löst, um direkter auf sich ändernde Bedingungen reagieren zu können. Daher wird auf einen engen Kontakt mit dem Kunden/Anwender gesetzt, der möglichst frühzeitig in das Projekt involviert werden soll und bereits in einem frühen Stadium eine funktionierende Version zur Verfügung gestellt bekommen soll. Schnittstelle zwischen Kunde und dem Entwicklerteam ist der sogenannte Product Owner. Zusammen mit Kunden entwickelt er die Anforderungen am laufenden Modell und sortiert die angefragten Funktionen der Wichtigkeit nach und leitet daraus eine Priorisierung für die Entwickler ab. Dieser Product Owner ist im Idealfall kein volles Mitglied des Programmierteams, um so besser zwischen „beiden Welten“ vermitteln zu können. Diese Herangehensweise ermöglicht weitaus kürzere Entwicklungszyklen. Ebenso werden Fehlentwicklungen minimiert, da die Neuentwicklungen in das bereits laufende Projekt implementiert werden. Dadurch, dass die Software nah an der Praxis entwickelt wird, führt dies zu einem besseren gegenseitigen Verständnis zwischen Anwender und Programmierer. Anwender werden schneller bei ihren Problemen abgeholt und Entwickler lernen die Software mehr aus dem Blickwinkel des Anwenders zu betrachten. Missverständnisse werden zudem durch die schnelle Implementierung direkter sichtbar.
Dem gegenüber steht, dass sich agile Methoden unter Umständen nur schwer etablieren lassen. Gerade eingespielte Entwicklerteams tun sich hier schwer, da die Methoden, um gut zu funktionieren, minutiös eingehalten werden sollten. Hier ist einiges an Aufwand und eigenem Willen nötig, um sich den neuen Methoden zu unterwerfen. Auch liegt nicht jedem Entwickler das hohe Pensum an Meetings, das bei agiler Entwicklung notwendig ist. Aber auch Kunden tun sich mitunter gerade zu Anfang eines Projekts mit dieser Methode schwer, da die Abwesenheit von finalen Spezifikationen und festen Zeitplänen die eigene Planung zumindest komplizierter machen können. Zudem können solche „Unsicherheiten“ auch Vertragsverhandlungen über das zu entwickelnde Software-Projekt erschweren. Gleichzeitig bietet sich hier aber auch eine große Chance, Einfluss darauf zu nehmen, welche wichtigen Funktionen priorisiert entwickelt werden sollen, so dass ein gut funktionierendes Kernsystem schnell ausgeliefert werden kann.
Mehr Informationen
Der Strommarkt und die Vermarktung von dezentralen Anlagen befinden sich im permanenten Wandel. Die Möglichkeiten und Herausforderungen am Strommarkt ändern sich permanent: Wir sehen eine wachsende Anzahl an Marktteilnehmern. Zudem hat sich die Preisstruktur in den letzten Jahren drastisch gewandelt. Dies erfordert neue Algorithmen für die Prognose und für die Weiterverarbeitung von Prognosedaten, um weiterhin erfolgreich handeln zu können. Auf agile Methoden zu setzen, hilft in so einem Fall, das Problem zu umgehen, dass man eine Software für noch nicht bekannte Problemstellungen entwickeln muss. Da sich die Regularien der Energiewirtschaft auch in einem steten Wandel befinden, helfen agile Entwicklungsmethoden selbst auf kurzfristige Änderungen zu reagieren.
Hinweis: Next Kraftwerke übernimmt keine Gewähr für die Vollständigkeit, Richtigkeit und Aktualität der Angaben. Der vorliegende Beitrag dient lediglich der Information und ersetzt keine individuelle Rechtsberatung.