Wenn Entwickler weniger produktiv sind, als sie sein könnten, liegt das selten an mangelndem Engagement. Viel häufiger sind die Rahmenbedingungen im Unternehmen nicht optimal. Markus Eisele, Developer Strategist bei Red Hat, analysiert die Ursachen und gibt wertvolle Tipps, wie das Management die Produktivität seiner Entwickler zum beidseitigen Nutzen steigern kann.
Glaubt man gewissen Consulting-Konzernen, müssen Unternehmen ihren Entwicklerinnen und Entwicklern nur genauer auf die Finger schauen, um deren Produktivität zu steigern. Dass das in den wenigsten Fällen zum Erfolg führt und viel öfter genau das Gegenteil bewirkt, versteht sich von selbst. Micromanagement und Überwachung sind für Programmierer eher demotivierend. Außerdem lenkt dieser Ansatz von den eigentlichen Problemen ab.
Das heißt nicht, dass das Management gar keine Handhabe hat, um hauseigenen Entwicklern zu helfen, effektiver zu sein. Oppressive Methoden und eine Atmosphäre der Angst gehören jedoch auf gar keinen Fall dazu. Nur glückliche Entwickler sind auch produktiv. Und nur sie bleiben dem Unternehmen erhalten, was gerade in Zeiten des Fachkräftemangels immer wichtiger wird.
Was die Coder unglücklich macht, ist in der Regel die kognitive Belastung, die sie im Alltag nach und nach erdrückt. Aus eigenen, nicht repräsentativen Umfragen ergibt sich, dass nur noch rund 30 Prozent ihrer Arbeit aus dem Programmieren, also der Tätigkeit, für die ihr Herz brennt, besteht.
Rund 30 Prozent ihrer Zeit verbringen Entwickler mit dem Testen ihrer Anwendungen und etwa 40 Prozent mit Themen wie der Automatisierung von Pipelines und Workflows, der Konfiguration ihrer Tools, dem Erstellen von YAML-Dateien und ähnlichen zeitraubenden Aufgaben. Überhaupt ist die technologische Komplexität heute deutlich höher als noch zur Jahrtausendwende. Das erschwert auch das Onboarding neuer Fachkräfte, wenn man sie denn findet.
Nicht zuletzt hat auch der Erfolg der DevOps-Bewegung das Dilemma noch verstärkt: Plötzlich sehen sich Entwickler einer deutlich größeren Menge an Verantwortlichkeiten gegenüber, die sich im designierten Motto „you build it, you run it“ niederschlagen. Es reicht nicht mehr, so das Credo im übertragenen Sinne, den Code zu schreiben – DevOps-Teams sind eben auch für das Deployment, das Testing und den Betrieb der fertigen Anwendungen zuständig.
Und zwar über den gesamten Lebenszyklus der Anwendung. Die Vielschichtigkeit der Aufgaben erfordert intelligente Prozesse und Werkzeuge, um Entwicklerinnen und Entwicklern die Möglichkeit zurückzugeben, sich auf ihre Kernaufgabe konzentrieren zu können, nämlich Wege zu finden, fachliche und unternehmerische Anforderungen in Source Code zu gießen – und zwar möglichst effektiv und qualitativ hochwertig.
Ein zentraler Ansatzpunkt, um die Produktivität von Entwicklern zu steigern, ist die Verwendung einer Anwendungsplattform. Das Konzept ist auch – weiter gefasst – als Platform Engineering bekannt und ein zunehmend verbreiteter Ansatz, um Entwickler von unnötiger Last zu befreien.
Das gleiche Ziel hat die Schaffung kleiner DevOps-Teams: Sie sind in der Regel produktiver als große IT-Abteilungen, weil sie in ihrem Mikrokosmos Technologien und Workflows etabliert haben, die für sie sinnvoll sind. Um das DevOps-Prinzip firmenweit in die Breite zu skalieren, benötigen Unternehmen eine solide technologische Basis, auf der sie aufbauen und mit modernen Methoden weiterentwickeln können. Dazu gehören:
1. Die Anwendungsplattform
Um Anwendungen überhaupt auszurollen, benötigen Unternehmen eine Anwendungsplattform. Die Container-Technologie hat sich mittlerweile als Standard etabliert, weshalb insbesondere Plattformen mit Kubernetes-Unterstützung wie Red Hat OpenShift das Maß aller Dinge sind. Aber auch das ist noch viel zu wenig. Es braucht auch Entwicklungswerkzeuge, Runtimes, Monitoring, Registries und vieles mehr: eben eine vollständig aufeinander abgestimmte Tool-Landschaft.
Für Entwickler zentral sind hier IDE (Entwicklungsumgebung)-Plug-ins für etliche Programmiersprachen und Frameworks, die nahtlos mit der Plattform, beispielsweise Red Hat OpenShift, kommunizieren können. Mit diesen und vielen weiteren Funktionen bietet die Plattform für Hybrid-Cloud-Applikationen bereits von Haus aus Werkzeuge inklusive einer leistungsstarken Entwicklerkonsole, um Anwendungen vom lokalen Rechner auf eine Kubernetes-Plattform zu bringen – und das alles aus einem Guss.
2. So nahe an der Produktion wie möglich
Eine Anwendungsplattform muss vollständig mit allem integriert sein, was Entwickler benötigen. Besonders herausstellen muss man hier den Prozess der Container-Erstellung: Startet die Entwicklung sicher und basiert sie auf etablierten Standards, gestaltet sich die Bereitstellung im Betrieb umso einfacher. Neben der Sicherheit spielt in diesem Zusammenhang auch die konsequente, produktionsnahe Konfiguration der Orchestrierung eine große Rolle. Werkzeuge wie Podman Desktop sind auf die Bedürfnisse der Entwickler ausgerichtet und betonen im kompletten Entwicklungsablauf die Kompatibilität mit der Zielplattform.
Argo CD gehört ebenfalls zum Kubernetes-Ökosystem und wird für Continuous Delivery, Lifecycle Management und App Deployment eingesetzt. Für das Erstellen von CI/CD-Systemen ist Tekton beliebt. Das Tool erlaubt es Entwicklern, Anwendungen über verschiedene Clouds hinweg zu erstellen, zu testen und auszurollen. All diese Teile halten idealerweise schon während der Konzeption und Entwicklung von Anwendungen Einzug in die Projekte.
3. Das Entwicklerportal
Ein Entwicklerportal wie das Red Hat Developer Hub stellt die zentrale Anlaufstelle für Entwicklerinnen und Entwickler eines Unternehmens dar und bietet unter anderem Software-Templates an. Dahinter verbergen sich konfigurierbare, aber vordefinierte „Baupläne“ für Services, Projekte oder Anwendungen. Mit einem Klick können Entwickler aus dem Portal heraus ein neues GitHub-Repository mit allen nötigen Abhängigkeiten erstellen. Das Developer Hub dient auch als zentrale Anlaufstelle für die Dokumentation sämtlicher im Unternehmen genutzter Anwendungen.
Außerdem hilft es bei der Governance und der Durchsetzung von Richtlinien, ohne dass sie zum Showstopper werden. Das Red Hat Developer Hub steigert die Produktivität, da sich die Entwickler deutlich schneller ihren eigentlichen, wertschöpfenden Aufgaben widmen können. Der zentralisierte Charakter und die Software-Templates erleichtern zudem das Onboarding neuer Talente.
IT-Manager, die glauben, dass Überwachung und Micromanagement sich positiv auf die Produktivität auswirken, sind auf dem Holzweg. Eine angenehme Arbeitsatmosphäre bewirkt deutlich mehr. Abgesehen von den richtigen Softskills können Manager auch mit einer passenden IT-Infrastruktur und hilfreichen Tools die Produktivität nachhaltig steigern.