Keine Angst vor dem Unbekannten

In diesem Artikel teile ich mit Ihnen meine Erfahrungen, die ich in Softwareprojekten, insbesondere im Vergleich von Standardsoftware und Eigenentwicklung, gesammelt habe. In der Praxis wird Standardsoftware (zu) schnell bevorzugt. Deshalb werde ich insbesondere auf die Vorteile von Eigenentwicklungen eingehen, ohne dabei zu technisch zu werden.

Am Anfang steht das Problem

Das Bedürfnis für Software entsteht, wenn es für ein Problem noch keine zufriedenstellende Lösung gibt. Doch wie findet man die passende Applikation? Der vermeintlich einfachste Weg führt – verständlicherweise – über eine bereits existierende Anwendung, die das Problem mehr oder weniger lösen kann. Tatsächlich werden bereits viele verbreitete Probleme von Unternehmen durch Standardprodukte gut gelöst. Hier reicht es, das beste Produkt zu evaluieren.

Was aber, wenn das vorliegende Problem unternehmensspezifischer Art ist? Wenn es so speziell ist, das zumindest Teile einer möglichen Softwarelösung selber entwickelt werden müssen?


Bevor Sie eine Lösung suchen: Durchleuchten Sie die Problemstellung!

Standardprodukte erweitern

Jeder Verkäufer einer Enterprise-Software wird Ihnen sagen, dass «sein» Produkt mit eigenen Bedürfnissen beliebig erweitert werden kann. Das mag sogar stimmen. Ob diese Erweiterungen auch eine nachhaltige Lösung sind, ist eine andere Frage. Nicht selten sind sie schwieriger zu bauen und zu warten, als eigenständig entwickelte Applikationen.

Ich empfehle Ihnen deshalb, in einem ersten Schritt die Anforderungen an die Software zu definieren. Und zwar unabhängig von der Softwarelösung, die eingesetzt werden könnte. Erst im zweiten Schritt folgt der Abgleich mit den in Frage kommenden Standardprodukten. Passt kein Produkt? Dann sollten Sie eine Eigenentwicklung ins Auge fassen.

Da niemand vorhersagen kann, welche Anforderungen in ein paar Jahren die wichtigsten sein werden, rate ich Ihnen, im Zweifelsfall die Eigenentwicklung einem erweiterten Standardprodukt vorzuziehen. Dies vor allem unter Berücksichtigung der Releasefähigkeit:

Während die Zukunft einer Standardsoftware nicht in Ihrer Hand liegt, können Sie den Verlauf von Eigenentwicklungen so lange wie nötig kontrollieren. Gerade bei strategischen Systemen ist das ein wichtiger Punkt; hier tangiert die Software das Geschäft und dessen Entwicklung unmittelbar und ist deshalb für den wirtschaftlichen Erfolg mitverantwortlich.


Wie sinnvoll eine Standardlösung erweitert werden kann, hängt stark von der Qualität des jeweiligen Produktes ab.

Vorteile von Eigenentwicklungen

Vor der Entwicklung einer eigenen Software ist es oft schwierig, deren Vorteile gegenüber angepassten Standardprodukten zu sehen. Es liegen noch keine sichtbaren Ergebnisse vor. Wohingegen das Produkt bereits sichtbare Funktionalität bietet – auch wenn diese vielleicht nicht zu 100% den eigentlichen Bedürfnissen entspricht.

Nicht jeder kann sich aufgrund von abstrakten Definitionen die Zielsoftware vorstellen. Wer sich für eine Eigenentwicklung entscheidet, startet oft im Unbekannten. Kompetente Softwareentwickler weisen Ihnen jedoch den richtigen Weg und können Ihnen zu Eigenentwicklungen verhelfen, die über längere Zeit Vorteile bieten:

  • Schnittstellen lassen sich beliebig definieren; die Software passt besser in bestehende Systemlandschaften.
  • Problemstellungen und Lösungen lassen sich besser aufteilen. Falls eine Teillösung nicht mehr gut genug ist, kann sie komplett durch eine neue Lösung ersetzt werden.
  • Der Support von Eigenentwicklungen ist meist näher am Kunden, als der von Standardprodukten.
  • Eigenentwicklungen basieren meist auf Open Source, weshalb der Kunde nicht an einen Anbieter gebunden ist.
  • Über längere Zeit wird es schwierig, stark erweiterte Standardprodukte zu warten und zu erweitern. Eigenentwicklungen, welche sich nur auf das gestellte Teilproblem fokussieren, können leichter erweitert werden.
  • Weil es weniger Abhängigkeiten gibt, können Eigenentwicklungen schneller aktualisiert werden (z.B. um bekannte Sicherheitslücken zu schliessen).
  • Eigenentwicklungen lassen sich besser kontrollieren. Standardlösungen werden sehr schnell komplex und Änderungen daran können nicht von einem Kunden alleine kontrolliert werden.


Auch Eigenentwicklungen entstehen aus bereits existierenden Bausteinen. Diese lösen zum Beispiel gängige Infrastrukturprobleme wie Datenbankanbindungen, ohne dabei einen Lösungsweg für geschäftliche Problemstellungen vorwegzunehmen.

Fazit

Eigenentwicklungen sind dort sinnvoll, wo es fachspezifische Probleme gibt, die nicht zu 100% durch Standardsoftware gelöst werden können. Standardlösungen, die ein Problem nur teilweise lösen und / oder Anpassungen benötigen, sind oft ungeeignet und der Schritt zu einer Eigenentwicklung zahlt sich langfristig aus.

Stehen Sie vor einer ähnlichen Entscheidung? Ich helfe Ihnen gerne dabei, die richtige zu treffen.

Kommentar verfassen