Eigenentwicklung vs. Standardsoftware

Warning message

Warning: This post is slightly older.

It may be that the content is out of date, links are outdated or that no one responds to new comments.

Vor der Entwicklung einer umfangreichen Website oder Community steht am Anfang immer die Frage: Soll das System komplett selbst entwickelt werden (Individuallösung) oder auf eine fertige Lösung – die meist nur noch angepasst werden muss – zurückgegriffen werden. Diese Entscheidung klingt einfach, kann aber im weiteren Betrieb weitreichende Auswirkungen und Konsequenzen auf die Erweiterbarkeit, Kosten und den wirtschaftlichen Erfolg eines Projektes haben. Welche Entscheidung nun die Richtige ist, hängt von verschiedenen Faktoren ab:

  • Welche Funktionen muss das System / die Website besitzen?
  • Was sind die relevanten Anforderungen und was ist »nice to have«?
  • Wie sind die Randbedingungen (einen Server, welche Programmiersprache, etc.)?
  • Welches Budget und Zeit für die Realisierung stehen zur Verfügung?

Diese Punkte sollte noch vor einer Entscheidung vollständige geklärt und mit allen Projektbeteiligten abgestimmt sein.

Vorteile einer Eigenentwicklung

  • Know-how: Durch die Eigenentwicklung erhöhen sich die Fähigkeiten der beteiligten Personen. Sie lernen von Grund auf die Problematiken kennen und können so schnell und kompetent bei Problemen und Störungen eingreifen. Sie stecken praktisch in der Software drin. Dieses Wissen betrifft nicht nur die Anwendung an sich, sondern auch das Wissen über die verwendete Technologien und Programmiersprachen erhöht sich. Dies kann wiederum in Drittprojekten vermarktet werden.
  • Schlanke Software: Durch die Eigenentwicklung bleibt die Software schlank. Es wird nur die Funktionalität entwickelt und integriert, die auch wirklich benötigt wird. Dagegen möchte Standardsoftware ein möglichst breites Spektrum an Funktionen und Einsatzzwecke abdecken, was meist zu einer erheblichen Überdimensionierung und zu mittelmäßigen Kompromissen führt.
  • Keine Abhängigkeit: Bei kommerziellen Softwareanbietern besteht die Gefahr, dass diese ihre Strategie ändern oder gar Insolvent werden. Grundsätzlich besteht immer die Abhängigkeit, in welche Richtung die software weiterentwickelt wird und auch die möglichen Sicherheitsrisiken kennt meist nur der Anbieter (dies gilt meist auch bei Open Source Software). Bei einer Eigenentwicklung hat man selbst die Kontrolle über den Quellcode und die Weiterentwicklung.
  • Bessere Wartbarkeit: Änderungen und neue Funktionen können meist in kürzerer Zeit als bei einer Standardsoftware integriert werden. Die Software kann flexibler mit dem Projekt bzw. Unternehmen wachsen.
  • Adaptierbarkeit der Standardsoftware: In den seltensten Fällen bringt die Software alle benötigten Funktionen und Konfigurationen mit. Sie muss meist an die eigenen Bedürfnisse erst angepasst werden. Auch dies kostet Zeit und der Entwickler muss sich erst in die Dokumentation und den Aufbau des Codes einarbeiten. Gerade bei kommerziellen Systemen ist dies vielfach erst gar nicht möglich, da der Quellcode geschützt ist. Hier wäre man wieder vom Softwareanbieter abhängig.
  • Differenzierung von Wettbewerbern: Durch die Entwicklung eigener Funktionen kann sie ein Unternehmen mit einer Eigenentwicklung viel bessern von Konkurrenten abgrenzen.

Nachteile von Eigenentwicklungen

  • Entwicklungskosten: Je nach Komplexität der Software können die Entwicklungskosten sehr hoch sein. Zudem lassen sich diese zu Beginn eines Projektes nur sehr schwer und ungenau einschätzen, da viele Probleme erst während des Entwicklungsprozesses auftreten und nicht eingeplant werden können.
  • Zeitbedarf: Nicht nur die Kosten, sondern auch der Zeitbedarf ist am Anfang nur sehr schwer abschätzbar. Bei der Planung sollten daher grundsätzlich sehr großzügige Pufferzeiten eingeplant werden. Auch neue Methoden des Projektmanagement wie z.B. SCRUM können helfen. Ansonsten bedeutet ein steigender Entwicklungsaufwand auch sehr schnell eine Zeitverschiebung.
  • Qualitätsprobleme: Die Entwicklung von fehlerfreier Software ist nicht möglich. Und je komplexer die Software ist, desto länger kann es auch dauern, bis das System in der Pilotphase (in dieser die Software unter realen Bedingungen im Einsatz ist) die notwendige Stabilität erreicht hat. Dieser Problematik kann durch entsprechende Entwicklungs-Methoden wie z.B. Unit Tests begegnet werden.
  • Abhängigkeit: Was auf der einen Seite ein Vorteil ist, ist auf der anderen ein Nachteil. Bei einer Eigenentwicklung man man sich von den Mitarbeitern bzw. Firmen abhängig, die das System entwickelt haben. Zusätzlich steigt bei den Mitarbeitern die Kompetenz und damit ihr Marktwert. Dies kann sich in steigenden Gehaltsforderungen oder einer Kündigung ausdrücken. Selbst bei einer umfangreichen Dokumentation der Software, muss sich ein neuer Mitarbeiter oder eine neue Firma erst in die Denkweisen der alten Entwickler einarbeiten.
  • Technologiewechsel: Der technologische Wandelt in der IT-Industrie ist sehr schnell. Dadurch kann eine Software bzw. eine eingesetzte Technologie recht schnell veralten. Und je älter sie ist, desto schwieriger wird es Entwickler zu finden, die sich mit der Wartung beschäftigen können.

Vorteile von Standardlösungen

  • Zeitgewinn: Je nach dem wie vollständig die festgelegten Anforderungen von der Softwarelösung abgedeckt werden, kann das System sofort oder nach kurzer Zeit eingesetzt werden.
  • Niedrigere Kosten: Sofern die Standardsoftware viele der benötigten Funktionen erfüllt und auch den qualitativen Anforderungen gerecht wird, sind die Kosten für die Einführung und Betrieb meist geringer, als bei einer Eigenentwicklung.
  • Qualität: Weil Standardprodukte bei verschiedenen Anwendern im Einsatz sind, wurden viele Fehler von diesen bereits entdeckt und entfernt. Daher ist die Qualität gerade am Anfang bei Standardsoftware höher, als bei Eigenentwicklungen.
  • Regelmäßige Verbesserungen: Jeder Einzelne profitiert bei Standardlösungen von der Kreativität und Ideen aller. Zudem verteilen sich die Entwicklungskosten neuer Funktionen auf viele Kunden.
German | 17. March 2010
Stored in

Add new comment