Leitfaden für die kontrollierte Einführung einer agilen Softwareentwicklung

Der Weg in die agile Softwareentwicklung

Jasmin Dzaferovic

Die Erfahrungen der letzten Jahre lehrt uns, dass die agile Entwicklung in Softwareprojekten eine immer wichtigere Rolle spielt. Umso bedeutender wird es, eine Strategie zu entwickeln, mit der sich ein Unternehmen, das mit der Softwareentwicklung zu tun hat, in eine Agile-Richtung bewegt. Dieser Artikel ist ein Leitfaden für einen kontrollierten Übergang von der klassischen Softwareentwicklung in eine agile, untersucht agile Ansätze und zeigt Hürden auf, die auf diesem Weg zu bewältigen sind.

Wir beginnen mit der modellhaften Beschreibung eines Unternehmens, das kein agiles Verfahren einsetzt, sondern eher mit dem klassischen Wasserfall-Softwareentwicklungsmodell arbeitet. Zu diesem Zeitpunkt ist die Mehrheit des Managements, der technischen Angestellten wie auch der administrativen Mitarbeiter nicht mit agilen Methoden vertraut. Hinzu kommen einige falsch konzipierte, fehlgeschlagene Versuche, agiles Vorgehen einzuführen, die zu einem gewissen Misstrauen der betroffenen Mitarbeiter der Agilität gegenüber führen, trotz ihrer Unzufriedenheit über fehlgeschlagene klassische Projekte.

Es gibt mehrere Ansätze, agile Methoden initial in ein Unternehmen einzuführen. Häufig anzutreffen ist der direkte Versuch der Entwickler, in kleineren Vorhaben die Situation zu beeinflussen, indem sie agile Praktiken in kleineren Gruppen nutzen. Sobald solche Versuche Erfolge zeitigen, werden die Erfahrungen an Kollegen propagiert und das Interesse des Managements wird geweckt. Damit ist der erste Meilenstein auf dem Weg in die Agilität erreicht. Das Unternehmen beginnt auf experimentelle Art und Weise, in kleineren Projekten agile Praktiken anzuwenden. Solche Phasen sind in der Regel im Umfang und Budget eingeschränkt. Sie erlauben es einem Unternehmen, mit agilen Praktiken zu experimentieren, ohne ein großes Risiko einzugehen. Zudem helfen diese Experimente den Mitarbeitern und dem Management, Vor- und Nachteile der agilen Vorgehensweise besser kennenzulernen und, noch wichtiger, den Umgang mit der Agilität in eigenen Bereichen zu erlernen.

Durch eine positive, experimentelle Phase entsteht Enthusiasmus und die Bereitschafft aller Beteiligten, in die nächste Phase, die Pilotphase überzugehen. Eine Pilotphase ist organisierter als die experimentelle Phase, aber immer noch in ihrer Auswirkung beschränkt. Vor allem werden die agilen Praktiken in dieser Phase über mehrere Abteilungen gestreut, sind budgetär besser ausgestattet und ziehen eine größere Management-Aufmerksamkeit auf sich.
Die Pilotphase verstärkt den Erfolg aus der experimentellen Phase, bringt aber auch neue Schwierigkeiten ans Tageslicht, beispielsweise Team-organisatorische, strukturelle oder verschiedene unternehmensweite Regelungen betreffende.

Im Laufe der Zeit entwickeln sich auch die Hürden weiter, die uns im Weg stehen. Am Anfang sind sie typischerweise auf die Entwicklung beschränkt und betreffen kleinere Teams:

  • eingesetzte Tools
  • ineffiziente oder unvollständige Builds
  • Source-Code-Management-Probleme

Durch die Weiterentwicklung der agilen Vorgehensweise werden die Teams erfahrener, sodass auch zusätzliche Probleme sichtbar werden:

  • Software-Qualität
  • Test Driven Development
  • Continious Integration
  • Refactoring

Durch weitere Anwendung der agilen Praktiken entstehen auch organisatorische Probleme wie Ressourcenplanung oder persönliches Streben nach Erreichen bestimmter Ziele, die zu Auseinandersetzung zwischen den Mitarbeitern führen können. Solche Probleme sollten sofort besprochen und behoben und auf keinen Fall vernachlässigt werden.

In einem Unternehmen, das ernsthaft überlegt, agile Methoden zu adoptieren, wird dem Vorhaben die entsprechende Management-Aufmerksamkeit geschenkt, was wiederum viele Veränderungen erleichtert. So werden typischerweise zuerst einfachere Probleme beseitigt, wie z.B. Vereinfachung der Buildprozesse und des Deployments oder Reduzierung der notwendigen Meetings für diverse Abstimmungen auf ein Minimum.

Mit der steigenden Akzeptanz der agilen Methoden entwickeln sich, obwohl gleiche Methoden in verschiedenen Projekten verwendet werden, verschiedene Ansätze, wie die Agilität anzuwenden ist. Einige dieser Abweichung sind z.B.:

  • Iterationslänge, 1 Woche, 2 Wochen, etc.,
  • „Daily Stand Up“ – tatsächlich täglich oder seltener?
  • Wie wird geschätzt, was ist die minimale Größe eines Story-Points?

Solche Fragen sollten von einer zentralen Instanz aufgenommen und weiterverarbeitet (etwa durch ein Projekt Management Office (PMO)). Diese Instanz sollte das Ziel haben, „Agilität im Sinne des Unternehmens“ einzuführen. Um dieses Ziel zu erreichen, müssen Formalismen unternehmensweit vereinbart werden:

  • Gemeinsam verwendete Terminologie
  • Länge einer Iteration
  • Reporting
  • Messbarkeit und die KPIs

Im Rahmen dieser Formalisierung wird das Unternehmen bereit, auch größere Projekte über mehrere Einheiten verstreut unternehmensweit agil durchzuführen. Dies kann zu agilen Projekten führen, die so groß werden, dass sie kleinere agile Projekte beinhalten, die sogenannten „Scrums-of-Scrums“. Automatisch wird solchen Projekten auch wesentlich mehr Management-Interesse zuteil, weil sie mit mehr Risiko behaftet sind.

Projekte einer solchen Größe werfen ein neues Licht auf die Probleme in diesem Kontext, die unternehmensweit auftreten können. Zusätzlich zu den lokalen Problemen bezogen auf Tools, QA Issues, usw. sind organisatorische Probleme typisch, wie z.B.:

  • Rollenverteilung und Verantwortlichkeiten
  • Beförderungen
  • Verschiedene Arten von Kompensationen

Die Lösung solcher Probleme ist entscheidend bei der Umstellung auf agile Methoden, da diese direkt mit dem dem Paradigmenwechsel und den daraus resultierenden kulturellen Schocks der Mitarbeiter im Unternehmen verbunden sind. Die täglichen Abläufe nehmen eine neue Form an, was bei vielen Menschen Ängste vor einem Jobverlust hervorrufen kann. Diese Probleme sind an das obere Management zu adressieren und schnellstmöglich zu lösen.

Ein Unternehmen, das eine klare Entscheidung getroffen hat, einen agilen Weg zu beschreiten, sollte in der Lage sein, Folgendes zu bewältigen:

  • Nachhaltige Änderungen im Unternehmen aufzufangen und zu steuern
  • Nah an den Kundenwünschen dran zu sein
  • Schnell die Änderungen des Markts mit einem höchstens linearen Kostenzuwachs assimilieren
  • Die Mitarbeiter zu motivieren, sich kontinuierlich weiterzuentwickeln.

Nachdem nun einige Aspekte benannt wurden, wenden wir uns einem Entwurf zu, um eine derartige Veränderung in einem Unternehmen in die Realität überführen zu können.

Ein Strategieentwurf

Durch die zunehmende Akzeptanz agiler Methoden in einem Unternehmen, ist es notwendig eine Strategie zu entwickeln, die wenig risikobehaftet ist.

Es bieten sich zwei Ansätze an:

  • Top-Down, Senior Management übernimmt die Initiative
  • Bottom-Up, Entwicklungsbeteiligten übernehmen die Initiative

Beide Ansätze haben Vor- und Nachteile, weswegen wir hier einen hybriden Ansatz beschreiben wollen. Agilität bedeutet eine kulturelle Veränderung in einem Unternehmen. Solch tiefgreifende Veränderungen sind nur dann möglich, wenn möglichst viele involviert sind. Dabei ist es extrem wichtig, die Anstrengungen zu koordinieren und mit allen Beteiligten offen zu diskutieren.

Wir unterteilen unsere Strategie in drei wesentliche Schritte, die einen gemischten Bottom-Up-, Top-Down-Ansatz verfolgt. Einzelne Schritte unterscheiden sich in dem Umfang und dem Einfluss auf den gesamten Prozess.

Im ersten Schritt, der Pilotphase, wird nur eine eingeschränkte Anzahl an Personen involviert. Das gewählte Projekt birgt keine großen Risiken und ist nicht sehr umfangreich.

Im nächsten Schritt, der Formalisierungsphase, werden abteilungsweit Mitarbeiter in das Projekt einbezogen. Ein Rollout bleibt aber innerhalb einer Abteilung (Gruppe).

Im letzten Schritt, der Enterprise-Phase, sollten mehrere Abteilungen involviert werden. Das Projekt sollte eine große Bedeutung und ein deutlich höheres Budget als die Vorgängerprojekte erhalten.

Abbildung 1: Einzelne Phasen der Einführung agiler Methoden

Wir versuchen nun einzelne Schritte detailliert zu beschreiben und werden dabei auf die Hindernisse und Gefahren der einzelnen Schritte hinweisen.

Geschrieben von
Jasmin Dzaferovic
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.