In den letzten Jahren ist XINFO immer größer geworden, und dementsprechend wurden auch mehr Mitarbeiter eingestellt. Dabei zeigten sich neuartige Probleme, die wir vorher nicht kannten. Wir hatten jetzt zwar mehr Möglichkeiten, aber die Projektkoordination wurde schwieriger. Deshalb haben wir vor einiger Zeit den SCRUM Prozess eingeführt, der eine Abkehr von der herkömmlichen Art der Planung darstellt, die stark auf Kontrolle und Befehl setzt. Wir möchten Ihnen im Folgenden zeigen, was SCRUM bedeutet, und ob wir Erfolg damit hatten.

SCRUM ist ein Teil der Bewegung der Agilen Softwareentwicklung. Diese Bewegung wendet sich gegen die herkömmliche Art der Planung, die oft als starr und unflexibel empfunden wird. Je komplexer das Projekt wird und je mehr Mitarbeiter beteiligt sind, desto mehr wird Planung typischerweise zu einem undurchschaubaren, bürokratischen Prozess, der nicht die gewünschten Ergebnisse erzeugt und die Mitarbeiter demotiviert.

Das liegt daran, das Planung grundsätzlich die Tendenz hat, möglichst viel einzubeziehen, denn je mehr man plant – so ist der Gedanke – desto besser ist man abgesichert. Damit ist aber in Planung gleichzeitig auch die Tendenz eingebaut, selbst zu kompliziert zu werden. Und das ist genau der Grund dafür, warum sie so unflexibel ist: sie wird von Spezialisten vorgegeben und ist schon weitgehend abgeschlossen, wenn der Entwicklungsprozess beginnt. Änderungen sind nur mit großen Aufwand möglich, eben wegen der Komplexität. Und insbesondere ist es so, dass in fast jedem Projekt ärgerliche unvorhergesehene Ereignisse eintreten, die eigentlich hätten eingeplant werden müssen. In dieser Situation ist die herkömmliche Art der Planung meist hilflos.

Agile Softwareentwicklung

Das Wort „agil“ bedeutet lebendig, beweglich oder flink. Hiermit wird schon deutlich, gegen was sich das Konzept der Agilen Softwareentwicklung richtet: nämlich genau gegen die Starrheit und die Inflexibilität der herkömmlichen Planung. SCRUM ist eine Methode, die dies Konzept mit Leben füllt. Der bürokratische Aufwand ist stark reduziert, es gibt nur wenige Regeln und es wird ein iteratives Vorgehen empfohlen, also eine Entwicklung in kleinen Schritten, die jederzeit an sich ändernde Erfordernisse angepasst werden kann.

Damit das funktioniert, wird ein Teil des Controllings ausgelagert und zu den Entwicklern verschoben. Es werden ihnen Ziele vorgegeben, nicht aber die Mittel dazu. Es ist ihre Freiheit zu entscheiden, wie sie die Ziele erreichen. Zudem werden Teamarbeit, Selbstorganisation und Zusammenarbeit mit dem Kunden betont – alles Dinge also, die mehr mit Veränderung, Interaktion und Menschen zu tun haben, als mit starren Prozessen, Werkzeugen und Verträgen.

Chaos, Regeln und Rollen

Damit bricht aber keinesfalls das Chaos aus, und es ist auch in SCRUM möglich, kostenbewusst zu arbeiten. Dazu sind bestimmte Rollen definiert und es wird darauf geachtet, dass die (wenigen) Regeln genau eingehalten werden, vor allem die, welche sich auf Transparenz und Überprüfung des Fortschritts beziehen. Transparenz bedeutet unter anderem, dass täglich im Team kurz über Fortschritte und Hindernisse eines jeden Entwicklers geredet wird. Überprüfung meint, dass zu vorher festgelegten Zeiten neue Funktionen des Produkts beurteilt und ausgeliefert werden. Die Freiheit existiert also nur innerhalb eines exakt definierten Rahmens, der dafür sorgt, dass auch Dinge wie Zuverlässigkeit und Qualität gewährleistet sind.

Die wichtigsten Rollen sind SCRUM Master, Product Owner und Team Member. Der SCRUM Master ist dafür zuständig, den gesamten SCRUM Prozess zu managen und Hindernisse bei der Arbeit zu beseitigen. Er kennt sich am besten mit der Methode aus, schult die Mitarbeiter und steht für Fragen zur Verfügung. Wichtig ist auch das, was er nicht tut: Er mischt sich inhaltlich nicht in die Projekte ein, die von den Mitarbeitern bearbeitet werden. Man muss allerdings sagen, dass diese rigide Auslegung der Rolle in kleineren Firmen nicht üblich ist – hier macht er oft auch Kommentare zum Inhalt.

Der Product Owner ist zuständig für das Produkt: für die Funktionen und ihre Priorisierung, für die Qualität sowie für die Kosten. In dieser Eigenschaft ist er die Schnittstelle zwischen Auftraggeber und Entwicklungsteam. Er vertritt also gleichzeitig die Interessen des Kunden (die Funktionen werden zum vereinbarten Zeitpunkt geliefert) und der Firma (die Entwickler arbeiten effektiv und kostengünstig). Zudem ist er zuständig für die Kommunikation zwischen den beiden: Anfragen, Änderungswünsche oder Rückmeldungen gehen ausnahmslos über ihn.

Auch der Product Owner macht den Mitarbeitern keine Vorgaben bei der Projektarbeit, denn er ist kein Projektleiter im herkömmlichen Sinn, und in den täglichen Meetings hat er nur eine beratende Funktion.

Die Team Members sind die Entwickler des Programms. Ihre Arbeit wird durch sogenannte Sprints strukturiert, worunter man einen Zeitraum versteht (z.B. einen Monat), in dem die definierten Ziele erreicht sein müssen. Die Ziele werden in einem Sprint Meeting zu Beginn festgelegt, an dem die Team Members beteiligt sind. Daneben gibt es jeden Tag ein kurzes Meeting (daily SCRUM), in dem die Beteiligten kurz ansprechen, wo sie stehen und welche Probleme sie haben. Weitere Meetings finden am Ende des Sprints statt.

Vor allem bei der Arbeit der Team Members zeigt sich die starke Betonung des Teamgedankens und der Selbstorganisation im SCRUM Prozess. Sie arbeiten selbständig, sie tragen die Verantwortung für ihre Ziele, es gibt keinen Leiter im klassischen Sinn. Innerhalb eines Sprints ist das Team der Chef.

Dokumentation

Es gibt, wie schon gesagt, wenige Regeln in SCRUM. Aber die, die es gibt, müssen genau eingehalten werden. Ähnlich genau ist SCRUM bei der Dokumentation. In verschiedenen Dokumenten sind die Kundenanforderungen, die Sprintziele, die technischen Maßnahmen bei der Entwicklung, die Probleme und weitere Themen festgehalten. Zudem wird über ständiges Feedback kontinuierlich ein Bewusstsein darüber hergestellt, wo das Projekt im Moment steht. Dazu werden mit speziellen Tools Auswertungen und Grafiken erzeugt, die bei jedem Meeting zu sehen sind. Dem Kunden wird Zugang zu den Planungstools ermöglicht; so ist größtmögliche Transparenz gesichert.

Auch bei den Dokumenten wird Wert auf Flexibilität gelegt, denn sie sind von den berechtigten Personen änderbar. Dies ein weiterer Faktor dazu, das Projekt bei unvorhergesehenen Ereignissen jederzeit anpassen zu können.

Fazit

SCRUM ist kein Wunderwerkzeug, und es macht Projekte der Softwareentwicklung nicht weniger komplex. Aber es zeigt einen anderen Weg, mit der Komplexität umzugehen, nämlich durch den Einbau von Selbstorganisation auf der unteren Ebene (den Team Members), was durch genaue Einhaltung bestimmter Regeln flankiert wird.

Dadurch kann flexibler auf neue Anforderungen reagiert werden als früher. Dennoch ist es möglich, effizient zu produzieren – dafür sorgen die Regeln, die Dokumentation und die Rolle des Product Owners.

Seit SCRUM in unserer Firma eingeführt wurde, haben wir festgestellt, dass wir kostengünstiger arbeiten, die festgelegten Zeiten besser einhalten und die Kunden zufriedener sind. Und dadurch wir auch.

Kontakt

Besuchen Sie unsere Website, um weitere Informationen zu erhalten. Alternativ können Sie Herrn Moritz Biersack anrufen (089/1891 788 37), oder ihm eine Mail schicken (moritz.biersack@xinfo.de) – er wird sich dann bei Ihnen melden.