Tipps zum Entwickeln von Software bzw. einer umfassenden Anpassung an Ihre spezifischen Anforderungen (Customizing).

Individual-Software vs. Standard-Software

Individual-SoftwareStandard-Software
FunktionalitätDie Software kann genau auf die benötigten Funktionen zugeschnitten werden. Oft müssen Kompromisse bei der verfügbaren Funktionalität eingegangen werden. Wenn nur kleine Teile einer umfangreichen Software genutzt werden, leidet meist die Benutzerfreundlichkeit darunter.
ImplementierungDie Software muss erst entwickelt werden. Auch der Auftraggeber muss viel Zeit in diesen Prozess investieren.Die Software ist bereits fertig. Meist ist eine Anpassung (Customizing) an die spezifischen Gegebenheiten bei Auftraggeber notwendig.
Vorsicht bei Software, die nur teilweise fertig ist. Hier ist ebenfalls mit einigen Aufwand auf Auftraggeberseite zu rechnen.
KostenSchwer abschätzbar, da Software-Entwicklung sehr komplex ist – die Kosten können „explorieren“.Definierte Lizenzkosten, Kosten für Customizing können stark variieren und ebenfalls deutlich höher als geplant ausfallen.
Betrieb, WeiterentwicklungDie Weiterentwicklung muss in der Regel auch zur Gänze vom Auftraggeber bezahlt werden. Der Auftraggeber sollte auch an den Fall denken, dass der Vertrag mit dem ursprünglichen Software-Entwickler nicht vorgesetzt werden kann.Updates sind typischerweise im Rahmen von Update-Verträgen kostenlos. Die Releases und Funktionen werden vom Hersteller bestimmt.
AbhängigkeitenEs gibt eine starke Abhängigkeit vom Programmierer. Die Verfügbarkeit ist bei einem Ein-Mann-Programmier-Unternehmen insbesondere kritisch, den hier gibt es keine Redundanz. Sie können die Software-Entwicklung typischerweise nur mit großen Aufwand an andere Unternehmen übergeben, womit das praktisch kaum passiert. Voraussetzung für die Weitergabe der Entwicklung ist auch, dass Sie als Unternehmen die Rechte am Source-Code haben.Abhängigkeit vom Hersteller der Software. Der Einfluss auf die Weiterentwicklung der Software ist in der Praxis eher gering, da der Software-Entwickler selbst entscheidet, was umgesetzt wird. Der Hersteller könnte auch entschieden die Software nicht mehr weiterzuentwickeln.
Ebenso gibt es das Risiko, das der Hersteller bankrott geht.

Tipps:

  • Evaluieren Sie vor der Entscheidung für eine Software-Entwicklung, ob Sie die Mindestanforderungen nicht doch mit einer Standard-Software abgedeckt werden können. Mit Customizing können Sie moderne Standard-Software an Ihre spezifischen Anforderungen anpassen.
  • Sie können Standard-Software mit einer „kleinen“ Individual-Software-Lösung kombinieren: Typisch dafür sind Business Intelligence (BI) – Lösungen, welche die Kombination, Auswahl und Anreicherung von Daten aus verschiedenen Systemen ermöglichen.
  • Bei der Kombination von Software-Lösungen benötigen bei der Schnittstellen zum Datenaustausch.
  • Im IT-Implementierungsprojekt sollten Sie alle Teile der IT-Lösung gemeinsam planen, um eine abgestimmte Lösung zu erhalten. Die Umsetzung kann ggf. auch in Phasen erfolgen.

Wann braucht es Software Customizing und was passiert hier?

Mit Customizing wird eine Standard-Software-Lösung an die spezifischen Anforderungen angepasst:

  • Konfiguration (keine Anpassung des Source Codes)
  • Programmierung (Anpassung des Source Codes)

Der Hersteller bestimmt, welche Form von Customizing eingesetzt wird (er weiß was notwendig ist um eine bestimmte Lösung zu erreichen).

Umfangreiche Programmierarbeiten beim Customizing machen die Lösung zur Individual-Software mit allen Vor- und Nachteilen.

Im Rahmen der Installation von Updates oder Upgrades, ist das Customizing zu überprüfen und ggf. auch zu überarbeiten.

Neue Software entwickeln

Anforderungen genau definieren

Eine genaue Spezifikation der Anforderungen ist für Programmierer essenziell:

  • Wird eine neue IT-Lösung entwickelt, dann muss das Design erst entwickelt werden (siehe Eine neue IT-Lösung designen)
  • Wird eine bestehende Lösung abgelöst, so müssen die Anforderungen vorher analysiert werden.
  • Professionelles Requirements Engineering ist unbedingt notwendig.

Agile Methoden nutzen

Hybrides Projekt: Agile Entwicklung der Lösung

Die Praxis zeigt, dass agile Methoden wie Scrum in der Software-Entwicklung überlegen sind:

  • Wählen Sie einen Partner für die Softwareentwicklung, welcher eine agile Methode einsetzt.
  • Senden Sie als Auftraggeber zumindest einen Vertreter in das Entwicklungs-Team, damit dieser aktiv an der Entwicklung teilnimmt und die Anwender-Perspektive stets im Team präsent ist.
  • Überprüfen Sie als Auftraggeber die Ergebnisse der Entwicklungs-Sprints, indem Sie an Sprint-Ergebnis-Demonstrationen teilnehmen.

Zeit und Aufwand

Der Aufwand vom ersten Entwurf bis zu einer stabilen Software-Version wird gerne unterschätzt. Ein Projekt zur Software-Entwicklung dauert in der Praxis meist ein Jahr oder länger.

Damit Sie eine Vorstellung von den Kosten haben:

  • Die Entwicklung von Software in Österreich mit einem Team mit 5 Personen (Analytiker, zwei Programmierer, ein Tester, Scrum-Master/Teamleader) über ein Jahr verursacht einen Aufwand von ca. 10.000 Arbeitsstunden und kostet ca. eine Mio. EUR.
  • Mit einem Softwareentwicklungsunternehmen aus einem Niedriglohn-Land (z.B. Indien, Rumänien, Bulgarien) sind die Kosten pro Arbeitsstunde deutlich niedriger, allerdings ist die Kommunikation schwieriger und es kommt oft zu Missverständnissen. Damit dauert die Entwicklung der Software länger, womit sich die Kostenersparnis relativiert.
  • Bedenken Sie auch die Kosten für ihre Mitarbeiter: die Mitarbeiter, welche in den Entwicklungsprozess eingebunden sind.