Agile Entwicklungsmethoden haben sich über die letzten Jahre etabliert und einen festen Platz in der Softwareentwicklung gefunden. Der Erfolg liegt an den bestechenden Vorteilen: dank kürzeren Zyklen kann besser auf Änderungen eingegangen werden und es wird schneller Wert für den Kunden geschaffen. Die stereotypischen Reibereien zwischen Business („die IT ist viel zu langsam“) und der Entwicklung („der Kunde will immer wieder Änderungen“) haben sich massiv verbessert, die Zusammenarbeit ist konstruktiver.

Genau diese kürzeren Iterationen führen aber zu einem neuen Spannungsfeld zwischen der Entwicklung (Dev für Development) und dem Betrieb (Ops für Operations). Und genau da setzt DevOps an. Es ist die konsequente Weiterführung der agilen Methoden in der gesamten Wertschöpfungskette. Der Betrieb wird mit in das Entwicklungsteam genommen und Test und Deployment werden weitgehend automatisiert. Damit sind Lieferungen bis in die Hände des Kunden theoretisch auch innerhalb von wenigen Minuten möglich. Und das wichtigste ist, der Kunde hat dadurch einen Wert und sein Feedback kann die weitere Entwicklung mitbeeinflussen.

Das Netnear IT Team wird von Dirk Harberg geführt und von Marcel Wolf als Coach für Agilität und DevOps begleitet. In diesem Team sammeln wir seit einigen Jahren praktische Erfahrungen mit DevOps. Dort wird unter anderem eine Smartphone App entwickelt, welche die Inbetriebnahme von neuen Netzwerkelementen vereinfacht und so die Grundlage schafft, noch schnelleres Internet in die Schweiz zu bringen.

Schauen wir uns die Phasen der Entwicklung beim Netnear IT Team im Detail an.

Direkt beim Kunden im Feld werden die Anforderungen aufgenommen. Dort wird im Kontext der täglichen Arbeit des Kunden geschaut, wie die Weiterentwicklung Wert liefern kann. Zusammen mit dem Team wird daraus geplant, was im nächsten Entwicklungszyklus umgesetzt werden kann. Ganz im Sinne der agilen Prinzipien (Agiles Manifest) wird hier die kollektive Intelligenz des Teams für die Planung genutzt.

FullSizeRender2_nj

Entwicklung, Test und Deployment – der Code wird häufig ins Code Repository eingecheckt. Danach läuft ein weitgehend automatischer Prozess ab, der die Software paketiert, verschiedene Tests durchführt und die Installation auf den entsprechenden Instanzen macht.

Alles geschieht weiter in enger Abstimmung mit dem Kunden. Er ist bei der Entstehung dabei und kann seine Tests mit einbringen.

IMG_8204_2_nj

Mit der Lieferung in die Produktion ist der Zyklus aber nicht abgeschlossen. Nun kommt der wichtige Teil, in dem das Feedback vom Kunden gesammelt wird. Da kann es schon mal vorkommen, dass wir uns die Gummistiefel anziehen und mit den Netzbauern in den Schacht steigen. Um zu sehen, ob draussen im Feld das auch so funktioniert, wie wir es uns im warmen Büro ausgedacht haben.

IMG_0003

Ganz wichtig ist im DevOps Kontext auch die permanente Verbesserung. Das Team reflektiert sich regelmässig und überlegt, wie sie den Ablauf weiter verbessern können. Dazu hilft der Austausch mit anderen DevOps Enthusiasten, den wir auch mit Spezialisten ausserhalb der Swisscom suchen.

Interessiert, wie das aussieht? Dann nimm doch an unserem nächsten DevOps Meetup Teil: DevOps Meetup Zurich