Software-Produktentwicklungsprozess - schaffen Sie Klarheit über Ihr Angebot
Wenn von Software-Produktisierung die Rede ist, ist damit oft die Entwicklung und Verwaltung eines Softwareprodukts gemeint, das mit denselben Merkmalen und Funktionen an Kunden auf der ganzen Welt verkauft wird. Für einige Unternehmen ist das zweifellos der richtige Weg – aber aufgrund meiner langjährigen Erfahrung in der Entwicklung von Fahrgastinformations-systemen für die Eisenbahnindustrie glaube ich, dass für uns ein anderer Ansatz besser ist. Zughersteller und Verkehrsbetriebe aus aller Welt kommen nicht zu Teleste, um genau das zu bekommen, was ihre Konkurrenten haben. Was sie wollen, ist, sich von der Konkurrenz abzuheben, und dabei können wir ihnen helfen.
Wenn ich über unsere Fahrgastinformationslösung und deren Produktisierung nachdenke, denke ich nicht daran, allen unseren Kunden dieselbe Software zu verkaufen. Vielmehr sehe ich die Produktisierung als einen Prozess, der es uns ermöglicht, unser Angebot präzise zu gestalten und die in unserer Softwarelösung enthaltenen Features, Funktionalitäten und Optionen klar zu kommunizieren. In unserem Fall sind zum Beispiel kundenspezifische Schnittstellen oder andere kundenspezifische Module ein elementarer Bestandteil der Software, und anstatt die gleiche Lösung für alle anzubieten, kann das Produkt nach den Bedürfnissen des Kunden konfiguriert und erweitert werden.
Dabei geht es auch darum, unsere Stärken zu erkennen, auf ihnen aufzubauen und sie weiterzuentwickeln und gleichzeitig die Schwächen zu beheben, die uns daran hindern, in dem, was wir tun, erfolgreicher zu sein. In diesem Blog teile ich einige meiner Erkenntnisse darüber, wie dies erreicht werden kann.
Erkennen Sie die Stärken (und bauen Sie auf ihnen auf!)
Bei unserer Arbeit konzentrieren wir uns oft auf Herausforderungen und deren Lösung, aber wir sollten dabei nicht vergessen, was bereits gut funktioniert. Meiner Meinung nach sollte die Softwareproduktisierung mit der Analyse und dem Verständnis dieser Dinge beginnen.
Wir bei Teleste beispielsweise konzipieren und entwickeln schon seit geraumer Zeit Software für vielseitige Fahrgastinformations-systeme und haben im Laufe der Jahre viele intelligente Lösungen entwickelt, ohne dass diese tatsächlich in die Produktion eingeflossen sind. Die Wiederverwendung der Software war schon immer ein wichtiger Aspekt, und das ist auch der typische Weg in der Softwareentwicklung. Der Grundstein für die Produktisierung wurde in unserem Unternehmen bereits gelegt, lange bevor der erste SW-Produktmanager ernannt wurde. Die Softwaremodule und die Architektur, über die wir bereits verfügen, bieten einen hervorragenden Ausgangspunkt für den Ausbau unserer Stärken, und die Aufgabe des Produktmanagers besteht darin, zu analysieren, zu leiten und zu priorisieren, was in jedem neuen Entwicklungsprojekt zu tun ist.
Vielleicht haben Sie auch bereits Module und Codeteile, die in fast jedem Projekt wiederverwendet werden. Listen Sie sie auf, gruppieren Sie sie und zeichnen Sie sie zusammen mit Ihrer typischen projektspezifischen Software in ein Diagramm. Zeichnen Sie die Module immer wieder neu, gruppieren Sie sie neu und ordnen Sie sie neu an, bis Sie ein klares Gesamtbild haben. Fügen Sie die fehlenden Teile in einer anderen Farbe hinzu und Sie haben den ersten Input für Ihre Software-Roadmap: Ein weiterer Schritt nach vorn ist die Implementierung dieser neuen Module!
Beheben Sie die Schwächen (aber nur die, die Ihren Erfolg einschränken!)
Wenn Sie mit der Produktisierung Ihrer Software begonnen haben, indem Sie Ihre Stärken erkannt haben, sollten Sie bereits über eine solide Basis verfügen, auf der Sie aufbauen können. Jetzt ist es an der Zeit, ein paar Gedanken über die Schwächen zu investieren, um herauszufinden, was Ihren Erfolg einschränkt. Schauen Sie sich zunächst die zeitaufwändigsten Aufgaben in Ihren Softwareprojekten an. In dieser Phase der Produktisierung geht es darum, einen Weg zu finden, diese loszuwerden.
Auf Ihrer Liste der Schwächen finden sich vielleicht Dinge, die leicht zu erreichen sind, aber höchstwahrscheinlich auch Dinge, deren Verbesserung viel Aufwand erfordert. Sie haben vielleicht zum Beispiel zu viel projektspezifischen Code, was den Designaufwand erhöht und zu Verzögerungen bei Ihren Lieferungen führt. Die Entwicklung eines (oder mehrerer) standardisierter und konfigurierbarer Softwaremodule wird Ihnen helfen, diese zu beseitigen und Ihre Vorlaufzeiten leicht zu verbessern. Andererseits stellen Sie vielleicht fest, dass Ihre projektspezifische Dokumentation Mängel aufweist und es Tausende von Dokumenten gibt, die unmöglich auf dem neuesten Stand gehalten werden können. Die Behebung solcher Herausforderungen könnte zeitaufwändiger sein, aber es zahlt sich aus, wenn Sie über Ihre Ziele nachdenken und darüber, wo Sie in ein paar Jahren sein möchten.
Einige der aufgelisteten Schwächen können Ihnen kleinere Vorteile bringen, wenn Sie sie beseitigen, während andere, wenn sie erst einmal gelöst sind, Ihr Unternehmen auf ein völlig neues Niveau bringen könnten. Achten Sie einfach darauf, Prioritäten zu setzen und darüber nachzudenken, was möglich ist und was die größten Vorteile bringen könnte. Was müssen Sie so schnell wie möglich beheben und welche Aufgaben können noch etwas warten? Und mit welchen Dingen können Sie weiter leben? Kein System ist perfekt und es gibt höchstwahrscheinlich einige Dinge, die bis später ungeklärt bleiben können und sollten. Die Ressourcen sind nicht endlos, also wählen Sie mit Bedacht!
Beschreiben Sie Ihre Lösung klar (und bringen Sie sie auf die Managementebene!)
Das brillanteste konfigurierbare Softwaresystem nützt Ihnen nichts, wenn Sie es nicht so beschreiben können, dass es das Management, der Vertrieb und die Kunden des Unternehmens verstehen. Sie müssen in der Lage sein, die Bedeutung jedes Moduls oder jeder Schicht Ihrer Software auf einfache Weise zu beschreiben, es sei denn, Sie möchten sie nur mit Softwareexperten oder jemandem besprechen, der alle Zeit der Welt hat.
Ihre Softwarelösung kann aus Dutzenden, Hunderten oder sogar Tausenden verschiedener Module bestehen und viele davon sind möglicherweise bereits standardisiert. Die Softwareentwickler (zumindest diejenigen, die schon lange im Unternehmen arbeiten) kennen die Module möglicherweise sogar sehr gut. Sie müssen jedoch in der Lage sein, Ihre Lösung auf einer allgemeineren Ebene zu präsentieren, um dem Management zu zeigen, wo Sie mit Ihrer Software stehen und in welche Richtung Sie gehen. Wenn Sie dies nicht können, fragen Sie sich, ob es Fehler in der Architektur gibt oder ob Sie einfach etwas übersehen haben.
Außerdem muss Ihr Verkaufspersonal wissen, was es verkaufen soll und welchen Nutzen die Kunden von der Software haben. Die Kunden wiederum müssen verstehen, was Ihre Lösung kann, wo ihre Grenzen liegen und wie sie mit projektspezifischen Schnittstellen und Modulen erweitert werden kann. Ob Sie es glauben oder nicht, eine ausführliche Beschreibung kann auch bei der Softwareentwicklung sehr nützlich sein, insbesondere für neue Mitarbeiter. Erst das Gesamtbild zu sehen und dann in die Details zu gehen, ist für viele von uns eine natürliche Art des Lernens.
Beziehen Sie alle in die Produktisierung ein (denn alleine schaffen Sie es nicht!)
Selbst die besten Produktmanager können den gesamten Produktisierungsprozess nicht allein bewältigen. Bei der Softwareproduktisierung geht es nicht nur darum, dass ein Manager Ja oder Nein zu neuen Funktionsanforderungen sagt, sondern um einen größeren Prozess, an dem mehrere Interessengruppen im Unternehmen beteiligt sind, darunter nicht nur die Softwareentwicklung, sondern auch das Management. Dokumentation, und Verkauf.
Denken Sie daran, dass Sie Ihre Tage im Büro nicht damit verbringen können, ständig zu überprüfen, was die Entwickler tun, oder jedem detaillierte Anweisungen zu geben. Sie müssen darauf vertrauen können, dass die Leute wissen, in welche Richtung Sie alle gehen und warum. Seien Sie offen und informativ, bereiten Sie Roadmaps vor, zeichnen Sie Architekturen auf hoher Ebene und, nicht zuletzt, bitten Sie Ihre Kollegen um Feedback und Input! Sie kennen vielleicht die Anforderungen der Branche, aber der Vertrieb kennt die Kunden und die Entwickler kennen ihre Software.
Vergessen Sie Ihre Kunden nicht (denn ohne sie existieren Sie nicht!)
Softwareproduktisierung klingt vielleicht so, als würde sie dem Unternehmen Einsparungen bringen, führt aber nur zu Lösungen, die nicht sehr flexibel sind. Entgegen dieser Annahme kann sie auch auf eine Weise erfolgen, die sowohl dem Unternehmen als auch den Kunden Vorteile bringt. Das bedeutet, dass wir bewährte, gut funktionierende Software und Prozesse verwenden und sorgfältig konzipierte, gründlich getestete und bewährte Lösungen mit besserer Softwarequalität und flexiblen Updates anbieten.
Es ist wichtig, sich daran zu erinnern, dass wir ohne unsere Kunden nicht existieren würden. Sie müssen sich auf uns verlassen können, und wenn wir bei der Softwarelieferung versagen, bedeutet das Ärger für sie. Mit einem standardisierteren Angebot können wir die Zeitpläne besser einhalten und schneller auf Kundenanfragen und -herausforderungen reagieren. Wenn wir außerdem klarstellen, was unsere Lösung bietet, und dies gut dokumentieren können, dann beginnen die Kunden, die Produktisierung wirklich zu lieben!
Möchten Sie Ihr Wissen erweitern? Sehen Sie sich im Video an, wie Tiia Järvenpää mehr über Software-Produktisierung spricht.
Tiia Järvenpää
Tiia Järvenpää
Ich bin Produktmanager bei Teleste, Geschäftsbereich Schienenfahrzeughersteller, mit Schwerpunkt auf unserem On-Board-Softwareprodukt S-ARRIVE. Ich bin begeistert davon, Lösungen zu finden, die grenzüberschreitende Vorteile bringen: sowohl für diejenigen, die sie implementieren, als auch für unsere Kunden und Endbenutzer.
Sehen Sie meine LinkedIn .