Was wir über Softwareentwicklung wissen sollten - 5 Leitfragen

Wer sich für Softwareentwicklung interessiert, wird schnell merken: Die Grundidee mag im ersten Moment simpel klingen. Doch schon vor der ersten Zeile von Programmcode müssen unterschiedlichste Überlegungen angestellt werden.

Zwei Hände auf einem Schreibtisch abgelegt mit einer gezeichneten Glühbirne

Unsere fünf Leitgedanken

Nicht erst seit der Corona Pandemie treiben die meisten Unternehmen und Abteilungen die Digitalisierung in schnellen Schritten voran. Alle möchten auf das, was morgen kommt, vorbereitet sein. Oftmals fällt schon in den ersten Brainstorming Sessions der Abteilungsleiter der Wunsch nach einer Individualsoftware für die Umsetzung der Idee. Als Software Agentur ist unser Tagesgeschäft die individuelle Softwareentwicklung. Dennoch sollten paradoxerweise viele der Ideen, die wir erhalten, nicht individuell umgesetzt werden.

Naturgemäß denken wir als Software Agentur jeden Tag über Abwägungen und Best Practices zur Umsetzung der Software Idee nach. Die wertvollsten Gedanken dazu stellen wir Ihnen im folgenden Text vor.

  1. Wie erkenne ich Potenziale für Softwareentwicklung?
  2. Was unterscheidet Individualsoftware von Standardsoftware?
  3. Wie gehe ich vor, wenn ich individuell entwickeln (lassen) möchte?
  4. Worin unterscheiden sich Anbieter von Softwareentwicklung?
  5. Was kostet individuelle Softwareentwicklung?


1. Wie erkenne ich Potenziale für Softwareentwicklung?


Jede Idee sollte zum zukünftigen Geschäftserfolg beitragen. Dabei hat jedes Unternehmen vielfache Potenziale, den Erfolg durch Software zu steigern. Oftmals können bestehende Prozesse vereinfacht, automatisiert oder beschleunigt werden, um Kosten zu senken. Auf der anderen Seite können Technologietrends wie Big Data das eigene Geschäftsmodell erweitern, um Umsätze zu erhöhen.

Egal ob Kostensenkung oder Umsatzerhöhung: Die Abwägung aller möglichen Potenziale in der Abteilung oder in dem Unternehmen sollte nicht auf die kalte Schulter genommen werden. Denn woran gearbeitet wird, ist am Ende viel entscheidender als das wie (Punkte 2-4). Dabei sollte man sich nicht direkt nur auf Moonshot Themen einschießen. Die haben zwar die Chance eine sehr transformierende Wirkung zu entfachen, der Weg dorthin ist allerdings lang, steinig und risikobehaftet.

Stattdessen empfehlen wir, mit den Low Hanging Fruits anzufangen. Das sind Potenziale, die klar und schnell zu erreichen sind und keine größeren Hexenwerke beinhalten. Das kann beispielsweise die Automatisierung von manueller Datenerfassung oder das Ersetzen eines viel verwendeten Excel Sheets durch eine Webanwendung sein. Solche Probleme wurden schon vielfach gelöst und bringen schnell klare Mehrwerte.

Als i-Tüpfelchen schaffen die Low Hanging Fruits eine gute Grundlage für spätere Moonshots: Beispielsweise bieten Daten, die durch eine Webanwendung eingegeben und strukturiert abgelegt werden, eine gute Datengrundlage für zukünftige Big Data Projekte.


2. Was unterscheidet Individualsoftware von Standardsoftware?

Sind ein paar dieser Potenziale aufgedeckt, gilt es abzuwägen: Handelt es sich hier um ein Standardthema oder ist das Thema sehr unternehmensspezifisch? Einige Standardthemen lassen sich bereits durch bestehende SaaS (Software as a Service) Lösungen abdecken. Wenn auch mit leichten Anpassungen. Dazu gehören beispielsweise Themen wie Projektmanagement oder ein CRM System.

Andere Themen sind wiederum sehr spezifisch. Dann stellt sich die Frage, ob sich die Entwicklung von Individualsoftware lohnt. Um das beurteilen zu können, orientieren wir uns vor einer Entscheidung an diesen drei Aspekten:

  1. Relevanz der Lösung: Je höher der Mehrwert der Softwarelösung für das Unternehmen ist, desto eher sollte man auf individuelle Softwareentwicklung zurückgreifen. Nebensächliche Themen können oftmals durch Standardsoftware und geringen Aufwand gelöst werden.
  2. Langfristigkeit der Software: Je langfristiger die Software laufen soll, desto eher lohnt sich Individualsoftware. Denn zu Beginn mögen die Kosten zwar hoch sein, die laufenden Lizenzkosten dafür aber um ein Vielfaches niedriger.
  3. Flexibilität des Features Sets: Dieser Aspekt bedarf wahrscheinlich einer genaueren Erläuterung. Gegeben sei der folgende Fall: Ein Unternehmen ist in hohem Maße dazu bereit, die eigene Arbeitsweise an eine neue Software anzupassen. Dabei gibt es nur wenige “must have” Features, die bereits bekannt sind. In diesem Fall ist die Wahrscheinlichkeit hoch, dass dafür bereits eine Lösung “off the shelf” existiert. Werden später allerdings Funktionen benötigt, die die “off the shelf” Lösungen nicht abdecken kann, landet man in einer Sackgasse. Je unsicherer man sich bei dem benötigten Feature Set ist, desto eher ist eine individuell entwickelte Software gerechtfertigt.

Diese verschiedenen Aspekte gilt es gründlich abzuwägen. Ist die Entscheidung schließlich auf individuell entwickelte Software gefallen, stellt sich bereits die nächste Frage:


3. Wie gehe ich vor, wenn ich individuell entwickeln (lassen) möchte?

Die Zeiten von hunderte Seiten langen Lastenheften sind weitestgehend passé. Möglicherweise steht man vor einem Fall, der dem Business einen großen Mehrwert bieten kann. Dann ist es empfehlenswert möglichst früh digital affine Leute (intern oder extern) einzubinden und gemeinsam eine Lösung zu skizzieren. Ein Gedanke, der vielen hierbei aufkommt: Agile Softwareentwicklung. Was kann man sich darunter vorstellen? Folgt man der Definition von Wikipedia, bezeichnet sie "Ansätze im Softwareentwicklungsprozess, die die Transparenz und Veränderungsgeschwindigkeit erhöhen und zu einem schnelleren Einsatz des entwickelten Systems führen sollen, um so Risiken und Fehlentwicklungen im Entwicklungsprozess zu minimieren.""

Agilität ist sicherlich eines dieser Buzzwords, die alles und nichts bedeuten. Deshalb folgend ein Beispiel, wie man vorgehen kann:

  • Nach dem initialen Kennenlernen von Beteiligten gibt der Dienstleister eine grobe Aufwandsabschätzung.
  • Gemeinsam mit dem Dienstleister geht man in einen Sprint 0. In diesem Konzeptionssprint wird das Verständnis für Problem und Lösung detailliert ausgearbeitet. Es wird mit allen Stakeholdern möglichst viel gesprochen und am Ende ein genauer Umsetzungsplan ausgearbeitet. Dieser kann z.B. bereits Wireframes und eine Zielarchitektur enthalten. Nach dem Sprint 0 wird die Aufwandsabschätzung präzisiert.
  • Werden sich Kunde und Dienstleister zur Umsetzung einig, beginnt die Zusammenarbeit in zweiwöchigen Sprints. Zu Beginn jedes Sprints werden die Ergebnisse der letzten zwei Wochen besprochen. Anschließend wird gemeinsam festgelegt, welche Arbeitspakete aus dem Umsetzungsplan in den nächsten zwei Wochen erledigt werden. Entstehen neue Ideen oder Anforderungen, kann dies in diesem Meeting diskutiert und priorisiert werden. Der Umgang mit Veränderungen ist bereits der größte Vorteil der agilen Softwareentwicklung. Veränderungen sind erwünscht. Es ist wichtig ein System zu haben, wie diese im Interesse des besten Ergebnisses umgesetzt werden können. Bei den klassischen Lastenheften führt dies oftmals zu einem Conflict of Interest: Der Dienstleister muss sich auf Themen aus dem Lastenheft fokussieren. Der Auftraggeber möchte natürlich alle neuen Ideen direkt mit einbringen. Das gemeinsame Priorisieren schafft hier Abhilfe und führt dazu, dass die Interessen beider Parteien untergebracht sind.


4. Worin unterscheiden sich Anbieter von Softwareentwicklung?

Grundsätzlich lässt sich zwischen zwei Arten von Anbietern unterscheiden:

  1. Anbieter, die sich über den Preis differenzieren
  2. Anbieter, die sich über Qualität und Spezialisierung differenzieren

Erstere positionieren sich auf verschiedenen Vergleichsseiten (Upwork etc.) und kommen aus dem In- und Ausland. Diese Anbieter sind eine gute Wahl, wenn der Preis der entscheidende Faktor ist. Natürlich gibt es dabei aber auch keinen Free Lunch: Codequalität, Kommunikation, das Vertrauen und die Sicherheit, dass es laufen wird, objektive Beratung und Fluktuation. All diese Faktoren fließen in die Preisfindung mit ein. Günstig ist aber nicht zwangsläufig schlecht. Es bietet sich insbesondere für Software mit kurzer Nutzungsdauer (z.B. Minimal Viable Products) an.

Zweitere Anbieter setzen primär auf einen hohen Qualitätsstandard und besonderes Know How. Das gilt beispielsweise für die Handhabung von großen Datenmengen oder besonderen Sicherheitsansprüchen. Man sollte primär auf die Qualität und sekundär auf den Preis achten, wenn man eine Software benötigt, die

  • langfristig betrieben und entwickelt werden soll.
  • auch bei großen Datenmengen oder einer großen Nutzerbasis stabil läuft.

Ansonsten zahlt man schnell doppelt und dreifach. Denn die eingegangenen Trade Offs von günstigen Anbietern fallen oftmals erst im späteren Betrieb wirklich auf. Hat die Software z.B. keine durchdachte Architektur, steht die Software nicht auf soliden Beinen. Dann sind Probleme im Nachhinein nur mit viel Aufwand zu beseitigen.


5. Was kostet individuelle Softwareentwicklung?

Die genauen Kosten für Softwareentwicklung sind im Vorfeld meist schwer zu beziffern. Man legt schließlich auch nicht einfach die Entwicklung einer Android App in den Warenkorb und bekommt einen festen Preis angezeigt. Das ist der vielschichtigen Komplexität geschuldet, die der Softwareentwicklungsprozess mit sich bringt.

Aus diesem Grund legen sich die meisten Softwareentwickler auch nicht im Vorfeld auf Festpreise fest. Für die Interessenten ist das natürlich schade, da es die Berechnung des ROI bzw. des Business Case erschwert. Wird doch ein Festpreis verlangt, springen die meisten qualitativen Anbieter ab. Denn Risiko und Konfliktpotential (siehe Frage 3) sind hier zu hoch. Manche arbeiten mit großzügigen Risikopuffern auf die initale Abschätzung. 100% Aufschlag ist hier marktüblich.

Prinzipiell ist eine exakte Abschätzung also schwierig. Jeder Dienstleister hat einen eigenen Prozess oder ein internes System, um Aufwände abzuschätzen.


Fazit

Die meisten Fehler bei der Nutzung von Potenzialen durch neue Software passieren bereits, bevor die erste Zeile Programmcode geschrieben wurde. Trotzdem sollte man frühzeitig digital affine Leute dazuholen und dann entscheiden, welche Potenziale priorisiert und auf welche Art umgesetzt werden. Hier gibt es unzählige Möglichkeiten, was sowohl Fluch als auch Segen ist.