DE, Oldenburg
+49 (151) 2 87654 88
mail@dema-software-solutions.de

Make-or-Buy in der langfristigen Softwareentwicklung

Die „Make-or-Buy“-Entscheidung (zu Deutsch: „Machen-oder-Kaufen“) beantwortet in der Softwareentwicklung die Frage, ob eine Software selbst programmiert, oder als fertiges Modul eingekauft bzw. eingebunden werden soll.

Software besteht aus fertigen Bausteinen

Moderne Software wird immer komplexer und erledigt immer komplexere Aufgaben. Kein Mensch programmiert heute eine umfangreiche Applikation, ohne auf bereits vorprogrammierte Softwarebausteine aufzubauen. Ebenso könnte man sich das Ziel setzten, ein neues Auto zu entwickeln, ohne Verwendung fertiger Einzelteile von Zulieferern.

Die Musik spielt in der obersten Software-Schicht

In den meisten Anwendungsfällen, muss lediglich die oberste Schicht „Modul / Anwendung“ entwickelt werden. Bei der mittleren Schicht „Framework / Werkzeug“ wird es schon kniffliger. Wie stark diese Schicht in Eigenleistung entwickelt werden muss hängt vom Innovationsgrad der Software und dem Geschäftsmodell ab. Die unterste Basisschicht „Plattform / Betriebssystem“, auf der die Software betrieben wird, muss in den seltensten Fällen selbst entwickelt werden.

Beispiele aus den Schichten der Software

Plattform / Betriebssystem Framework / Werkzeug Modul / Anwendung
Android, IOS, Windows, Web-Browser, Linux, Smart-TV OS, … WordPress, Flutter, Microsoft Azure,  Amazon Web Services, Google Dialogflow, … Software Produkte für Endanwender

Software selbst programmieren („Make“)

Vorteile Die selbstständige Programmierung macht besonders dann Sinn, wenn sie sehr spezielle Anforderungen haben. Bei der eigenen Software haben sie die komplette Gestaltungsfreiheit und können das konkrete Problem in einem leichtgewichtigen Softwaremodul effizient lösen. Zudem müssen sie keine Lizenz- oder Leasinggebühren bezahlen bis auf Betriebskosten. Diese relativieren sich allerdings mit steigender Nutzerzahl.
Nachteile Bei der Programmierung in Eigenleistung müssen sie einen hohen initialen Entwicklungsaufwand einplanen. Es werden eine Menge Programmierer-Ressourcen und Zeit benötigt. Wenn die Software Entwicklung abgeschlossen ist geht es allerdings stetig weiter. Die Systemumgebung (Betriebssystem/Plattform) als auch die verwendeten Frameworks / Tools entwickelen sich stetig weiter. Wenn Sie ihre Software nicht regelmäßig aktualisieren, laufen Sie Gefahr, den Anschluss zu verlieren. Ihre Software wird früher oder später inkompatibel für die Laufzeitumgebung. Stellen sie sich vor, sie würden eine Iphone App aus dem Jahr 2015 auf einem neuen Iphone der neuesten Generation installieren. Sie erhalten höchstwahrscheinlich Fehlermeldungen, da die App längst überholte Funktionen des Betriebssystems erfordert.

Software aus fertigen Bausteinen („Buy“)

Vorteile Fertige Softwaremodule einbinden hat den Vorteil, dass diese sofort verfügbar sind. Auch die stetige Weiterentwicklung wird vom Hersteller durchgeführt. Sie müssen das Modul lediglich installieren und an ihre Bedürfnisse konfigurieren. Da die Software schon fertig ist, müssen sie ebenso keine hohen Entwicklungskosten zahlen.
Nachteile Leider können fertige Softwaremodule nicht beliebig konfiguriert und angepasst werden. Sie müssen damit rechnen, dass der Funktionsumfang nicht vollständig ihren Ideal entsprechen. Auch die laufenden Gebühren für die Softwarelizenzen sind regelmäßig fällig. Wenn Sie die Software in einem großen Umfang mit sehr vielen Nutzern nutzen wollen, kalkulieren sie gut die Lizenzkosten. Meistens steigen die Kosten mit der Anzahl an Nutzern.

Die Entscheidung hängt von ihrer Situation ab

Sie haben ein Konzept und ungefähres Geschäftsmodell?

Wenn sie sich noch in einem frühen Stadium befinden und der Funktionsumfang noch nicht von ihren Zielkunden als Mehrwert bestätigt wurde. Versuchen Sie zunächst Prototypen über fertige Softwarebausteine zu entwickeln. Sie sparen dabei Zeit und Geld und können möglichst früh wertvolles Nutzerfeedback generieren.

Sie haben entscheidendes Nutzerfeedback gesammelt und ein konkretes Konzept?

Wenn sie wirklich sicher sind mit ihrem Geschäftsmodell, könnte sie die Entwicklung einer eigenen Software sehr lohnen. Die langfristigen Betriebskosten und Gebühren sind verhältnismäßig gering und relativieren sich mit der Menge an Nutzern. Je klarer der Funktionsumfang von Anfang an feststeht, desto effizienter kann die Softwareentwicklung durchgeführt werden.

Zusammenfassung

Vorteile Nachteile
Make
  • Gestaltungsfreiheit
  • Effizienz / Leichtgewichtigkeit
  • Unabhängigkeit
  • Keine Lizenzkosten / Leasing-Gebühren
  • Regelmäßige Wartung / Aktualisierung notwendig
  • Entwicklungsaufwand (Zeit/Kosten)
Buy
  • Planbare Kosten
  • Sofort verfügbar
  • Wartung / Support ausgelagert
  • Eingeschränkter Funktionsumfang
  • Lizenzkosten / Leasing-Gebühren
  • Abhängig vom Lieferanten/Hersteller