Agile Softwareentwicklung
Eines der Buzz-Wörter der letzten Jahre in der Software-Industrie ist "Agile Entwicklung". Selbst große Konzerne mit Jahresplänen präsentieren sich nach Außen als agile Unternehmen und versuchen dadurch, Kund:innen und Mitarbeiter:innen für sich zu gewinnen. In diesem Blog beschäftigen wir uns damit, was "agil" in der Softwareentwicklung eigentlich bedeutet und wie wir bei bitperfect agile Entwicklungsmethoden einsetzen, um bessere Software zu entwickeln.
Ursprung #
Obwohl viele Begriffe und Methoden schon in den 90er Jahren und früher verwendet wurden, wird das Agile Manifest gerne als Startpunkt der agilen Softwareentwicklung gesehen:
"Wir erschließen bessere Wege, Software zu entwickeln,
indem wir es selbst tun und anderen dabei helfen.
Durch diese Tätigkeit haben wir diese Werte zu schätzen gelernt:Individuen und Interaktionen mehr als Prozesse und Werkzeuge
Funktionierende Software mehr als umfassende Dokumentation
Zusammenarbeit mit dem Kunden mehr als Vertragsverhandlung
Reagieren auf Veränderung mehr als das Befolgen eines PlansDas heißt, obwohl wir die Werte auf der rechten Seite wichtig finden,
schätzen wir die Werte auf der linken Seite höher ein."
Abgesehen vom Agilen Manifest gibt es auch noch die 12 Prinzipien Agiler Softwareentwicklung, die sich konkreter mit einzelnen Lösungen beschäftigen.
Praxis #
Die Idee der agilen Entwicklung ist eine sehr gute: Die Welt der Softwareentwicklung bewegt sich schnell und durch eine agile Arbeitsweise ist der Prozess der Entwicklung jederzeit an neue Gegebenheiten anpassbar. Aber mindestens genauso wichtig ist die Möglichkeit, dass Kund:innen dadurch eng in den Prozess der Entwicklung eingebunden sind. Das bietet den Vorteil, dass das Produkt schon während der Entwicklung gemeinsam evaluiert und getestet wird, damit am Ende auch jenes Ergebnis entsteht, das den Anforderungen der Kund:innen entspricht.
In der Praxis zeigt sich allerdings in vielen Unternehmen, dass es oft keine leichte Aufgabe ist, die vier Punkte des Agilen Manifests tatsächlich im Sinne der Verfasser umzusetzen. Um das volle Potenzial auszuschöpfen, ist es wichtig, die richtige Balance der Werte des Agilen Manifests zu finden. Oft kippt agile Entwicklung zu stark auf die linke oder rechte Seite und verpasst damit, den vollen Nutzen aus den agilen Methoden zu ziehen.
Betrachtet man zum Beispiel den ersten Punkt, "Individuen und Interaktionen mehr als Prozesse und Werkzeuge", so zeigt sich in vielen Unternehmen, dass eine zu starre Umsetzung eines agilen Frameworks zu Frustration bei Mitarbeiter:innen führen kann. Ein Beispiel dafür ist Scrum, dessen viele Meetings, Sprints, Backlogs, Scrum Master, Product Owner, etc. oft für Verwirrung und Unverständnis bei Mitarbeiter:innen führen können. Der Grund dafür ist dabei nicht Scrum selbst, das richtig eingesetzt zu sehr guten Ergebnissen führen kann. Vielmehr scheitert es oft an der fehlenden Schulung der Mitarbeiter:innen darüber, was der Sinn und Zweck der einzelnen Bestandteile von Scrum ist. Außerdem ist eine Umsetzung durch Fixierung an zu starren Prozessen nicht im Sinne des Agilen Manifests, da es zu einer hohen Anfälligkeit für Mikromanagement führen kann.
Aber auch das Gegenteil - also das vollständige Vernachlässigen oder die Abwesenheit von Prozessen - kann zu Problemen führen. So können etwa Unsicherheit über Zuständigkeiten entstehen, was zum Verschleppen von Entscheidungen über notwendige Änderungen im laufenden Projekt führen kann. Das führt nicht nur zu Verzögerungen, sondern steht auch dem Agilen Manifest entgegen.
Findet man allerdings die richtige Balance zwischen der linken und rechten Seite der oben gezeigten Werte des Agilen Manifests, kann durch agile Entwicklung eine Arbeitsweise etabliert werden, die sich durch schnelles Reagieren auszeichnet und jederzeit auf die Bedürfnisse der Kund:innen einzugehen erlaubt.
Agile Entwicklung bei bitperfect #
Ein immer wiederkehrendes Thema bei der Gründung von bitperfect war es, agile Softwareentwicklung für uns und auch für unsere Kunden:innen optimal umzusetzen. Wichtige Anforderungen für uns waren:
- Schnelle Reaktion auf sich ändernde Anforderungen sowohl in Projekten als auch in Prozessen
- Hohe Transparenz bei Information und Kommunikation
- Keine Angst vor schweren Entscheidungen
- Keine Grabenkämpfe nach Entscheidungen
Für jeden dieser Punkte wurden Maßnahmen gesetzt, welche uns bei der Umsetzung unterstützen und dazu beitragen, ein optimales Ergebnis für unsere Kund:innen zu erzielen. Damit wir den aktuellen Entwicklungsstand und anfallende Tasks immer im Blick behalten, organisieren wir uns mit Tickets auf Boards. So behalten nicht nur wir den Überblick, sondern auch unsere Kund:innen haben jederzeit Zugriff auf den aktuellen Stand der Dinge.
Unser Tool der Wahl dafür ist ClickUp, dabei handelt es sich um eine Projektmanagement Software, die uns durch ihre Flexibilität überzeugen konnte. Nicht nur lassen sich durch die eingebauten Funktionen Prozesse schnell und einfach anpassen. Durch das sehr gute Zusammenspiel mit externen Komponenten verwenden wir ClickUp als Single-Point-Of-Truth. Davon profitiert die interne Kommunikation, da es nicht mehr notwendig ist, Informationen aus verschiedenen Quellen zu beschaffen, sondern schnell und effektiv dort gefunden werden kann, wo man sie auch erwartet.
Um die interne Kommunikation weiter zu verbessern, setzen wir auf ein kurzes Meeting am Anfang des Tages ähnlich zum “daily standup” bei Scrum. Wir erreichen dadurch, dass jede:r im Team weiß, woran die anderen arbeiten und was gerade gut oder nicht so gut läuft. Taucht bei diesem Meeting ein größeres Problem oder eine Uneinigkeit zu einem Thema auf, wird von den direkt Beteiligten im Anschluss eine Lösung gesucht. So ist es möglich, diese Probleme bereits beim Entstehen zu lösen, bevor noch zu viel Zeit in die "falsche" Lösung investiert wird. Dafür ist einerseits wichtig, dass jede:r im Team sich sicher sein kann, dass seine ehrliche Meinung zu jeder Zeit geschätzt wird. Andererseits ist wesentlich, dass wenn eine Entscheidung getroffen wird, auch jede:r diese wie seine eigene Entscheidung mitträgt.
Neben diesen zwei Maßnahmen gibt es noch weitere, wie zum Beispiel monatliche Retrospektiven, klare Verantwortungsverteilung, eindeutige Ansprechpartner:innen für Kund:innen, etc. Damit diese Maßnahmen auch Wirkung zeigen, ist es wichtig, dass sie gelebt werden. Dabei ist der erste Schritt immer ein Reflektieren, ob mit einer gesetzten Maßnahme auch die erhoffte Wirkung erzielt wurde - wenn dies nicht der Fall ist, wird die Maßnahme entsprechend angepasst.
Das Resultat ist für uns effektives Zeitmanagement und klare, offene Kommunikation im Team und mit Kund:innen. Dadurch entsteht eine passende Plattform, um gemeinsam mit unseren Kund:innen die perfekte Lösung zu schaffen.