Nur glückliche Entwickler sind produktive Entwickler

Illustration Absmeier foto freepik

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.

  1. 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.

  1. 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.

 


 

Wie können Programmierer produktiver arbeiten?

Welche Maßnahmen auf technischer und menschlicher Ebene sind dafür notwendig?

 

Dies sind Fragen, die sich viele Programmierer stellen, die ihre Arbeit effizienter und qualitativ hochwertiger gestalten wollen. In diesem Beitrag möchte ich einige Tipps und Ratschläge geben, wie man als Programmierer produktiver arbeiten kann, sowohl auf technischer als auch auf menschlicher Ebene.

 

Auf technischer Ebene gibt es einige Maßnahmen, die man ergreifen kann, um seine Produktivität zu steigern. Zum Beispiel:

  • Verwenden Sie geeignete Werkzeuge und Frameworks, die zu Ihrem Projekt und Ihren Fähigkeiten passen. Es gibt viele verschiedene Programmiersprachen, IDEs, Bibliotheken und Plattformen, die Ihnen das Leben erleichtern können. Wählen Sie diejenigen aus, die Ihren Anforderungen entsprechen und mit denen Sie sich wohl fühlen.
  • Schreiben Sie sauberen und lesbaren Code, der den gängigen Standards und Konventionen folgt. Dies erleichtert nicht nur die Wartung und Erweiterung Ihres Codes, sondern auch die Zusammenarbeit mit anderen Programmierern. Verwenden Sie Kommentare, Dokumentationen und Tests, um Ihren Code zu erklären und zu überprüfen.
  • Nutzen Sie die Vorteile von Versionskontrolle, Automatisierung und Debugging. Diese Werkzeuge helfen Ihnen, Ihren Code zu organisieren, zu verwalten und zu verbessern. Sie können Ihnen auch helfen, Fehler zu finden und zu beheben, bevor sie zu größeren Problemen werden.
  • Lernen Sie ständig neue Dinge und verbessern Sie Ihre Fähigkeiten. Die Welt der Programmierung ist ständig im Wandel und es gibt immer etwas Neues zu entdecken und zu lernen. Seien Sie neugierig und offen für neue Herausforderungen und Möglichkeiten. Lesen Sie Bücher, Blogs, Artikel, Podcasts oder schauen Sie sich Videos an, die sich mit Ihrem Interessengebiet befassen. Nehmen Sie an Online-Kursen, Webinaren oder Workshops teil oder besuchen Sie Konferenzen oder Meetups. Tauschen Sie sich mit anderen Programmierern aus, stellen Sie Fragen oder helfen Sie anderen.

 

Auf menschlicher Ebene gibt es auch einige Faktoren, die Ihre Produktivität beeinflussen können. Zum Beispiel:

  • Setzen Sie sich klare und realistische Ziele für Ihre Arbeit. Definieren Sie, was Sie erreichen wollen, warum Sie es tun wollen und wie Sie es tun wollen. Teilen Sie Ihre Ziele in kleinere und messbare Aufgaben auf und verfolgen Sie Ihren Fortschritt. Belohnen Sie sich für Ihre Erfolge und lernen Sie aus Ihren Fehlern.
  • Planen Sie Ihre Zeit sinnvoll ein. Finden Sie heraus, wann Sie am produktivsten sind, und nutzen Sie diese Zeit für Ihre wichtigsten oder schwierigsten Aufgaben. Vermeiden Sie Ablenkungen oder Unterbrechungen, die Ihre Konzentration stören können. Machen Sie regelmäßige Pausen, um sich zu erholen und zu entspannen.
  • Pflegen Sie eine gesunde Work-Life-Balance. Programmieren kann sehr anstrengend sein, sowohl körperlich als auch geistig. Achten Sie daher auf Ihre Gesundheit und Ihr Wohlbefinden. Essen Sie gesund, trinken Sie genug Wasser, schlafen Sie ausreichend und treiben Sie Sport. Finden Sie Hobbys oder Aktivitäten, die Ihnen Spaß machen und Ihnen helfen, Stress abzubauen. Verbringen Sie Zeit mit Ihrer Familie oder Freunden oder suchen Sie sich eine soziale oder ehrenamtliche Tätigkeit.
  • Suchen Sie nach Feedback oder Unterstützung von anderen. Programmieren muss kein einsamer Beruf sein. Es kann sehr hilfreich sein, sich mit anderen Programmierern auszutauschen oder um Rat oder Hilfe zu bitten. Dies kann Ihnen nicht nur neue Perspektiven oder Lösungen bieten, sondern auch Ihr Selbstvertrauen oder Ihre Motivation stärken. Seien Sie auch bereit, anderen Feedback oder Unterstützung zu geben.

 

Zusammenfassend lässt sich sagen, dass es viele Möglichkeiten gibt, wie Programmierer produktiver arbeiten können. Es erfordert jedoch eine bewusste Anstrengung und eine ständige Anpassung an die eigenen Bedürfnisse und Umstände. Ich hoffe, Ihnen einige nützliche Tipps und Ratschläge gegeben zu haben, die Sie in Ihrer Arbeit anwenden können. Viel Erfolg und Spaß beim Programmieren.

Genki Absmeier