Wie behaltet ihr die Entwicklungskosten eures Software-Projekts unter Kontrolle?
Serie: Kosten von Individualsoftware
Ihr erwägt, in eine Individualsoftware zu investieren oder habt bereits ein laufendes Software-Projekt? Im dritten Teil unserer Reihe zu den Kosten eines solchen Projekts erklären wir euch, wie ihr die Kontrolle über eure Ausgaben behaltet.
Teil 1: Was kostet Individualsoftware?
Teil 2: Welche Abrechnungsmodelle gibt es?
Jetzt soll es losgehen – und zwar möglichst budget-effizient. Qualität und Funktionalität brauchen Zeit und Geduld. Trotzdem könnt ihr einiges tun, um eure Ausgaben unter Kontrolle zu halten. Heute möchten wir euch zeigen, wie und wo das am besten geht.
Inhaltsverzeichnis:
Vor dem Start:
Das richtige Projekt-Setup wählen
Hier gibt es zwei Optionen:
Ihr wisst bereits sehr konkret, was ihr benötigt.
Bei sehr kleinen Projekten oder stark technisch ausgerichteten Themen wie Schnittstellen-Integrationen lässt sich teilweise vorab definieren, was genau gebraucht wird. In diesem Fall ist es für den erfolgreichen Projektverlauf sinnvoll, von Anfang an klare Umsetzungskriterien und Ziele festzulegen. Eine detaillierte Planung und klare Anforderungen sind der Schlüssel zum Erfolg eures Projekts. So könnt ihr sicherstellen, dass das Endprodukt euren Erwartungen, Bedürfnissen und Wünschen entspricht — und unerwartete Kosten oder Verzögerungen vermieden werden. Ganz ohne Iterationen solltet ihr aber auch hier nicht planen.Ihr habt eine Neuentwicklung oder ein exploratives Thema vor euch.
Gerade bei der Neuentwicklung von Produkten ist oft noch nicht von Beginn an klar, wie das Endergebnis genau aussehen soll. Ihr habt sicher für viele Teilbereiche konkrete Ideen im Kopf, aber andere Aspekte eurer Plattform sind noch gestaltbar. Das heißt, euer Vorgehen sollte lösungsoffen sein. Wenn verschiedene Konzepte probiert werden müssen, solltet ihr zum Beispiel mehrere Iterationen und Testing-Phasen in euren Projektablauf einplanen. Das Nachsteuern wird in diesem Fall zu einem aktiven Prozessschritt und sollte in eurer Kalkulation bedacht werden.
Prozesse hinterfragen und optimieren
Und noch etwas gilt es vor Projektstart zu bedenken: Wie laufen eigentlich eure Prozesse ab — und können sie verbessert werden? Es ist wichtig zu beachten, dass die Digitalisierung auch Auswirkungen auf die umliegenden Abläufe hat. Deshalb solltet ihr zuerst überprüfen, welche Schritte verbessert werden können und sie dann in die Technologie integrieren. Denn wer schlechte Prozesse digitalisiert, bekommt am Ende nur schlechte digitale Prozesse. Überlegt euch deshalb gemeinsam mit Experten im Vorfeld, welche Verbesserungen sinnvoll sind und setzt Änderungen um, bevor mit dem Programmieren begonnen wird. Je früher im Projektablauf eure Anpassungen stattfinden, desto kostensparender können sie umgesetzt werden.
Im Projekt:
Ideen und Konzepte priorisieren
Wichtig ist, die Features, die ihr euch wünscht, zu priorisieren und zu hinterfragen. Bei Neuentwicklungen ist es meist sinnvoll, zusammen erst einmal ein MVP (Minimum Viable Product) zu erstellen, also einen kleinen, aber bereits nutzenstiftenden Teilausschnitt dessen, was ihr insgesamt vorhabt. Dieser wird dann mit echten NutzerInnen getestet und im Anschluss gezielt auf Basis des User-Feedbacks optimiert und erweitert. So könnt ihr sicherstellen, dass alles Nötige funktioniert und ihr kein Geld in Funktionalitäten investiert, die ihr oder eure KundInnen nicht brauchen. Sicher habt ihr tolle Ideen für Funktionen. Vielleicht werden aber andere Dinge dringender benötigt? Am besten können das eure KundInnen beantworten. Viele Features lassen sich auch später als Erweiterung umsetzen, wenn die Basis erstmal steht und euer Geschäftsmodell funktioniert. Oft helfen die Beobachtungen der AnwenderInnen, die Einbindung von Analytics-Tools oder Vorgehen wie A/B-Testing beim Verständnis, welche Funktionen von euren Usern am intensivsten verwendet werden oder am besten ankommen. Bietet auch einfache Feedback-Möglichkeiten an, mit denen eure NutzerInnen Wünsche äußern oder Probleme melden können.
Hochglanz-User Interfaces gehören zu den Kostentreibern in Online-Plattformen. Hier solltet ihr kritisch hinterfragen, auf welche Stellen sich der Aufwand konzentrieren sollte. Werden EndkundInnen das Produkt sehen, potenziell sogar im Einkauf verwenden? Dann ergibt es natürlich Sinn, ein höheres Budget für die visuelle Gestaltung und optimierte NutzerInnenerlebnisse einzukalkulieren. Handelt es sich jedoch um selten genutzte Funktionen, kann man eher Kompromisse eingehen. Auch intern verwendete Tools, wie zum Beispiel Verwaltungsoberflächen, müssen meist nicht unbedingt Designpreise gewinnen. An dieser Stelle ist wichtiger, dass die Abläufe funktionieren und eure NutzerInnen ihre regelmäßigen Aufgaben effizient erledigen können.
Attraktive und stark optimierte Benutzeroberflächen entstehen vor allem durch Iterationen, intensives Testen und eine schrittweise Verbesserung eures Ausgangsprodukts. Das macht ihre Entwicklung mitunter langwierig. Ihr könnt euch hier den Ablauf erleichtern, indem ihr mit dem Entwicklungs-Team zu Beginn des Projekts ein Design-System mit zu verwendenden Komponenten festlegt. Auf die könnt ihr später in der Entwicklung von Screens zurückgreifen. Eine sinnvolle Alternative bieten häufig Design-Frameworks und bereits existierende Komponenten-Bibliotheken. Mit ihnen wird die Oberfläche nicht ganz so individuell, aber günstiger.
AnsprechpartnerInnen definieren und Verantwortlichkeiten klären
Wichtig im Prozess ist es sowohl für euch als auch für eure Software-Hersteller, klare AnsprechpartnerInnen zu haben. Heißt, eine Person, die für die Kommunikation zuständig ist und möglichst auch fachliche Entscheidungen treffen kann.
Feste AnsprechpartnerInnen auf beiden Seiten vermeiden eine langwierige Kommunikation. Außerdem ist die Gefahr geringer, dass Informationen auf dem Weg verloren gehen.
In jedem Fall müsst ihr für ein erfolgreiches Projekt eine gewisse zeitliche Verfügbarkeit für Absprachen und Tests einkalkulieren. Wenn Themen ohne die nötige Kommunikation übergeben werden, kann es sonst passieren, dass Missverständnisse und im schlimmsten Fall Fehler entstehen. Plant daher Zeiten ein, zu denen ihr selbst oder Teile eures Teams für die Projektentwicklung verfügbar sind.
Hat die jeweilige Ansprechperson dann auch die Befugnis, Entscheidungen zu treffen, steht einem kosteneffizienten und erfolgreichen Ablauf nichts mehr im Wege. Andernfalls kommt es möglicherweise zu Verzögerungen oder euer Software-Partner muss Annahmen treffen, die gegebenenfalls nicht ideal sind. Das kann zu Ergebnissen führen, die ihr euch nicht gewünscht habt und spätere Nacharbeiten erfordern — und sollte deswegen vermieden werden.
Anmerkung: Vielleicht wünscht ihr euch auch, dass euer Software-Partner bei bestimmten Themen Entscheidungen für euch trifft oder aufgrund seiner Projekt-Erfahrung zunächst eigene Vorschläge für Lösungen umsetzt. Das entlastet euch bei der konzeptionellen Vorarbeit. Plant aber ein, dass ihr wahrscheinlich noch Änderungswünsche haben werdet und Iterationen in diesem Modus notwendig sind. Sprecht am besten offen an, bei welchen Themen ihr konkrete Vorstellungen und Anforderungen habt, und bei welchen Themen euer Software-Partner freie Hand hat, dann kommt es dabei nicht zu Missverständnissen.
Frühzeitig Testen
Je zeitiger ihr die Ergebnisse testet, desto schneller und einfacher kann das Entwickler-Team Knackser entfernen und Optimierungen vornehmen. Das hat zum einen damit zu tun, dass die Entwicklung noch frisch im Gedächtnis und damit leichter zugänglich ist, und zum anderen, dass sich ungewollte Aspekte nicht in spätere Iterationen verschleppen.
Frühes und umfassendes Testen mit echten NutzerInnen hilft dabei, Fehlfunktionen oder noch nicht ideale Funktionalitäten aufzudecken. Werden diese angemessen angepasst, steigt die AnwenderInnenzufriedenheit und gegebenenfalls damit verbundene Umsätze oder Transaktionen. Und die Support-Kosten sinken ebenso.
Komplexität aktiv managen
Ein besonderer Kostentreiber sind Schnittstellen, die oft Rücksprache mit anderen Teams oder Unternehmen erfordern, denn daraus entstehen höhere Kosten für Kommunikation und Testing.
Die wenigsten Projekte beginnen auf einer grünen Wiese. Im Normalfall sind schon Systeme vorhanden, die angebunden werden müssen. Je mehr Schnittstellen das betrifft und je weniger standardisiert diese sind, desto aufwendiger wird es. Hier helfen kompetente AnsprechpartnerInnen, eine gute Dokumentation und geeignete Testumgebungen.
Ähnlich verhält es sich mit sehr großen Datenmengen. Sie können dazu führen, dass bestimmte Algorithmen nicht verwendet werden können, weil sie das System zu langsam machen. Möglicherweise benötigt ihr auch eine komplexere Architektur. Das passiert beispielsweise, wenn Daten für unterschiedliche Zwecke mehrfach gespeichert werden müssen. Insgesamt steigen damit Entwicklungsaufwand und Komplexität, was wiederum mehr Entwicklungstage und damit höhere Kosten bedeutet. Zusätzlich ist das Testen mit großen Datenmengen aufwendiger, weil alle Teilschritte mehr Zeit in Anspruch nehmen.
Abhängig davon, was ihr vorhabt, lassen sich große Datenmengen möglicherweise nicht vermeiden oder gehören sogar zum Prinzip eures Systems. Sprecht auch hier offen mit eurem Software-Partner, welche Nutzerzahlen ihr erreichen wollt und auf welche Datenmengen eure Plattform ausgelegt sein soll. So kann die Architektur frühzeitig darauf ausgerichtet werden und spätere Neuentwicklungen werden vermieden.
Aufgaben selbst übernehmen
Wollt ihr den Aufwand (und damit auch die Kosten) bei eurem Software-Partner reduzieren, habt ihr die Option, Teile des Prozesses selbst zu übernehmen. Ihr könnt zum Beispiel Entwürfe für Texte, Grafiken oder Interfaces liefern, die dann in die Entwicklung einbezogen werden. Das hat gleich mehrere Vorteile für euch: Das Software-Team kann auf euren Vorüberlegungen aufsetzen, sich auf die Umsetzung fokussieren und ihr erhaltet Inhalte, die spezifisch an euren Vorstellungen entlang entwickelt wurden. Umgesetzte Features solltet ihr unbedingt selbst testen, allein schon um sicherzustellen, dass eure Bedürfnisse wirklich erfüllt sind. Je mehr ihr hier selbst abdecken könnt, desto stärker entlastet ihr die EntwicklerInnen.
Wenn ihr bereits Erfahrung mit agilen Methoden habt, oder euch euer IT-Partner methodisch ausbilden kann, könnt ihr in eurer Rolle als Product Owner auch viele vorbereitende Aufgaben selbst übernehmen. Den größten Hebel bieten dabei User Stories – also die Übersetzung eurer Anforderungen in ein knackiges Format, das es EntwicklerInnen ermöglicht, eure Wünsche und Ziele für Features nachzuvollziehen und in Code zu übersetzen. Das spart nicht nur Kosten, sondern schafft auch eine super Diskussionsbasis für die optimale Ausgestaltung eurer Ideen.
Außerdem:
Mit Web-App starten
Soll zusätzlich zu einer Web-Anwendung (also einer Anwendung, die im Browser eines Computers, Tablets oder Mobiltelefons läuft) auch eine native App, etwa für iOS oder Android, entwickelt werden, kann das den Umfang deutlich erhöhen, da die Plattformen technisch nicht miteinander kompatibel sind. Weil Web-Apps ohnehin fast immer gebraucht werden, ergibt es oft mehr Sinn, die Web-Apps dann zunächst responsiv zu gestalten (also so, dass sich das Layout auf kleinere Bildschirme anpasst). In einem zweiten Schritt kann diese Web-App angepasst und mit entsprechenden Frameworks als hybride App ausgeliefert werden. Das erspart die Umsetzung einer nativen App mit einer anderen Technologie und dem doppelten Aufwand — oder sogar dem dreifachen. Und falls dennoch eine native App gewünscht ist, kann diese jederzeit ergänzt werden.
Fazit
Viele verschiedene Faktoren beeinflussen die Kosten von Software-Entwicklung. Einige davon können im Projektverlauf beeinflusst werden:
- Vor Projektstart solltet ihr euer Projekt-Setup bewusst wählen. Verschiedene Entwicklungsarten benötigen unterschiedliche Vorbereitungen. Außerdem solltet ihr die eingehenden Prozesse gemeinsam mit eurem Software-Partner hinterfragen und optimieren.
- Vor und während des Projekts solltet ihr eure Ideen priorisieren, klar kommunizieren und im Zweifelsfall reduzieren. Testet so früh wie möglich.
- Ein professionelles Scoping (Was soll im Projekt passieren und was nicht?), klare Ziele, offene Kommunikation, frühzeitige Verbesserungen und die Verwendung von Web-Technologien helfen dabei, die Kosten unter Kontrolle zu halten und das Budget optimal einzusetzen.
Wie machen wir das bei der wunschlösung?
Wir haben uns gefragt, wie wir die Entwicklung individueller Software effizienter gestalten können. Um Ressourcen zu sparen und gleichzeitig die Qualität unserer Produkte zu sichern, haben wir deswegen spezielle Code-Generatoren entwickelt. Diese Software vereinfacht das Schreiben von Code und liefert uns eine stabile Basis, auf der wir dann gemeinsam aufbauen können. Dadurch haben wir mehr Zeit für das, was wirklich wichtig ist – die Umsetzung eurer Ideen und Wünsche.
Für einige häufig benötigte Funktionen haben wir zudem einsatzfertige Module entwickelt, die wir für euer Projekt verwenden können. Das prüfen und besprechen wir dann vor Projektbeginn mit euch.
Klingt interessant und ihr wollt mehr darüber erfahren, wie sich die Kosten in eurem konkreten Anwendungsfall verhalten würden? Dann kommt einfach auf uns zu! Das geht schnell und unkompliziert über unser Kontaktformular.
Mehr aus dieser Serie: Kosten von Individualsoftware
Mehr vom Blog
Teaminterview Wojciech (Frontend-Dev)
Heute im Teaminterview:
Wojciech - Pixel-Perfektionist, Bug-Jäger, Schützer der Skalierbarkeit
Tag 2 MACHN 2024: Innovation und Networking in Leipzig
Erlebt die Highlights des zweiten Tages des MACHN 2024. Von spannenden Workshops und inspirierenden Vorträgen bis hin zu praxisnahen Einblicken in aktuelle Trends und Technologien.
Tag 1 MACHN 2024: Innovation und Networking in Leipzig
Erlebt die Highlights des ersten Tages des MACHN 2024. Von spannenden Workshops und inspirierenden Vorträgen bis hin zu praxisnahen Einblicken in aktuelle Trends und Technologien.
Bye bye #localgutscheining - Ein Rückblick auf unser Gutschein-Portal-Projekt im Rahmen des #JenaVsVirus-Hackathons
Erfahrt hier mehr über #localgutscheining: wie mit unserem Projekt Jena im Corona-Lockdown zusammenrückte und lokale Unternehmen unterstützt hat.
Der Unterschied zwischen Online-Marktplätzen, Shops, Portalen, Plattformen und Stores
Erfahrt hier, was eigentlich genau der Unterschied zwischen Online-Marktplätzen, Shops, Portalen, Plattformen und Stores ist.
Wir MACHN uns auf den Weg zum Start-Up Festival 2023
Unser Business Development Team war letzte Woche wieder unterwegs – beim MACHN Start-Up Festival für Tech, Business und Art in Leipzig. Hier gibt es Einblicke!
Was ist ein Online-Marktplatz, und wann ist er sinnvoll?
Erfahrt, was Online-Marktplätze sind und wann ein eigener sinnvoll ist. Wir helfen euch beim Aufbau und mit der passenden Software!
Teaminterview Sebastian (Projektmanagement)
Heute im Teaminterview:
Sebastian - Projekt-Jongleur, Überblickhaber und Agile Master
Wie behaltet ihr die Entwicklungskosten eures Software-Projekts unter Kontrolle?
Erfahrt, wie ihr die Entwicklungskosten eures Software-Projekts unter Kontrolle behaltet. Erhaltet Tipps zu Projekt-Setup, Priorisierung, Scoping und mehr.
Welche Abrechnungsmodelle gibt es für Software-Projekte?
Ihr möchtet die gängigen Abrechnungsmodelle für Software kennenlernen? Wir zeigen euch, welche Modelle existieren und geben euch Tipps zur Auswahl.
Was kostet eigentlich Individualsoftware?
Ihr fragt euch, was Individualsoftware kostet? Wir zeigen euch, welche Faktoren den Preis beeinflussen und geben euch hilfreiche Tipps zur Kostenreduktion.
Euer LinkedIn-Auftritt — noch ein bisschen eleganter
Ihr möchtet eure Linked-In Profil-URL anpassen? Wir erklären euch, wie.