BLOG

Behandeln Sie Ihren IT-Automatisierungscode auch wie Vieh.

Lori MacVittie Miniaturbild
Lori MacVittie
Veröffentlicht am 23. August 2017

Die IT muss sich für die Standardisierung des Codes einsetzen, der die IT am Laufen hält, sonst besteht die Gefahr, dass Systeme entstehen, die die finanziellen Vorteile und Effizienzvorteile der IT-Automatisierung zunichtemachen.

Ich habe fast ein Jahrzehnt damit verbracht, Software zu entwickeln. Eingebettete Software. Websoftware. Client-Server-Software. Middleware- und Mainframe-Software. Ich habe professionell Code in neun verschiedenen Sprachen geschrieben. Interessant ist, dass ich mich nicht daran erinnern kann, in derselben Organisation mehr als zwei Sprachen verwendet zu haben.

Die meisten Unternehmensorganisationen standardisieren nicht nur Server, Plattformen und Frameworks, sondern auch Sprachen. Das Ziel der Wartung besteht in der Software, deren Lebensdauer nicht nur wenige Minuten, sondern manchmal auch Jahrzehnte beträgt. Wartbarkeit ist die Eigenschaft einer Software, die es ermöglicht, dass sie von jemand anderem übernommen und während ihres gesamten Lebenszyklus unterstützt wird, unabhängig davon, wie diese Lebensdauer gemessen wird. Gründe hierfür sind häufig die Fluktuation unter den Entwicklern, die Verfügbarkeit von Sprachkenntnissen auf dem Markt sowie die Kosten für Schulung und allgemeine Wartung. Unternehmen standardisieren in der Regel Programmiersprachen.

Dies steht im Widerspruch zu den aktuellen Trends im Bereich Microservices und Serverless Computing, die als Vorteil die Fähigkeit anpreisen, eine sehr vielfältige (polyglotte) Reihe von Sprachen zu unterstützen. Bob und sein Team können in Go schreiben, während Alice und ihr Team in C, Java oder Lambda entwickeln. Während dies sicherlich ein Bonus für Entwickler ist (die alle ihre Lieblingssprache haben), ist es nicht so gut für Unternehmensorganisationen, die diese Software im Laufe der Zeit warten müssen. APIs ermöglichen die Integration und Nutzung, wodurch die Implementierungssprache im Hinblick auf die Anwendungsentwicklung weitgehend irrelevant wird. In einem Unternehmen muss der zugrunde liegende Code jedoch weiterhin gepflegt werden.

Wenn es um die IT-Automatisierung geht – die interne digitale Transformation auf der Produktionsseite des Unternehmens – ist es für Unternehmen wichtig, nicht nur die Vorteile einer Standardisierung der zu ihrer Unterstützung entwickelten Skripte und Systeme zu erkennen, sondern auch die Fallstricke, die entstehen, wenn man dies nicht tut. Denn Sie bauen diese Systeme nicht mit der Absicht, sie nächste Woche, nächsten Monat oder sogar nächstes Jahr wegzuwerfen. Sie stellen eine längerfristige Investition dar, die die Digitalisierung der Bereitstellung in den kommenden Jahren unterstützen wird. Das bedeutet, dass eine flexible, aber solide Grundlage geschaffen werden muss, die auf den Best Practices basiert, die sich App-Entwickler in Unternehmen auf der ganzen Welt über Jahrzehnte angeeignet haben. An erster Stelle steht dabei die Standardisierung.

1. Wartbarkeit

Ich weiß, dass Sie gerne in PERL schreiben, aber alle anderen verwenden Python. Wenn Sie die Automatisierung in Ihrer bevorzugten Sprache entwickeln, wird diese zu Ihrem Lieblingsprogramm, d. h., niemand sonst wird in der Lage sein, sie in Zukunft zu warten. Das ist schlecht für Sie, denn Sie werden dieses Ding jahrelang behalten müssen, genau wie den Goldfisch, um den Sie Ihre Eltern mit acht Jahren angebettelt haben. Das ist schlecht für das Unternehmen, denn wenn Sie ausziehen, bleiben sie auf Code sitzen, den sie nicht warten können und für den der Support möglicherweise nur mit Mühe möglich ist. Eine 2016 von SIG und O'Reilly durchgeführte Umfrage ergab, dass „70 % der Befragten glauben, dass die Wartbarkeit der wichtigste zu messende Aspekt des Codes ist, sogar im Vergleich zu Leistung oder Sicherheit.“

So wichtig ist es. Betrachten Sie Skripte und Systeme als gemeinsam genutzte Ressourcen, die jetzt und in Zukunft von der Mehrheit der IT-Mitarbeiter problemlos geändert und unterstützt werden können.

2. Kompatibilität

Codeüberprüfung

Da immer mehr IT-Dienste als Software implementiert werden, wird es immer schwieriger, diese auf dem neuesten Stand und mit anderen Systemen kompatibel zu halten. Wenn Sie glauben, dass REST-APIs das Problem der „Abwärtskompatibilität“ lösen, denken Sie noch einmal darüber nach. APIs sind Produkte (oder sollten es sein) und daher entwickeln sie sich auch ständig weiter. Und noch schlimmer ist es „im Netzwerk“, wo es sogar innerhalb derselben Produktlinie Unterschiede gibt und die API-Unterschiede von Version zu Version die Standardisierung zu einer Sisyphusarbeit machen. Das Problem ist so weit verbreitet, dass die API-Standardisierung laut einem von vier Befragten des „State of API 2016“-Berichts von Smart Bear auf Platz drei der Liste der technologischen Herausforderungen steht, die in den kommenden Jahren gelöst werden müssen.  

Und weil so viele der von uns in der IT verwendeten Sprachen interpretiert werden, können Änderungen von Version zu Version sorgfältig entwickelte Automatisierungsskripte und -systeme zerstören. Änderungen von einer Version von node.js zu einer anderen können äußerst negative Auswirkungen haben, vom Beschädigen eines Skripts bis hin zu unerwartetem Verhalten. Durch die Standardisierung stabiler Versionen von Skriptumgebungen und -sprachen können die Auswirkungen solcher Änderungen minimiert werden.

Und Sie müssen weiterhin Patches und Upgrades für jedes zugrunde liegende System verwalten, das diese Automatisierung antreibt. Je weniger also, desto besser.  

3. Fehlerbehebung

Wird die Standardisierung über Bord geworfen, führt dies zu Problemen bei der Fehlerbehebung. Dies ist insbesondere dann wichtig, wenn Sie zu einer auf der Zeit bis zur Lösung basierenden Messgröße für IT-KPIs wechseln. Je länger es dauert, das Problem zu finden, desto schlechter sieht diese Metrik aus. Die Standardisierung ist ein wichtiger Faktor zur Verkürzung der Lösungszeit. Wenn Bob der einzige Python-Experte im Team ist und er im Urlaub (und nicht erreichbar) ist und sein Skript nicht funktioniert, steht demjenigen, der mit der Fehlerbehebung beauftragt ist, eine lange Woche bevor. Wenn Sie die IT dazu ermutigen, ihre Lieblingssprache zu verwenden, schränken Sie die Möglichkeiten anderer zur Fehlersuche und Problemlösung erheblich ein. Selbst wenn Bob nicht im Urlaub ist und das Problem nicht finden kann, gibt es nur wenige, die helfen können.

Dies ist ein Bereich, mit dem Sie nicht herumspielen sollten. Laut InitialState dauert es 30-mal länger, einen Fehler zu beheben, als eine Zeile Code zu schreiben. Sie können sich vorstellen, wie das Geld langsam in den Schredder wandert, während Sie verzweifelt nach Fehlern in Ihnen unbekanntem Code suchen und diese dann beheben. Kein schönes Bild. Die Kosten für die Fehlerbehebung lassen sich zwar nicht vermeiden, Sie können sie jedoch begrenzen, indem Sie den zusätzlichen Zeitaufwand vermeiden, der durch jemanden entsteht, der die Sprache nicht beherrscht. In der Produktion ist Zeit Geld. Alles, was Sie tun können, um die Zeit bis zur Lösung zu verkürzen, ist von großer Bedeutung.

Da die IT langsam Skriptsprachen, Tools und Systeme einführt, ist es daher keine schlechte Idee, eine Synchronisierung mit der App-Entwicklung durchzuführen. Wenn die IT dieselben Systeme und Sprachen (oder zumindest einige davon) standardisiert, gewinnen Sie eine Legion von Experten, die Sie bei der Fehlerbehebung und anderen entwicklungsbezogenen Prozessen wie Code-Überprüfungen unterstützen können. Denn Sie führen Code-Reviews durch, um Fehler zu finden, bevor sie Probleme verursachen, richtig? Rechts?

Die Standardisierung wird als Mittel zur Bekämpfung steigender Kosten genannt und trägt zweifellos entscheidend zu diesen Bemühungen bei. Doch die Standardisierung bringt auch eine Reihe weiterer Vorteile mit sich. Dazu gehören die Minimierung technischer Schulden, die Verkürzung der Problemlösungszeit und die Vereinfachung der täglichen betrieblichen Wartung. Eine fehlende Standardisierung hat mit Sicherheit den gegenteiligen Effekt auf Budget und Zeit, da sie Komplexität und Engpässe mit sich bringt, die die Vorteile der Automatisierung zunichte machen und Unternehmen daran hindern, die für ihr Wachstum erforderlichen Gewinne und die erforderliche Produktivität zu erzielen. Wenn Sie mit der IT-Automatisierung beginnen oder diese fortsetzen, denken Sie daran, diese Skripte und Systeme eher wie Vieh und nicht wie persönliche Haustiere zu behandeln. Denn Haustiere erfordern ständige, persönliche Aufmerksamkeit, die sich die IT künftig nicht mehr leisten kann.