Agile Software-Entwicklung mit Scrum

Die neue Arbeitswelt der Software-Entwickler

12.05.2020 von Konrad Krafft  IDG ExpertenNetzwerk
Im Zeitalter der Digitalisierung wird eine im Entwicklungsprozess eine hohe Dynamik verlangt. Rollendiskussionen und statische hierarchische Strukturen passen dazu ebenso wenig wie Einzelkämpfer. Agile Teams sind das Gebot der Stunde.

Am schnellsten und flexibelsten sind jene Unternehmen, die eine Kultur pflegen, in der gleichberechtigte Arbeit hierarchisches Denken ablöst. Was zählt ist die Idee, die dem Erreichen des gesteckten Ziels am besten dient.

Zusammenarbeit auf Augenhöhe: Der ideale Entwicklungsprozess hält sich nicht sklavisch an Regeln, sondern orientiert sich ständig an der aktuellen Problemstellung.
Foto: ESB Professional - shutterstock.com

Sie zu finden und umzusetzen ist Sache des Teams auf Augenhöhe. Dazu bedarf es einer angstfreien, offenen und zielgerichteten Kommunikationskultur, die Kreativität und Eigeninitiative fördert. Rollendiskussionen und starre Strukturen behindern die Software-Entwicklung mehr denn je. Sie wirken wie Silos, die Kommunikation verhindern.

Agilität und klassische Ingenieurskunst

Der Grundgedanke der Agilität ist als Prinzip schon immer allgemeingültig:

Der Rest ist klassische Ingenieurskunst:

Das gilt in besonderem Maße für die Entwicklung von Software.

Der ideale Entwicklungsprozess hält sich nicht sklavisch an Regeln, sondern orientiert sich ständig an der aktuellen Problemstellung. Zu den großen Herausforderungen gehört dabei das Zerlegen größerer Aufgaben und Projekte in kleinere Bausteine. Das heißt, das Team und insbesondere zum Beispiel der Product Owner in einem Scrum Team muss sowohl das große Ganze im Blick haben als auch die einzelnen Schritte, die zum Ziel führen. Wer ohne klaren Entwurf in ein Software-Entwicklungsprojekt startet, handelt in der Regel grob fahrlässig.

Lesetipp: Alles über Agile Methoden

Steht der Entwurf, dann ist zweierlei für den Projekterfolg entscheidend:

  1. die Kompetenz des Teams

  2. die Kommunikatinsfähigkeit des Teams

Teams funktionieren besser, wenn jeder Beteiligte zu jeder Zeit gut informiert ist. Im Übrigen macht Teamarbeit, die auf gute Kommunikation baut, Spaß und motiviert zusätzlich.

Das Team entscheidet

Grundsätzlich gilt: jeder sollte gehört werden. Zielführend ist, wenn möglichst viele Mitglieder des Teams Vorschläge machen, die dann in der Gruppe diskutiert werden. Wenn sich alle am gleichen Ziel ausrichten, dann entstehen nach meinen Erfahrungen in 99 Prozent aller Fälle gute Entscheidungen. Auch das ist eine Sache vertrauensvoller Kommunikation.

Jedes Team braucht Personen, welche die Kompetenz besitzen, Struktur und Disziplin einzufordern, es gilt das Prinzip „Führung durch Kompetenz“. Zum einen, um der Gefahr entgegenzuwirken, dass sprachgewaltige und durchsetzungsstarke Charaktere zu sehr dominieren. Sachargumente müssen mehr Gewicht bekommen als eine starke Rhetorik.
Zum anderen, um zu vermeiden, dass Diskussionen ins Endlose abgleiten und/oder sich zu sehr vom Ziel entfernen.

Flexible Rollenaufteilung

Wenn die Kommunikation funktioniert, strukturiert sich das Team in der Regel selbst anhand seiner Aufgaben. Diese können sich aber in kurzen Zeitabständen ändern – dafür muss das Team flexibel sein.

Ansonsten kann auf die explizite Definition von Rollen weitgehend verzichtet werden. Bis auf zwei:

  1. Der Product Owner muss den inhaltlichen Überblick behalten und Prioritäten setzen. Er ist quasi der Architekt des Projekts.

  2. Der Scrum Master (quasi als Bauleiter) wacht über Ziele und Termine, achtet auf die Abläufe und sorgt für Disziplin und Struktur im Team und dessen Arbeit. Dazu gehört auch, dass er bei Bedarf stärkere Charaktere „einfängt“ und ruhigere aus der Reserve lockt.

Wer eine solche „führende“ Rolle im Team einnimmt, muss wissen: Rollen sind nur ein Hilfskonstrukt, um bestimmten Aufgabengruppen einen Namen zu geben – eine Art Template für Aufgaben. Rollen helfen dann, wenn sie die Zuordnung von Aufgaben erleichtern.

Querdenken wird zum Normalfall

Wichtig ist, dass die Personen, die diese Rollen ausfüllen zielgerichtete Treiber sind und dass das Team zu jeder Zeit über die einzelnen Schritte und Aufgaben informiert ist. Das fördert die Fokussierung auf das Ziel, gleichzeitig wird unter anderem durch Retrospektiven die gedankliche Beschäftigung auch mit anderen Aspekten des Projektes gefördert. Das Querdenken wird zum Normalfall für alle Teammitglieder.

Durch das Projektziel sind aber auch bestimmte Rahmenparameter gesetzt, etwa Budget, Zeit und Qualität. Diese Parameter gilt es immer im Auge zu behalten. Und dafür sind vor allem der Product Owner und der Scrum Master zuständig.

Elementar wichtig für jedes Projekt ist, dass die Anforderungen zu Beginn des Projekts klar und verlässlich definiert sind und dass während des Verlaufs Ergebnisse einfordert werden. Diese Rolle steht in erster Linie dem Kunden selbst zu. Es hat sich jedoch häufig als vorteilhaft erwiesen, wenn der Prozess durch ein professionelles Anforderungsmanagement begleitet wird.

Die Bedeutung des Social Engineering

Es lohnt sich, in die gute Chemie zwischen den Team-Mitgliedern zu investieren. Zum Beispiel durch das Schaffen von Freiräumen oder besser „Spielräumen“, in denen kreatives Denken und Kommunikation wachsen können. Die Betonung liegt auf „wachsen“. Kreatives Denken und Kommunikation lässt sich nicht anknipsen. Hilfreich hierfür sind unter anderem gemeinsame Team-Buildings. Nach meiner Erfahrung kommt jede Minute, in der kommuniziert wird, dem Projekt zugute. Ist hingegen der Terminkalender zu minutiös durchgetaktet, gibt es Stress und gedankliche Staus.

Veraltete Rollendiskussionen gefährden den Projekterfolg. Letztendlich geht es immer um das gemeinsame Ziel.
Foto: Elnur - shutterstock.com

Ganz nebenbei: Die im Geschäftsleben noch immer üblichen Controlling Systeme sind kontraproduktiv, weil sie immer die Einzelleistung bewerten, nie die des Teams. Wer sein Unternehmen zukunftsfähig machen will, und das gilt nicht nur für die Software-Entwicklung, muss Mechanismen einführen, welche die Leistung von Teams belohnen.