Jedes Unternehmen ist heute ein Softwareunternehmen. Anwendungen sind unerlässlich für die Entwicklung von Produkten, die Steuerung von Produktionsprozessen sowie für die Kundenkommunikation. Mehr noch: Digitale Services sind in vielen Fällen längst Teil des Geschäftsmodells geworden. Selbst in traditionellen Branchen wie dem Maschinen- und Anlagenbau erwirtschaften Unternehmen mittlerweile einen signifikanten Teil ihrer Wertschöpfung durch digitale Angebote, das zeigen Beispiele wie Bosch oder die Heidelberger Druckmaschinen AG.
Deshalb rückt Softwareentwicklung ins Zentrum der gesamten Geschäftstätigkeit. Die Geschwindigkeit der Entwickler*innen (Developer Velocity) wird essentiell, um Wachstumspotenziale nutzen, Innovationen vorantreiben und schnell auf veränderte Marktbedingungen reagieren zu können.
Wie eine Untersuchung des Beratungsunternehmens McKinsey zeigt, wachsen Unternehmen mit einem hohen DVI-Wert (Developer Velocity Index) vier bis fünf Mal schneller als Firmen mit einem geringen Reifegrad in ihrer Softwareentwicklung. Das bedeutet für viele Unternehmen: Sie müssen neben ihrer eigentlichen Geschäftstätigkeit zusätzliche Technologiekompetenz aufbauen - dabei wird Fachpersonal immer knapper.
Erfolgsfaktoren in der Softwareentwicklung
Verantwortliche müssen ihre Entwicklungsteams besser unterstützen und motivieren, um Kreativität und Produktivität zu steigern. Wie dies gelingen kann, hat Microsoft in Zusammenarbeit mit McKinsey, GitHub und HashiCorp in einer ersten Phase untersucht. Dazu wurden 2020 über 400 Unternehmen nach ihren Erfahrungen befragt, wie Softwareentwicklung die Unternehmens-Performance beeinflusst.
In einer zweiten Phase konzentrierten sich die Autoren auf die Branchen Einzelhandel und Bankwesen, die sich in der Corona-Pandemie besonders stark digital transformieren mussten. Fünf führende Unternehmen wurden dafür eingehend untersucht.
Dabei konnten die Autoren folgende Erfolgsfaktoren identifizieren:
- Technologie: In diesem Bereich sind vor allem die Nutzung von Cloud-Ressourcen und von standardisierten und automatisierten Build- und Release-Werkzeugen essentiell. Hinzu kommt die Modernisierung von Daten- und Anwendungsplattformen sowie die Einbettung und Automatisierung von Security Controls im Entwicklungsprozess.
- Unterstützung: Ein solides Technical-Product-Management, die Einführung eines geschäftsbereichs- und technologieübergreifenden Betriebsmodells, Cloud-Lösungen und moderne Tools sind wesentliche Erfolgsfaktoren, wenn es um die operative Unterstützung von Entwickler*innen geht.
- Organisation und Arbeitsmethoden: In erfolgreichen Unternehmen arbeiten Entwicklungsteams eigenständig und verantworten ganzheitlich einen Funktionsbaustein. Dabei gehen sie nicht mehr nach dem klassischen Schichtmodell vor. Immer mehr an Bedeutung gewinnen Denkmuster aus der Open-Source-Software Entwicklung, wie gemeinschaftliches Arbeiten über Domänen-Grenzen hinweg.
So erhöhen Sie die Geschwindigkeit Ihrer Entwicklungsteams
Um das volle Potenzial der Entwickler*innen zu entfalten, Hürden für die Produktivität abzubauen und die Kreativität zu fördern, gilt es zunächst einmal, eine partnerschaftliche Zusammenarbeit zwischen Geschäfts- und Technologiebereichen sicherzustellen. Der Austausch zwischen den Fachbereichen und der IT ist wichtig, um ein gemeinsames Verständnis für die Herausforderungen des jeweils anderen zu entwickeln und gemeinsame Lösungswege zu erarbeiten. Verantwortliche sollten deshalb regelmäßige interdisziplinäre Meetings einrichten. Es empfiehlt sich, Personen in den Fachabteilungen mit hoher Affinität zu IT- und Entwicklungsthemen zu identifizieren und diese als Vermittler*innen zwischen den beiden Welten einzusetzen.
Oft fehlt es außerdem an einem unternehmensübergreifenden Verständnis dafür, welche Ziele bis wann, wie und aus welchen Gründen erreicht werden sollen, und welchen Beitrag jede*r einzelne dazu leisten kann. Um Transformationsprojekte erfolgreich umsetzen zu können, müssen Business und IT dieses Verständnis gemeinsam entwickeln, die Pfade zur Umsetzung der Ziele definieren und sich auf konkrete Zeitpläne und Meilensteine einigen.
Einrichtung eines Cloud Center of Excellence (CoE):
Wie bereits erwähnt, ist die Cloud ein wichtiger Enabler für mehr Developer Velocity. Unternehmen, die ihre Entwicklungsgeschwindigkeit steigern wollen, sollten deshalb ein Cloud Center of Excellence (CoE) etablieren. Das CoE-Team definiert die grundlegenden Standards der Cloud-Nutzung und sorgt so für Konsistenz bei Sicherheit, Qualität, Verfügbarkeit und Leistung. Entwicklungsteams erhalten dadurch die maximal mögliche Flexibilität bei der Wahl ihrer Tools und Dienste und können sich ganz auf ihre eigentliche Aufgabe konzentrieren.
Dabei muss das CoE aber sicherstellen, dass Entwickler*innen nicht durch zu viel Bürokratie und manuelle Prozessschritte ausgebremst werden. Beides kann eine Weiterentwicklung und Wartung der Applikation einschränken und möglicherweise ab einem bestimmten Zeitpunkt unmöglich machen.
Auch die Wahl der Software-Architektur spielt für die Developer Velocity eine wichtige Rolle. In monolithischen, eng gekoppelten Architekturen gibt es eine Vielzahl von Abhängigkeiten und technischen Schulden.
Der hohe Abstimmungs- und Integrationsaufwand erschwert es Entwickler*innen, schnell und eigenverantwortlich auf Veränderungen und neue Anforderungen zu reagieren. Unternehmen sollten deshalb auf lose gekoppelte Architekturen wie Microservices setzen.
Dabei entwickeln Teams selbständig und weitgehend unabhängig einzelne funktionale Komponenten, die über definierte Schnittstellen miteinander kommunizieren. Das erhöht die Geschwindigkeit und Flexibilität im Software-Development deutlich und trägt auch zu mehr Zufriedenheit bei den Entwickler*innen bei.
Tricks von innovativen Entwicklungsteams
Vom Kulturwandel über Open-Source-Tools bis hin zur Sicherheit: Expert*innen aus der Community berichten, welche Punkte für gutes Teambuilding relevant sein können.
Einführung des Inner-Source-Konzept
Bei erfolgreichen Unternehmen steht außerdem das Thema Inner Source ganz oben auf der To-Do-Liste. Dabei wird das Open-Source-Prinzip, bei dem viele Entwickler*innen unabhängig und selbständig an einem Projekt arbeiten und die Projektfortschritte für jeden zugänglich sind, auf die interne Entwicklung übertragen.
Sämtliche Repositories für alle Projekte sind für alle Entwicklungsteams zugänglich. Das fördert den Wissenstransfer und die Zusammenarbeit, erleichtert den Blick über den eigenen Domänenrand hinaus und motiviert zum Austausch. So lassen sich letztendlich nicht nur schnellere, sondern auch bessere und innovativere Ergebnisse erzielen.
Erstklassige Arbeitsbedingungen sorgen für erstklassige Ergebnisse
Damit Softwareentwickler*innen den größtmöglichen Beitrag zum Unternehmenserfolg leisten können, müssen sie optimale Arbeitsbedingungen vorfinden. Dazu gehört beispielsweise ein einfacher Zugang zu Cloud-Technologien. Er ermöglicht es, Neues schnell und einfach auszuprobieren. Entwicklungswerkzeuge und Plattformen sollten außerdem automatisiert zur Verfügung gestellt werden. Developer können sich so ganz auf die fachliche Seite ihrer Aufgaben konzentrieren, während die Einhaltung von Security Policies und Governance-Richtlinien sichergestellt wird.
Neben den technischen Voraussetzungen muss aber auch das kulturelle Umfeld stimmen. Konzepte wie Inner Source lassen sich nur in einer Atmosphäre umsetzen, in der Vertrauen und Offenheit herrscht, und in der Entwickler*innen flexibel und selbstbestimmt arbeiten können, ohne dass Security- oder IT-Governance-Vorgaben sie zu sehr einengen.
Lesen Sie jetzt den gesamten Bericht zur Developer Velocity. Oder lernen Sie den Reifegrad Ihrer Software-Entwicklung kennen:
Alle Artikel aus Cloud
Die Cloud ist der Schlüssel für mehr Agilität. Lesen Sie, wie moderne Cloud-Umgebungen heute aussehen.