Die Kosten für eine Software können stark variieren. Im ersten Schritt des Planungsprozesses gilt es, grundlegende Dinge zu der Software abzufragen. Dazu zählen unter anderem wofür die Software benötigt wird, ob und mit welchen Systemen sie interagieren muss und für wie viele Nutzer sie ausgelegt sein soll.
Zudem ist wichtig, für welche Art von User die Software gedacht ist, in welchen Sprachen sie verfügbar sein soll und ob gegebenenfalls spezielle Sicherheitsvorkehrungen berücksichtigt werden müssen. Mit all diesen Fragen wird sichergestellt, dass eine Individualsoftware auch der richtige Ansatz ist. Denn es kann durchaus sein, dass schon eine Standard- oder Branchensoftware verfügbar ist, die als passende Lösung funktioniert.
Verschiedene Arten von Software
Als Standardsoftware bezeichnet man eine Software, welche die Lösung für ein weit verbreitetes Problem oder eine gängige Aufgabe darstellt und von vielen Menschen genutzt wird.
Als Beispiel für eine Standardsoftware lässt sich MS Word nennen. Eine große Anzahl an Menschen muss Texte jeglicher Form schreiben, hat dabei jedoch verschiedene Schwerpunkte. Die Software bietet unterschiedlichste Formatierungsmöglichkeiten und kann somit vielen Anwendungen und Bereichen gerecht werden.
Die sehr aufwändige Entwicklung ist mit hohen Kosten verbunden. Aufgrund der weiten Verbreitung der Software können diese jedoch gut aufgeteilt werden, sodass pro Käufer nur ein überschaubarer Betrag berechnet wird.
Aktuell ist eine Entwicklung in Richtung cloudbasierter Software in Form von Abo-Modellen zu beobachten. Dabei fällt ein monatlicher Betrag an, bei dem der Nutzer den Vorteil hat, dass die Software stets aktualisiert und geupdated wird.
Während eine Standardsoftware viele Anforderungen abdecken kann, ist eine Branchensoftware etwas spezifischer und deckt speziell die Probleme einer bestimmten Zielgruppe ab. Eine Branchensoftware lässt sich am Beispiel einer Buchungssoftware eines Restaurants veranschaulichen.
Dabei geht es darum, die Speisen und Getränke des jeweiligen Restaurants verwalten und buchen zu können. Die Buchung erfolgt anhand der Bestellungen pro Tisch. Auch eine direkte Weiterleitung der Bestellungen an die Küche sind sinnvoll und sollte von der Branchensoftware abgedeckt werden. Nach der einmaligen Entwicklung einer solchen Software kann diese theoretisch in jedem Restaurant verwendet werden. Auch wenn damit auf individuelle Funktionen verzichten werden muss ist diese Lösung deutlich kostengünstiger als eine Individualsoftware.
Die Entwicklungskosten für eine Standard- und Branchensoftware ist jeweils mit hohen Kosten verbunden. Aufgrund der Mehrfachnutzung beider Softwaretypen hält sich der einmalige oder auch monatliche Preis für die Nutzung jedoch in Grenzen.
Ein weiterer Softwaretyp findet sich in der Individualsoftware. Diese ist dann sinnvoll, wenn es noch keine Software auf dem Markt gibt, die den speziellen Anforderungen und Problemen gerecht werden kann. Sie wird individuell entwickelt und kann ganz genau an den Use Case angepasst werden.
Um ein optimales Verhältnis zwischen Kosten und Nutzen zu erreichen sollte eine Individualsoftware zwar alle Anforderungen abdecken, zeitgleich jedoch so wenig Funktionen und Extras wie möglich enthalten. Je schlichter und schlanker die Software ist, desto geringer sind am Ende auch die Kosten.
Je nach Funktionsumfang und Komplexität ergeben sich große Spannen was die Entwicklungskosten angeht. Angefangen bei wenigen tausend Euro für kleine und überschaubare Anwendungen bis hin zu mehreren hunderttausend Euro für komplexe und große Softwaresysteme.
Kostenrahmen einer Software
Nachdem der Kunde die Anforderungen und Funktionen der zu entwickelnden Software definiert und an den Entwickler kommuniziert hat, kann dieser auf Basis seiner Erfahrung eine erste Einschätzung der Kosten abgeben.
Eine agile Softwareentwicklung hat sich als sehr sinnvolle Vorgehensweise erwiesen. Dabei wird nicht von Beginn an alles bis ins kleinste Detail geplant, sondern im Laufe des Konzeptions- und Entwicklungsprozesses festgelegt, angepasst und verändert. Bei einem sehr strengen und strukturierten Plan besteht die Gefahr, dass Änderungen zu einem späteren Zeitpunkt nur mit sehr viel Aufwand und umgesetzt werden können.
Wahl des passenden Softwareentwicklers
Es sollte stets darauf geachtet werden, dass der Softwareentwickler zum Softwareprojekt passt und dass sowohl die Arbeitsweise als auch die Technologie den Anforderungen gerecht werden können. Beispielsweise erfordern Web-Anwendungen andere Entwicklungssprachen als Windows-Programme. Auch die Vorgehensweise bei der Entwicklung ist entscheidend. Viele Abläufe wurden noch vor einigen Jahren an das Projekt angepasst und sehr individuell gestaltet.
Heutzutage laufen wiederkehrende Tätigkeiten automatisiert ab. So kann deutlich mehr Wert auf Maßnahmen zur Qualitätssicherung gelegt werden.
Für kleinere Projekte, die zudem gut planbar sind, sind Phasenmodelle, wie beispielsweise das Wasserfallmodell durchaus sinnvoll.
Hier werden die Anforderungen an das Projekt zu Beginn klar und vollständig definiert. Auf Basis dieser Anforderungen legt der Entwickler fest, wie genau diese technisch umgesetzt werden sollen. Im Anschluss daran findet der eigentliche Entwicklungsprozess statt, bei dem sich an dem zuvor aufgestellten Konzept orientiert wird.
Bei größeren Projekten, die sich eventuell auch über einen längeren Zeitraum ziehen, sind Phasenmodelle weniger geeignet. Oft können die genauen Anforderungen zu Beginn noch nicht klar genug definiert werden oder es ist bereits abzusehen, dass sich im Laufe des Projekts viele Änderungen ergeben werden.
Als passende Vorgehensweisen lassen sich hier Scrum oder Kanban nennen.
Für den Kunden ist es sinnvoll, bei seiner Anfrage mit dem Entwickler abzuklären, wie dieser diesbezüglich aufgestellt ist.
Ebenfalls wichtig ist es, dass der Entwickler stets eng mit dem Kunden zusammenarbeitet und ein regelmäßiger Austausch stattfindet. Geplante Meetings, die zur Abstimmung oder für regelmäßige Updates genutzt werden, sind eine wichtige Voraussetzung. Nur so können Fehler, Missverständnisse oder Schwierigkeiten schnell entdeckt, gelöst oder vermieden werden.
Natürlich stellt auch die Erfahrung des Softwareentwicklers einen entscheidenden Faktor dar. Meist findet man auf der Webseite einige Referenzen und vorangegangene Projekte, anhand derer man sich ein realistisches Bild machen kann.