Agilität in Großunternehmen
Die Art und Weiße Software zu entwickeln, zu betreiben und zu benutzen verändert sich zunehmend in den Betrieben. Ideen, die noch vor wenigen Jahren Start-Ups vorbehalten waren, halten immer mehr Einzug in etablierte Großunternehmen. Um Software immer schneller produzieren zu können, müssen nicht nur die Organisationen eines Betriebs, sondern auch die Systeme verändert werden. Über agile und klassische Methoden der Softwareentwicklung herrscht in vielen Unternehmen noch ein Schwarz-Weiß-Denken. Dabei liegt die Wahrheit wohl in der Mitte. Es gilt die Vorteile der agilen Softwareentwicklung mit planerischer Sicherheit zu kombinieren. Unternehmen müssen Agilität zähmen, dann entfaltet sie ihre gesamte Wirkung. Den Entscheidern in Unternehmen steht dafür eine ganze Reihe von Instrumenten und Konzepten zur Verfügung. Die wichtigsten davon werden hier vorgestellt
Das rechte Maß der Agilität
Wie das richtige Verhältnis von Planung und Flexibilität aussieht, hängt von mehreren Faktoren ab. Entscheidend dabei ist die persönliche Einstellung der Projektbeteiligten: Je agil-affiner sie sind, desto größer der agile Anteil in der Projektarbeit. Weitere Indikatoren sind: die Größe des Projekts, seine Bedeutung, die Dynamik des Umfelds, die Unternehmenskultur und das Branchen-Know-How des Entwicklungsteams. Die Suche nach dem optimalen Verhältnis von Planung zu Agilität kann zeitaufwendig sein. Dabei können verschiedene Konzepte helfen: Neben DevOps und Continuous Intergration beziehungsweise Continuous Delivery bietet sich hier der Interaction Room als Konzept an.
Ein Raum mit grenzenlosen Möglichkeiten
Der Intercation Room ist ein Medium, über das Fach- und IT-Experten besser miteinander kommunizieren können. Möglich ist dies durch die offene, nicht IT-fixierte Darstellung von Prozessen. Sie erlaubt es auch Vertretern aus den Fachabteilungen, sich in Diskussionen einzubringen. Dieser Interaction Room ist ein echt begehbarer Raum mit vier Wänden. Auf diesen Wänden visualisieren die Projektmitarbeiter Prozesse. Gemeinsam mit den IT-Experten ermitteln sie in Abstimmungsrunden Lösungen für die zentralen Themen und Fragestellungen eines Projekts. Visualisiert wird dies durch die Zuordnung von Symbolen zu einzelnen Aspekten des Projekts. Der Interaction Room ist eine Methode, die das Interesse auf den Projektfortschritt lenkt und dazu beiträgt, dass die Vision von der zu entwickelnden Software kontinuierlich und durch alle Beteiligten gemeinsam weiterentwickelt wird. Eine Wand wird mit den Modellen der Geschäftsprozesse beschriftet, die zweite Wand dient zum Notieren fachlicher Objektmodelle, die dritte nutzt das Team, um den Backlog zu notieren du den Projektfortschritt zu protokollieren. Auf der vierten Wand bilden sie sie Intergrationslandkarte ab. Diese Landkarte gibt Auskunft darüber, welche existierenden Softwaresysteme mit dem zu erstellenden System integriert werden müssen.
Agil bis in den IT-Betrieb
Agil entwickeln bedeutet, in regelmäßigen kurzen Abständen Software zu produzieren. Dafür müssen die passenden Prozesse und Rahmenbedingungen geschaffen werden. Welche Organisationsform beziehungsweise welche Mischung von Organisationsformen für ein Unternehmen geeignet sind, können die Verantwortlichen nur im Einzelfall entscheiden. Aber es gibt einige Indikatoren, die anzeigen, ob die Tendenzen eher in Richtung DevOps oder in Richtung klassische CIO-Organisation gehen:
- Systeme, die sich nur langsam verändern und die kaum strukturellen Anpassungen ausgesetzt sind, sind kein Auslöser für die Einführung von DevOps-Strukturen
- DevOps eigenen sich für Strukturen mit klaren Trennlinien in Form nur lose gekoppelter, asynchroner integrierter Dienste. Diese Voraussetzungen sind häufig in jüngeren Systemen gegeben. Dies trifft insbesondere auf überflächenintensive und kundensichtbare Systeme am Anfang ihres Lebenszyklus zu. In solch einem Umfeld können DevOps am besten funktionieren.
- Mobile Anwendungen sind von ihrer Natur aus geeignete Kandidaten für eine DevOps-Organisationsform; alleine schon, weil sie sich schnell verändern und immer verfügbar sein müssen
Continuous Integration und Continuous Delivery: Agilität ein System geben
Damit Unternehmen agil entwickelte Software überhaupt in der Frequenz in Betrieb nehmen können, in der die Entwicklung sie veröffentlicht, müssen die Verantwortlichen nicht nur die Organisation, sondern auch die Systeme anpassen. Ziel des Ganzen ist es, sowohl die Software als auch die Entwicklungs-, Test- und Produktivumgebungen automatisiert zu produzieren und bereitzustellen. Da Updates relativ schnell kommen können, sind jetzt Installationsroutinen gefragt, die permanent prüfen, ob veränderte Software in Betrieb genommen werden kann. Diese Idee liegt Continuous Integration und Continuous Delivery zugrunde. Im Gegensatz zu Automatisierungs-Ansätzen, die einen begrenzten Funktionsumfang haben, gibt es inzwischen sehr vielfältige Möglichkeiten: von der Adressierung heterogener Infrastrukturen bis hin zum automatisierten Bereitstellen von Umgebungen und deren Integration in die vorhandene IT-Infrastruktur. Dazu gehören auch Tools für die Umsetzung von Monitoring- und Logging-Mechanismen, für das automatisierte Testen, für die Verwaltung von Softwarekomponenten und für das Orchestrieren des gesamten Prozesses. Automatisierung beschleunigt die Prozesse in der IT nicht nur, sie erleichtert auch die Fehlersuche. Sie vermeidet Probleme, die durch das unterschiedliche Konfigurieren von Entwicklungs-, Test- und Produktivumgebungen entstehen können.
Budgets in agilen Projekten: Die Quadratur des Kreises?
Agiles Denken reicht nicht nur über Abteilungs-, sondern auch über Unternehmensgrenzen hinaus. Setzen Unternehmen bei der Softwareentwicklung auf externe Kapazitäten, ist es unabdingbar, dass diese in gleicher Weise an der agilen Entwicklung schlanker Software interessiert sind. Doch wie soll etwas budgetiert werden, das gar nicht genau spezifiziert ist? Eine Berechnung nach Aufwand ist für die Auftraggeber äußerst problematisch, da die Kosten dabei theoretisch ins Unendliche steigen können. Daher kommt es in der Praxis nur selten zu echten agilen Softwareprojekten. Ein Vorgehensmodell um agile Projekte zu budgetieren ist zum Beispiel „ad-VANTAGE“. Dazu skizziert der Auftraggeber zunächst seine Erwartungen an die Software, indem er unter anderem ihren Zweck, ihr Einsatzgebiet und ihre Anwender beschreibt. Daraus abgeleitet werden dann in so genannten User Stories die zu entwickelnden Features definiert – unscharf, aber ausreichend, um den Aufwand und die Dauer ihrer Entwicklung schätzen zu können.
IT sitzt jetzt mit am Tisch
Die Art und Weise, wie Unternehmen Software entwickeln, betreiben und nutzen, verändert sich im Augenblick grundlegend. Ideen, die noch von ein paar Jahren eher Start-ups vorbehalten waren, halten nun Einzug in etablierte Großunternehmen. So wird sich in Zukunft zeigen, ob das Zusammenspiel von IT und anderen Abteilungen gelingt.