Wie lange eine Softwarelösung eingesetzt wird, kann niemand mit Gewissheit sagen. So manche Übergangslösung überlebt deutlich länger als gedacht und so kommen einige Faktoren zum tragen, die im kurzfristigen Einsatz keine Rolle gespielt hätten. So entsteht speziell bei Individualsoftware aber auch bei Standardlösungen in jedem Unternehmen irgendwann der Wunsch Veränderungen oder Erweiterungen an der Software vorzunehmen. Dies ist allerdings nicht immer möglich. Die damit getätigen Investitionen sind verloren.

Bei Standardsoftware steht der Quellcode meist sowieso nicht zur Verfügung. Wünsche nach Erweiterungen können sowieso nur von urspünglichen Entwickler erfüllt werden. Dieser steht in der Regel kundenspezifischen Änderungen an seiner Standardsoftware immer ablehnend gegenüber, wenn diese Änderung nicht auch für eine Vielzahl anderer Benutzer Vorteile bringt. Änderungen sind so also nicht immer möglich.

Dies ist der Grund warum viele Unternehmen heutzutage auf individuelle Lösungen setzen. Hier ist der Auftraggeber nicht ein Kunde von vielen sondern hat in den meisten Fällen einen direkten Draht zum Entwickler. Dies ermöglicht eine praktische unbeschränkte Erweiterung der eingesetzten Software um die im normalen Betrieb jeden Unternehmens ständig anfallenden organisatorischen oder auch prozessbedingten Änderungen. Hier kann sich die Software an das Unternehmen anpassen und nicht das Unternehmen an die Software. Zeitraubende Workarounds wie das manuelle Erfassen von wichtigen Auftragsdaten in umfunktionierten Bemerkungsfeldern oder das ergänzen von Informationen in der Software durch regen Begleitemailverkehr (wehe wenn hier die geänderte Stückliste in der dritten Email von acht; versteckt im zweiten Anhang nicht gesehen wurde!) kosten Zeit, frustrieren und führen langfristig zu großen Qualitätsproblemen.

Dem stehe aber unter Umständen entsprechende Kosten gegenüber. Hier kommt es auf Investionssicherheit und auf eine lange tragfähige Softwarebasis an.

Individualsoftware ist nicht gleich Individualsoftware. Hat der Auftraggeber keinen Zugriff auf den Quellcode oder ist er gar nicht der Eigentümer des Codes, ist er hier immer vom Entwickler der Software abhängig. Deshalb empfiehlt es sich bei der Auftragsvergabe auf folgende Punkte zu achten:

  • Die Eigentumsrechte am Quellcode wurde vertraglich dem Auftraggeber übertragen.
  • Der Quellcode ist nicht verschlüsselt sondern liegt in allen Teilen in bearbeitbarer Form vor.
  • Die eingesetzte Programmiersprache und Datenbank  ist weit verbreitet. So kann der Auftraggeber unter einer Vielzahl von Entwicklern und Dienstleistern für die zukünftige Wartung wählen und ist nicht auf Gedeih und Verderb von der Preis- und Firmenpolitik des Entwicklers abhängig. Zusätzliche Sicherheit bringen hier Open Source Programmiersprachen da man hier nicht indirekt auch noch vom Hersteller der Entwicklungswerkzeuge oder notwendiger Serversoftware abhängig ist.

Nicht jeder Entwickler ist allerdings bereit seinen Quellcode und damit sein geistiges Eigentum offen zu legen. Ist der Auftraggeber bereit auf den Quellcode zu verzichten, empfiehlt sich allerdings zumindest ein Schutz gegen einen möglichen Ausfall des Entwicklers durch eine Insolvenz oder Betriebsaufgabe. Hier kann der Quellcode zum Beispiel bei einem Notar oder Rechtsanwalt hinterlegt werden und kann dann dem Auftraggeber beim Eintreten fest vereinbarter Bedingungen übergeben werden.

So kann Investitionssicherheit und ein Vertrauensverhältnis zwischen Entwickler und Auftraggeber erreicht werden.