Da Du diesen Text hier liest, bist Du offensichtlich genau so ein Nerd wie wir. Komm zu uns und bewerbe Dich bei ///\/ DevBoost: https://devboost.com/karriere (https://api.devboost.com)

Womit kämpfen Softwarehersteller heute?

Welche Herausforderungen haben Softwarehersteller heute zu meistern? Dieser Frage sind wir nachgegangen und haben aus mehr als 300 Einzelantworten die relevantesten Themenfelder identifiziert.

von Tobias Nestler, Lesezeit: 5 Min.
Arbeitsplatz von Softwareentwicklern

Regelmäßig sprechen wir mit Verantwortlichen ambitionierter Softwarehersteller. Fragen wir nach den aktuellen Herausforderungen rund um die Produktentwicklung, bekommen wir immer wieder ähnliche Aussagen:

❌ Komplexität und technische Schulden bremsen die Entwicklung neuer Features.

❌ Entwickler sind knapp und vorhandene Senior Developer an vielen Stellen der Flaschenhals.

❌ Die gewachsene Architektur und die Betriebsumgebung der Software skaliert nicht mehr mit den aktuellen Anforderungen.

❌ Unklare Anforderungen sorgen für noch mehr Arbeitslast und Frust in den Entwicklungsteams.

❌ Der Fokus geht verloren. Mitarbeiter arbeiten mehr in Projekten für einzelne Kunden statt am Kernprodukt.

❌ Aufgrund manueller Aufwände und ungenauer Schätzungen verschieben sich geplante Releases immer wieder.

In den genannten Punkten finden sich sicherlich die meisten Entwicklungsteams wieder. Eine spannende Frage, die uns in dem Zusammenhang von Entwicklungsleitern oft gestellt wird: Wo steht mein Team bei den genannten Herausforderungen denn im Vergleich zu anderen?

Um diese Frage zu beantworten, haben wir die Gespräche aus den letzten Monaten einmal genau analysiert. Wir haben die Antworten zu den genannten Problembereichen gesammelt, strukturiert und ausgewertet.

Für unsere Auswertung haben wir in einem ersten Schritt alle im Rahmen der Gespräche genannten Herausforderungen und Lösungsideen gruppiert und gezählt. Wir haben mehr als 300 Einzelantworten in 14 wiederkehrende Problembereiche gegliedert. Den Problembereichen haben wir 9 Lösungsmuster gegenübergestellt. Sie stellen für uns die relevanten Erfolgsfaktoren für eine performante Produktentwicklung dar.

Die Problembereiche und Erfolgsfaktoren lassen sich dabei drei Phasen der Produktentwicklung zuordnen: „Product Discovery“, „Product Forming“ und „Product Shipping".

Abbildung 1: Pipeline der Software-Produktentwicklung

Die Probleme wirken dabei wie Ventile auf einer Pipeline (Abbildung 1). Gibt es Probleme in einer Teilphase, dann ist das Ventil verschlossen oder nur wenig geöffnet. Dadurch sinkt die Flussgeschwindigkeit - die Performance Eurer Produktentwicklung ist nicht optimal. Sind alle drei Ventile vollständig geöffnet, so ermöglicht das ein eine hohe Flussgeschwindigkeit – sprich Euer Team schafft es die richtigen Produkt-Features schnell zu liefern.

Doch nun lasst uns auf die Zahlen schauen.

Ordnen wir die genannten Probleme der zugehörigen Phase zu, so erkennt man eine ungefähre Gleichverteilung der artikulierten Probleme auf die drei Phasen. Daraus lässt sich also kein klarer Problemfokus bzw. keine direkte Priorität für mögliche Lösungsansätze ableiten. Das erklärt, warum es vielen Teams so schwerfällt, die richtigen Optimierungshebel zu identifizieren und die richtigen Probleme zu lösen.

Abbildung 2: Customer Benchmark

Andererseits sind Ressourcen immer knapp und wirkungslose Investitionen zusätzlich schlecht für die Teammotivation. Bei der Entscheidung an welcher Stelle man zuerst genauer hinschauen sollte, hilft uns allerdings die Pipeline-Metapher. Optimierungen an den weiter hinten liegenden Ventilen, haben nur dann einen Effekt, wenn das Ventil ganz vorn (Product Discovery) weit genug geöffnet ist.

Fehlende Fokussierung in der Product Discovery Phase

Geht man bei den Problemen in der Product Discovery Phase ins Detail, erkennt man, dass die meisten Softwarehersteller vor allem mit der Fokussierung ihrer Aufwände auf das Kernprodukt zu kämpfen haben.

Abbildung 3: Product Discovery

Die Ursachen werden von den Verantwortlichen klar benannt. So müssen Entwickler neben der Feature-Entwicklung für das Produkt oft auch individuelle Anpassung für einzelne Kunden implementieren. Kurzfristige Wünsche (bspw. aus dem Vertrieb) an die Entwicklung torpedieren immer wieder die eigentliche Produkt-Roadmap. Ungelöste Prioritäts- und Ressourcenkonflikte sind an der Tagesordnung und sorgen für Unmut und Druck. 

Nach der Fokussierung auf das Kernprodukt stellt die Schaffung klarer Anforderungen an die Entwicklung eine zweite große Herausforderung dar. Damit verbundene Probleme werden von den Befragten auf zu wage spezifizierte Anforderungen, ungenaue Schätzungen sowie aufwendige Abstimmung zu einzelnen Features zwischen Entwicklung und Product Owner zurückgeführt.

Unflexible Architekturen und Teams in der Product Forming Phase

 

Bei der Auswertung der Product Forming Phase, wird deutlich, dass sowohl eine fehlende Flexibilität Ihrer Software-Architektur als auch die ineffiziente Organisation von Aufgaben innerhalb der Teams vielen Softwareherstellern Probleme bereiten.

Abbildung 4: Product Forming

Berücksichtigt man Conveys Law, so überrascht dieser Zusammenhang nicht wirklich. In Bezug auf die Architektur kämpfen Entwicklungsteams vor allem mit der fehlenden Erweiterbarkeit, komplexen Abhängigkeiten im System und der Wartung und Pflege unterschiedlicher Versionen und Konfigurationen.

Als prominente Probleme im Bereich der Teamstruktur bzw. -organisation werden Kommunikations-und Abstimmungsaufwände, viele Kontextwechsel sowie der allseits prominente Mangel an qualifiziertem Personal beschrieben.

Verschleppte Technische Schuld und fehlende Automatisierung in der Product Shipping Phase

 

Bei der Product Shipping Phase sticht das Thema Refactoring heraus. Hier lassen sich mehr als die Hälfte der genannten Probleme zuordnen. Der Konflikt zwischen Abbau technischer Schulden und dem Entwickeln neuer Features stellt viele Softwarehersteller vor Herausforderungen. Die Komplexität eines über Jahre gewachsenen Systems führt dazu, dass viel Zeit für Wartungsarbeiten verwendet werden muss. Auch werden monolithischen Architekturen mehr und mehr als Ballast empfunden, da viele interne Abhängigkeiten die Entwicklung ausbremsen.

An zweiter Stelle werden Probleme rund um das Release-Management des Produkts deutlich. Eine unzureichende CI/CD Unterstützung sowie die hohen manuelle Aufwände im Testing und der Auslieferung der Software werden in dem Bereich zumeist genannt.

Abbildung 5: Product Shipping

Top-Herausforderungen: Fehlender Fokus und Technische Schuld

 

Nachdem wir die Probleme pro Phase verglichen haben, wollen wir sie abschließend noch einmal im direkten Vergleich sehen. Hier wird deutlich, dass die beiden Top-Herausforderung von Softwareherstellern in der Fokussierung der Aufwände auf ihr Kernprodukt sowie der Sicherstellung eines kontinuierlichen Abbaus technischer Schulden liegt. Auf eines der beiden Themen ließen sich die meisten der genannten Probleme zuordnen.

Abbildung 6: Alle Erfolgsfaktoren im Vergleich

Willst Du nun gern wissen, wo die Performance Eurer Entwicklung aktuell das größte Potential hat, dann starte die Analyse mit unserem Development Benchmark. Hast Du das getan, kannst Du anhand der aufbereiteten Zahlen dieses Artikels einordnen, wie ihr im Vergleich zu anderen Softwareherstellern dasteht.

Mit dem Wissen um die eigenen Potentiale hast Du den ersten Schritt getan. Was die nächsten Schritte sein können und welche Maßnahmen sich in Eurem konkreten Fall lohnen können wir mit Dir in einem kostenfreien Beratungsgespräch klären.

Bist Du verantwortlich für die Software-Produktentwicklung in Eurem Team, dann melde Dich bei uns. Wir nehmen uns die Zeit und gehen vertiefend auf Eure aktuellen Herausforderungen ein, betrachten mögliche Hürden und entwickeln einen konkreten Plan diese zu adressieren.

Was kannst Du nun tun?

Sprich mit einem Experten.

Beratungsgespräch vereinbaren
Zuletzt bearbeitet am 19.07.2023

Beitrag teilen