Software-Entwicklung ohne Grabenkämpfe
Von Roland Freist
Der Begriff „DevOps“ setzt sich zusammen aus „Development“ (Entwicklung) und „Operations“ (Betrieb), womit in diesem Fall der IT-Betrieb gemeint ist. Es handelt sich um eine Art Metabegriff, der die Kollaboration zwischen dem IT-Betrieb, im weitesten Sinne also den Technikern und Administratoren, und den Entwicklern unter Einbeziehung der Kunden beschreibt. Alle drei Gruppen verfolgen ein gemeinsames Ziel, nämlich die Bereitstellung einer Software für den Kunden.
Man könnte nun annehmen, dass daraus eine produktive Zusammenarbeit erwächst. Doch in der Praxis funktioniert das oft nicht.
Widerstrebende Interessen
Verantwortlich dafür sind die unterschiedlichen Interessen der Beteiligten. Grob gesagt wollen die Entwickler die vom Kunden gewünschte Funktionalität möglichst schnell umsetzen. Daraus beziehen sie ihre Reputation, denn häufig wird bereits die erste Version einer neuen Funktion bei der Abnahme durch den Auftraggeber als nützlicher Mehrwert anerkannt. Je mehr Funktionalität in eine Software eingebaut wird und je kürzer die Release-Zyklen sind, desto positiver werden die Entwickler wahrgenommen. Wie sich die Funktionalität dagegen in der Praxis bewährt, ob sich eine neue Programmversion wie gewünscht einrichten und nutzen lässt, ob die neu integrierte Funktionalität überhaupt verfügbar ist, liegt in den meisten Fällen nicht in der Verantwortlichkeit der Entwicklungsabteilung.
Das wiederum ist die Aufgabe des IT-Betriebs: Die Techniker müssen die von den Entwicklern gelieferte Software auf den Systemen des Kunden einrichten; das geschieht meist im laufenden Betrieb. Ihre Arbeit wird danach bewertet, ob alles funktioniert und ob die Software mitsamt allen Funktionen uneingeschränkt verfügbar ist. Falls es hingegen zu Ausfällen kommt, ist der IT-Betrieb der erste Ansprechpartner des Kunden. Da jedes neue Software-Release die Gefahr in sich birgt, dass es noch nicht entdeckte Fehler enthält, die in der Praxis zu Problemen führen, hat der IT-Betrieb ein Interesse daran, an einer bestehenden, funktionierenden Konfiguration nichts zu verändern.
Das ist dann häufig der Knackpunkt: Für die Entwickler gibt es Anreize, möglichst viele Releases zu produzieren. Die Techniker hingegen werden belohnt, wenn alles reibungslos funktioniert, was sich am sichersten realisieren lässt, indem man nach dem altbekannten Motto „Never change a running system“ alles so lässt, wie es ist. Kommt es dann zu Problemen und Reklamationen des Kunden, wird oft heftig über die Verantwortlichkeiten gestritten. Es beginnt ein Blame Game, bei dem sich beide Seiten gegenseitig die Schuld zuschieben. Darunter leidet letztlich jedoch nicht nur das Betriebsklima, sondern auch die Produktivität.
Von den Devopsdays zum DevOps Camp
Erstmals verwendet wurde der Begriff DevOps auf den Devopsdays, die der IT-Consultant Patrick Debois 2009 im belgischen Ghent veranstaltete. Sein Blog ist bis heute eine der wichtigsten Informationsquellen für die weitere Entwicklung. In den vergangenen Jahren wurden zudem weltweit Dutzende weiterer DevOps-Konferenzen organisiert. Seit 2014 gibt es das DevOps Camp in Nürnberg, das 2016 vom 6. bis zum 8. Mai im Z-Bau stattfindet. Es ist als BarCamp konzipiert, das Programm ist also nicht fest vorgegeben, sondern wird von den Teilnehmern entwickelt. Vorschläge für die Sessions können über die Website eingereicht werden. Tickets für das gesamte Wochenende kosten 29 Euro, ein Tag 15 Euro, beides inklusive Verpflegung.
Antagonismen überwinden
Die DevOps-Bewegung will Wege aufzeigen, wie man diesen Gegensatz überwinden kann. Allerdings gibt es keine einheitliche Lösung, die für alle Unternehmen passend wäre. Eine wichtige Rolle kommt jedoch in nahezu jedem Umfeld der Automatisierung zu, dem Einsatz von Tools zur Qualitätskontrolle, für die Softwareverteilung und die Installation. Damit ist es oft möglich, den hohen Druck, der durch die Anforderungen aus dem Produktmanagement oder des Kunden entsteht, zu vermindern. Weitere Maßnahmen umfassen etwa die Definition und/oder Optimierung von Prozessen, etwa eines transparenten Trial-and-Error-Verfahrens, das auf der Basis von Erkenntnissen aus der Praxis, einer Fehleranalyse und, wo immer es möglich ist, auf Messwerten beruht. Ein wichtiger Teil von DevOps ist zudem von Anfang an die Verbesserung der Kommunikation zwischen Entwicklung und Betrieb gewesen. Die Umsetzung von DevOps-Konzepten bedeutet nahezu immer auch einen Wandel in der Unternehmenskultur.
Für die Unternehmen bedeutet die Beschäftigung mit DevOps, dass sich ihre Leistungsfähigkeit und Produktivität deutlich erhöht. Sie sind in der Lage, schneller und flexibler auf Kundenanforderungen zu reagieren; ihre Produkte zeichnen sich zudem durch eine höhere Qualität aus. Nicht zuletzt verbessert sich auch das Betriebsklima.
Roland Freist, Jahrgang 1962, begann nach einem Studium der Kommunikationswissenschaft ein Volontariat beim IWT Verlag in Vaterstetten bei München. Anschließend wechselte er zur Zeitschrift WIN aus dem Vogel Verlag, wo er zum stellvertretenden Chefredakteur aufstieg. Seit 1999 arbeitet er als freier Autor für Computerzeitschriften und PR-Agenturen. Seine Spezialgebiete sind Security, Mobile, Internet-Technologien und Netzwerke, mit Fokus auf Endanwender und KMU.
Redaktionsbüro Roland Freist, Fritz-Winter-Str. 3, 80807 München, Tel.: (089) 62 14 65 84, roland@freist.de