Dienstag, 31. Mai 2016 | Mitgliedernews

Continuous Delivery - Keine Frage der Technik und kein Trend aus dem Silicon Valley

Wer sich mit agiler Softwareentwicklung beschäftigt, kommt um Continuous Delivery nicht herum. Es fing mit Continuous Integration an, was soviel bedeutet wie dass ein Entwickler Programmcode verändert und diese Softwarestand in das zentrale Codeverwaltungssystem hochlädt. Dieser Code wird dann von einer Software automatisch kompiliert, anschließend werden Testfälle ausführt. Das erhöht schon mal die Codequalität, denn wenn nach Änderungen die Software nicht mehr kompiliert oder Testfälle nicht erfolgreich ausgeführt werden, weiß man sofort, dass es ein Problem gibt und kann es beheben.

Seit einiger Zeit spricht man aber von Continuous Delivery, das noch einen Schritt weiter geht. Sobald die Kompilierung durchgeführt wurde und alle Testfälle erfolgreich abgeschlossen wurden, wird der neue Softwarestand sofort dem Kunden zur Verfügung gestellt und er kann sofort den neuesten Softwarestand verwenden. Einmal konfiguriert geschieht dies dann auf Knopfdruck, was den Aufwand für das Deployment erheblich reduziert.

Der Prozess im Hintergrund

Nun ist es bei wichtigen Softwaresystemen so, dass ein sogenanntes Staging durchgeführt wird. Ist ein Entwickler fertig und wurde der Code von anderen Entwicklern geprüft, wird der Softwarestand auf ein Testsystem gespielt. Dort werden dann in der Regel manuelle Tests von den Testabteilungen durchgeführt. Waren diese Tests erfolgreich wird der Softwarestand auf eine Systemintegrationsumgebung gespielt. Diese Systemumgebung ist im Idealfall eine Kopie der echten produktiven Umgebung. Dort sollten Integrationstests, Last- und Performancetests sowie Penetrationtests (Sicherheitstests) durchgeführt werden. Ist hier die Freigabe erteilt worden, so kann die Software dann auf die Produktionsserver übernommen werden.

Dieser Prozess hört sich aufwendig an und das ist er auch. Aber für Softwaresysteme, deren Ausfall hohe Kosten verursacht, ist dieser Weg der absolut richtige. Das Problem ist nur, dass es in den Unternehmen keine Unterscheidung zwischen Applikationen gibt, bei denen es kein Problem ist wenn sie mal nicht laufen und hochverfügbaren Applikationen, die immer laufen müssen. Es gilt überall der gleiche Prozess.

Continuous Delivery - Ein Trend aus dem Silicon Valley? Keineswegs!

Nun, was hat das mit Continuous Delivery zu tun. Man hört immer wieder, dass Vorstände von Unternehmen ins Silicon Valley fahren und sich dort die achso tollen Technologien zeigen lassen, wie dort Continuous Delivery gelebt wird. Die Vorstände lassen sich teure Plattformen aufschwätzen, weil sie dann in der Lage sind, entwickelte Software sofort in die Produktion zu schicken und dass alles auf Knopfdruck passiert.

Softwaresysteme, die Continuous Delivery unterstützen, gibt es aber mittlerweile seit einigen Jahren. Sie gibt es sogar als OpenSource kostenlos und richtig gut wie zum Beispiel das Softwaresystem Jenkins. Für einige unserer Kunden haben wir Continuous Delivery Systeme im Einsatz und können jederzeit automatisch oder auf Knopfdruck Softwarestände auf Servern austauschen und der Anwender bekommt nichts davon mit.

Nun, was machen unsere Vorstände die teure Technologie und Beratug zur Umsetzung eingekauft haben? Sie fahren nach Hause berichten in Ihren Firmen von diesen tollen Werkzeugen und versprechen sich davon, dass ihre Softwaresysteme ab morgen viel schneller mit neuen Features versorgt werden. Nach einem halben Jahr stellen sie fest, dass die neuen Systeme sind integriert wurden und großartig funktionieren, aber es hat sich nichts geändert! Die Time to Market ist gleich geblieben! Die Ursache liegt wie so oft nicht in der Technik, sondern in der Organisation. Denn an die Prozesse haben sie nicht gedacht. Sie haben nicht daran gedacht, dass in Ihren Prozessen umfangreiche Tests vorgeschrieben sind, die einfach ihre Zeit dauern und natürlich auch ihre Berechtigung haben. Da auch nicht die Kritikalität einer Applikation bewertet wird, weil es ja viel einfacher ist einen einzigen Prozess für alle Applikationen zu haben, schaffen sie es nicht einmal bei den weniger kritischen Lösungen den Weg vom Entwicklerrechner bis hin zum Produktionsserver zu verkürzen.

Time to Market: Auch andere Stellschrauben drehen

Und plötzlich ist die Angst da: Wie, wir haben soviel investiert und sind trotzdem nicht schneller? Wir haben so eine wahnsinnig tolle Technologie frisch aus dem Silicon Valley importiert und hängen im Zeitplan hinterher? Auf einmal scheint sich die neue Investition nicht mehr auszuzahlen. Selbstverständlich ein Irrglaube, denn wie wir nun ja wissen, hängt es eher am Prozess. Und gute Software braucht einfach einen guten Prozess. Und wenn dieser erst einmal auf die Art der Applikation (Hochverfügbar? Kritisch? Oder internes Tool, an dem nicht der Unternehmenserfolg hängt?) zugeschnitten ist, was durchaus eine Weile brauchen kann, werden erste Erfolge spürbar.

Doch können wir an dieser Stelle alls CEOs, CDOs, CIOs und sonstige Vorstände beruhigen: Sie haben einen sehr wichtigen Schritt gemacht mit der Einführung von Continuous Delivery, auch wenn Sie danach eventuell noch mal Ihre Prozesse angreifen müssen und das wieder mal einen Mehraufwand darstellt - aber denken Sie doch mal darüber nach, ob nicht andere Stellschrauben anders justiert werden können, damit Ihre Unternehmens-Maschinerie besser läuft ... vor allem hinsichtlich Time to Market, denn da gibt es nicht nur Continuous Delivery, um eine Softwareauslieferung zu beschleunigen.

Ein Ansatz, der die Entwicklungszeit und vor allem Testzeiträume stark verkürzt und die Qualität einer Software erheblich verbessert, ist das Model Diven Development, wie zum Beispiel bei WMS (WOGRA Modelling System). Hier wird das Datenmodell, das der Software zugrund liegt, an einer Stelle konzipiert und hinterlegt. Und der Großteil der Applikationslogik wird automatisiert erstellt. Inklusive automatisierter Tests. Ohne jegliches Zutun. Ohne extra Aufwand. Und dem Time to Market können Sie ganz entspannt entgegen blicken.

Was also lernen wir daraus?

  1. 1. Um Continuous Delivery Systeme zu etablieren muss man nicht nach Kalifornien fliegen
  1. 2. Die Technik hilft alleine gar nichts. Es sind die Prozesse, die geändert werden müssen
  1. 3. Es gibt andere Stellschrauben, mit denen man die Time to Market Zeit erheblich mehr verbessern kann (eine davon ist zum Beispiel WMS)

 

Über WOGRA

WOGRA hilft mittelständischen und großen Unternehmen dabei , die komplexen Aufgaben der digitalen Transformation umzusetzen. Dabei unterstützen wir bei Themen wie der Verbesserung der Kundensicht und -erlebnisse, der Vereinfachung von Unternehmens-prozessen oder bei der Umsetzung neuer Geschäftsideen und –modelle. Wir tun das, indem wir technologische Innovationen nutzen – Methodenkenntnisse anwenden – und die Innovationen in Zusammenarbeit mit unseren Kunden vorantreiben

WOGRA bietet das Expertenwissen aus mehr als 100 Softwareprojekten. Mit unserer Lösungskompetenz schaffen wir Lösungen, die Ihnen neue Einnahmequellen eröffnen, Kundenbeziehungen verbessern oder das Wissen aus Ihrem Geschäftsalltag in neue Geschäftsideen und -modelle wandeln.

Seit 2008 vertrauen mehr als 80 Kunden auf unsere Kompetenzen.


http://www.wogra.com