Optimale Developer Experience und Produktivität sicherstellen 7 Tipps für eine bessere Entwicklererfahrung

Ein Gastbeitrag von Dr. Srinivas Ramanathan * 9 min Lesedauer

Die Developer Experience, auch DevEx oder DX, ist für Software-Anbieter ebenso wichtig wie die Kundenerfahrung im Einzelhandel. Frustrierte Fachkräfte werden dem Arbeitgeber den Rücken kehren. Im schlimmsten Fall beeinträchtigt die Personalfluktuation die Produktqualität.

Eine gute Developer Experience erhöht die Zufriedenheit im Job und gewährleistet auf lange Sicht eine gute Software-Qualität.
Eine gute Developer Experience erhöht die Zufriedenheit im Job und gewährleistet auf lange Sicht eine gute Software-Qualität.

Als Anbieter von Monitoring-Lösungen sind wir an beiden Seiten beteiligt: Wir bieten eine Monitoring-Lösung an, die einige unserer Kundinnen und Kunden zur Überwachung von Entwicklungsumgebungen und virtuellen Arbeitsumgebungen nutzen, die von ihren Softwareingenieuren verwendet werden, aber wir haben auch selbst große Development Teams, die wir zufriedenstellen müssen, damit unsere Produkte funktionieren.

Wie viele andere Unternehmen haben wir mehrere Entwicklungsteams vor Ort in verschiedenen Ländern sowie eine beträchtliche Anzahl von Angestellten, die von zu Hause aus, per Fernzugriff oder mit flexiblen Arbeitsumgebungen arbeiten. Damit unsere Entwicklerinnen und Entwickler sowohl produktiv als auch zufrieden sind, müssen wir ihnen einige sehr grundlegende Dinge bieten:

  • Schnelles Tippen und kein Einfrieren der Anwendungen oder anderweitige Störungen.
  • Die Tools und Anwendungen müssen rund um die Uhr verfügbar sein. Wenn jemand eine Codekorrektur nicht einchecken kann, erhöht sich auch die MTTR und unsere Fähigkeit, Supportanfragen von Kundinnen und Kunden zu bearbeiten, wird beeinträchtigt.
  • Developer müssen in der Lage sein, ihre Arbeit ordnungsgemäß zu testen, damit sie nicht mit Support-Tickets überschwemmt werden, wenn der Code in Produktion geht oder für Kunden freigegeben wird.
  • Tools für die Zusammenarbeit und Mechanismen zum Sammeln von Daten, damit sich die verschiedenen Teams nicht gegenseitig die Schuld zuschieben.

Sieben wichtige Wege, um eine großartige Entwicklererfahrung zu gewährleisten

Es gibt ein paar Schlüsselbereiche, auf die wir besonderen Wert legen, um sicherzustellen, dass unsere Entwicklungsteams zufrieden und produktiv sind:

Schritt 1 – Bereitstellung sicherer, hochleistungsfähiger digitaler Arbeitsumgebungen für ein gutes Entwicklererlebnis

Viele unserer Entwickler verlassen sich darauf, dass wir ihnen sichere und leistungsstarke digitale Arbeitsumgebungen (VDI/DaaS-ähnliche Systeme wie VMware/Citrix/Microsoft Azure Virtual Desktop oder Amazon WorkSpaces) zur Verfügung stellen können. Es ist von entscheidender Bedeutung, dass unsere Entwickler rund um die Uhr auf diese Arbeitsbereiche zugreifen können und darüber hinaus, dass die über sie bereitgestellten Anwendungen tatsächlich leistungsstark genug sind, damit die anderen Fachkräfte ihre Arbeit erledigen können.

Um Probleme aktiv zu erkennen und zu beheben, setzen wir auf eine Mischung aus realem Echtzeit-Monitoring und Synthetic Monitoring (Roboter-Benutzer, die den Zugriff rund um die Uhr simulieren). Bei der synthetischen Überwachung werden Benutzerinteraktionen simuliert, um die Leistung zu messen, während bei der echten Benutzerüberwachung die tatsächlichen Benutzerinteraktionen mit einer Website oder Anwendung analysiert werden.

Die synthetische Überwachung bietet konsistente Messungen und eine 24/7-Überwachung, deckt aber möglicherweise nicht alle Nutzungsszenarien ab, während die Überwachung durch reale Benutzer Einblicke in Echtzeit bietet, aber von der Benutzeraktivität abhängt und in bestimmten Situationen eine Herausforderung darstellen kann. Für eine umfassende Überwachung ist es oft ideal, beide Ansätze zu verwenden.

Schritt 2 – Einsicht in die Benutzerendpunkte für die Fehlerbehebung zum Schutz der Entwicklererfahrung

Digital Employee Experience (DEX) gewinnt zunehmend an Bedeutung, und IT-Teams müssen sicherstellen, dass die Benutzer zufrieden und produktiv sind, insbesondere in hybriden und Remote-Arbeitsumgebungen. Viele unserer Entwickler greifen von ihren Laptops aus auf unsere VDI-Systeme zu. Wenn sie Probleme mit der Benutzerfreundlichkeit haben, liegt die Ursache oft am physischen Endpunkt oder am Standort des Mitarbeiters zu Hause (schlechte ISP-Verbindung, Probleme mit dem Wi-Fi-Router, andere Haushaltsmitglieder spielen oder streamen und beanspruchen die Bandbreite).

Die „letzte Meile“ in der Telekommunikation ist kritisch und kann zu Problemen mit der Ressourcennutzung, dem Heim-WLAN und der Qualität des Internet Service Providers (ISP) führen, was sich negativ auf die Endbenutzererfahrung auswirken kann. Es ist sehr wichtig, über Tools für die Fehlerbehebung bei der Hardware und dem Heimnetzwerk von Heimarbeitern und Fernarbeitern zu verfügen.

Sie können für eine verbesserte Unterstützung für die Überwachung physischer Desktops, einschließlich automatischer Metrik-Schwellenwerte, übersichtlicher Dashboards und umfassender Überwachung wichtiger Leistungsmetriken sorgen, um den Remote-Support effizienter zu gestalten.

Schritt 3 – Sicherstellen, dass gemeinsam genutzte Dienste kontinuierlich überwacht werden

Wir haben viele gemeinsam genutzte Ressourcen, auf die unsere Entwickler und Entwicklerinnen zurückgreifen, insbesondere Datenbanken. Wenn diese ein Problem haben, können die Auswirkungen mehrere Teams betreffen und den Arbeitsfortschritt blockieren. Die Überwachung von Datenbanken, die unsere Developer im Blick haben, ist für unsere Geschäftskontinuität äußerst wichtig.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Ähnliche Dienste, die überwacht werden sollten, sind Systeme, die für die Erstellung und Bereitstellung von Patches und Antworten für Kundinnen und Kunden zuständig sind. Betriebszeit und Leistung von Infrastrukturdiensten wie Dateiservern, Active Directory, Hypervisoren und sogar Speichergeräten sind wichtig, um sicherzustellen, dass die Entwickler produktiv bleiben.

Schritt 4 – Integration der Überwachung in DevOps-Prozesse

Die kontinuierliche Bereitstellung von Live- und historischen Leistungsüberwachungsdaten ermöglicht es den Entwicklern, die Auswirkungen von Änderungen zu bewerten. Die Möglichkeit, Änderungen der Basisleistung automatisch zu erkennen und Leistungsänderungen mit neuen Versionen und Codeversionen zu korrelieren, während diese implementiert werden, beschleunigt die Entwicklungsprozesse und erhöht die Qualität.

Monitoring-Tools mit AIOps-Funktionen erstellen intelligente Benchmarks, die die Entwickler nutzen können. Das Verfolgen von Konfigurationsänderungen kann äußerst nützlich sein, wenn mehrere Entwicklungs- und IT-Teams an Systemen arbeiten. Dies ist besonders relevant, wenn Unternehmen zunehmend auf Automatisierung und die Implementierung von Infrastructure-as-Code (IaC)-Strategien setzen, um flexibel auf sich ändernde Anforderungen reagieren zu können.

In solchen dynamischen IT-Umgebungen, in denen serverlose Technologien, Microservices und Container zum Einsatz kommen, ist der Einsatz von Monitoring-Plattformen, die Konfigurationsänderungen nachverfolgen und Systemaktivitäten protokollieren können, von entscheidender Bedeutung. Die Bedeutung der Konfigurations- und Änderungsverfolgung liegt darin, dass sie die Möglichkeit bietet, Leistungsprobleme und Verlangsamungen von Anwendungen direkt mit den vorgenommenen Konfigurationsänderungen in Verbindung zu bringen. Dies führt zu einer schnelleren und effizienteren Fehlerbehebung, da IT-Teams die Auswirkungen von Änderungen auf die Leistung und Stabilität von Systemen besser verstehen können.

Zusammenfassend lässt sich sagen, dass Konfigurations- und Änderungsverfolgung es IT-Teams ermöglicht, nicht nur die Metriken und Leistungsdaten von Anwendungen und Infrastrukturen zu überwachen, sondern auch zu wissen, wie diese Systeme konfiguriert sind und wie sie sich im Laufe der Zeit verändert haben. Dieses Wissen ist von unschätzbarem Wert, um Probleme zu diagnostizieren, die Effizienz zu steigern und die Gesamtleistung der IT-Infrastruktur zu optimieren.

Schritt 5 – Einbindung der Überwachung in Testprozesse zur frühzeitigen Problembehebung

Dies ist für uns besonders wichtig, um Probleme frühzeitig zu erkennen. Die Überwachung der Anwendungsleistung (Application Performance Monitoring, APM) zusammen mit Belastungs- und Stresstests ermöglicht es unseren Entwicklern, Engpässe und deren Ursachen bis hin zu einer einzigen Codezeile in einer Java- oder .NET-Anwendung zu erkennen. Auf diese Weise können wir vermeiden, dass viele Bugs oder Leistungsprobleme bei Kundinnen und Kunden oder sogar bei unserem eigenen QA-Team auftauchen.

Kommen Java-Anwendungen in der Produktion zum Einsatz, trifft man an einem Punkt sicherlich auf das Szenario, in dem die Anwendung einfriert und langsamer wird oder man eine hohe CPU-Leistung benötigt. Schnell fragt man sich, wo das Problem liegt und an wen man sich wenden kann, um das Problem zu lösen.

Die Java-Technologie ist die Grundlage für wichtige Geschäftsanwendungen in verschiedenen Bereichen wie Finanzen, Gesundheitswesen, Versicherungen und Bildung, und viele dieser Anwendungen verarbeiten täglich mehrere Millionen Anfragen. Wenn diese Anwendungen langsamer werden, beeinträchtigt dies die Benutzerfreundlichkeit und wirkt sich wiederum auf den Unternehmensumsatz aus. Dies ist einer der Gründe, warum die Leistungsüberwachung für Java-Anwendungen immer mehr an Bedeutung gewinnt.

Hier kommt Java APM, die Abkürzung für Java Application Performance Monitoring, ins Spiel, da die Java-Technologie in der Mehrzahl der wichtigen Geschäftsanwendungen in verschiedenen Bereichen eingesetzt wird. Diese Anwendungen, die täglich Millionen von Anfragen verarbeiten können, sind entscheidend für die Benutzerfreundlichkeit und den Umsatz.

APM-Software hilft IT-Betriebsteams, SREs, Zuverlässigkeitsingenieuren und Entwicklern, den Zustand und die Leistung von Anwendungen zu überwachen und zu analysieren. Sie sammelt Metriken aus dem Java-Anwendungscode und nutzt diese, um die Leistung zu analysieren, Engpässe zu identifizieren und eine optimale Benutzerfreundlichkeit zu gewährleisten.

Schritt 6 – Sicherstellen, dass Kollaborationstools kontinuierlich funktionieren, um die DevEx zu verbessern

Neben der Überwachung der offensichtlichen Entwickler-Tools wie Github, Jenkins, Ansible usw. überwachen wir auch kontinuierlich Anwendungen und Tools wie O365, Zoom und Microsoft Teams. Es ist wichtig, die Ursache von Problemen zu erkennen, insbesondere wenn die Tools als SaaS bereitgestellt oder in der Cloud gehostet werden – ist es ein Azure-Problem oder ein Bandbreitenproblem? Außerdem müssen wir sicherstellen, dass unsere Entwickler kommunizieren können, wenn E-Mail-Dienste oder von der Cloud abhängige Dienste wie Office 365 ausfallen. Im Folgenden finden sich einige zentrale Tipps, wie der IT-Betrieb praktisch vor Cloud-Ausfällen geschützt werden kann:

  • 1. Sicherstellung der Ausfallsicherheit des Überwachungstools durch Konfiguration für den Fall eines Cloud-Ausfalls und Nutzung von ITSM-Integrationen
  • 2. Implementierung von Tools wie eG Manager Redundancy, um zu vermeiden, dass kritische Alarme bei Cloud-Ausfällen verloren gehen
  • 3. Kontinuierliche und proaktive Überwachung der geschäftskritischen Dienste und Anwendungen mit synthetischer Überwachung
  • 4. Minimierung der Abhängigkeit von Cloud-Diensten für die Überwachung
  • 5. Entwicklung einer Disaster-Recovery-Strategie für die Observability
  • 6. Einhaltung der Vorschriften zur Datenkontrolle
  • 7. Berücksichtigung des Standorts der Backup-Manager in Übereinstimmung mit den Anforderungen an die Daten-Compliance

Unsere Überwachungsinfrastruktur ist auch in ITSM- und Ticketing-Tools wie JIRA und ServiceNow integriert, um sicherzustellen, dass wir Probleme mit der Entwicklererfahrung prozessbezogen verfolgen und überprüfen und Ziele für die Problemlösung festlegen können. Wenn man die eigenen Entwickler und ihre Probleme mit der gleichen Sorgfalt und Dringlichkeit behandelt wie Kundinnen und Kunden, werden Entwickler zufrieden bleiben!

Top-Tipp: Es kann hilfreich sein, Tools zu wählen, die sich in mehrere Ticketing-Tools integrieren lassen, wenn man in einer größeren Organisation arbeitet, in der verschiedene Teams, Abteilungen oder Auftragnehmer unterschiedliche Support-Tracking-Systeme verwenden – Entwickler bevorzugen vielleicht JIRA, während der Helpdesk ServiceNow bevorzugt.

Schritt 7 – Achten auf Cloud-Abhängigkeiten

Viele Entwicklungsteams stellen heute Anwendungen auf einer Cloud-Infrastruktur bereit, einschließlich öffentlicher Clouds wie Microsoft Azure, Amazon AWS oder Google GCP, um flexibel zu sein. Oft mangelt es an der Koordination zwischen IT-Teams, die Cloud-Ressourcen bereitstellen, und den Entwicklungsteams, die diese Ressourcen benötigen.

Eine wichtige Entscheidung, die bei der Bereitstellung von Ressourcen getroffen werden muss, ist die Art der zu verwendenden Cloud-Instanzen. Entwicklungsteams beschreiben ihre Anforderungen oft in Bezug auf die benötigte CPU und den Speicher (z. B. 4 vCPUs, 16 GB RAM), während IT-Teams VMs bereitstellen, indem sie einen Instance-Typ auswählen. Wenn das Team beispielsweise einen burstfähigen IT-Instance-Typ verwendet, weil er billiger ist, entspricht er möglicherweise nicht dem Ressourcenbedarf des Entwicklungsteams (das vielleicht denkt, dass es eine VM mit dedizierter Kapazität erhält).

Beim Stresstest der Anwendung kann der VM das CPU-Guthaben ausgehen und die Leistung kann schlecht sein, was zur Frustration der Entwickler führt. Kein noch so großes Debugging des Codes wird die Ursache des Problems aufdecken. Die richtige Aufsicht und Überwachung für Cloud-Umgebungen ist der Schlüssel zum Erfolg von Anwendungen in der Cloud.

Fazit

Entwickler möchten unabhängig produktiv und effizient sein, und genau das wollen wir ihnen ermöglichen. Die Sicherstellung, dass die Entwickler stets einen performanten Zugang zu den von ihnen verwendeten Tools haben und die Leistung ihrer Anwendungen sehen können, sind die Schlüsselfaktoren für eine gute Developer Experience. Darüber hinaus können wir durch die Überwachung und Verfolgung der Verfügbarkeit und Leistung der Tools und Anwendungen der Entwickler interne SLAs und KPIs festlegen, um zu quantifizieren, ob wir einen guten DX bieten.

* Über den Autor
Dr. Srinivas Ramanathan der Präsident, Gründer und CEO von eG Innovations. Er verfügt über umfangreiche Erfahrung in Internet-Technologien und Leistungsüberwachung. Mit eG Innovations bietet er leistungsstarke Überwachungs- und Managementlösungen für komplexe IT-Umgebungen an. Die Lösungen werden von namhaften Unternehmen wie Dachser, Allianz und DKV Mobility genutzt. Srinivas hat einen Doktortitel in Informatik und Ingenieurwissenschaften von der University of California, San Diego und einen Master-Abschluss in Informatik vom Indian Institute of Technology, Chennai, Indien.

Bildquelle: gemeinfrei

(ID:49771713)