- Individualsoftware
-
Individualsoftware (auch Individuallösung) ist ein Begriff der Informationstechnik welcher eine für einen Kunden individuell angefertigte Anwendungssoftware bezeichnet. Sie zeichnet sich dadurch aus, dass sie gemäß den Anforderungen eines einzelnen Kunden maßgeschneidert erstellt wird, im Gegensatz zu Standardsoftware, die für eine große Menge (potenzieller) Kunden entwickelt wird.
Typische Kunden von Individualsoftware sind Einrichtungen die einzigartige Anforderungen an ihre Software haben, für die keine exakt passende marktgängige Softwareprodukte verfügbar sind.
Inhaltsverzeichnis
Gründe für die Entscheidung für eine Individuallösung
Wenn sich ein Unternehmen für die Erstellung einer Individualsoftware entscheidet, kann dies unterschiedliche, einander nicht ausschließende Gründe haben:
- Es gibt keine bekannte, geeignete Standardsoftware.
- Es gibt eine geeignete Standardsoftware, die Entwicklung einer Individualsoftware wird jedoch monetär günstiger bewertet.
- Man möchte eine vollkommene Kontrolle über die künftige Entwicklung der Software und Beherrschung des Quellcodes garantieren
- Die Software soll dem einsetzenden Unternehmen gegenüber anderen Mitbewerbern einen Wettbewerbsvorteil verschaffen.
- Man möchte "das Rad neu erfinden", weil die angestrebte Lösung noch besser werden soll, als diese von vorhandenen Produkten bereits angeboten werden.
Die Entwicklung von Individualsoftware hat häufig den Charakter eines Forschungsprojektes. Denn nicht nur die Zielvorgaben sind in der Regel (mangels Kenntnis der Softwaretechnologie, des technisch machbaren oder wegen nicht genügend tief durchdachter Thematik) unscharf. Die Lösung ist oft auch für den Entwickler ein zumindest teilweise unbekanntes Terrain. Häufig herrscht beim Auftraggeber der Gedanke vor "wenn ich mich schon in so ein Projekt stürze, dann soll es auch alle meine Wünsche erfüllen". Dies wird später aus Kostengründen häufig relativiert.
Markt und Anbieter
Die Erstellung und Pflege von Individualsoftware durch dritte wird Outsourcing genannt. Sie ist das Hauptgeschäft vieler Softwareunternehmen. Im Zuge des Outsourcings wird oft nicht nur die Erstellung und Pflege von Individuallösungen, sondern auch der Betrieb und andere IT-Dienstleistungen in Form von langfristigen Großaufträgen komplett an externe IT-Unternehmen ausgelagert.
Aus Kostengründen verlagern viele Unternehmen die Programmierung der Individuallösungen zu Niederlassungen oder Unterauftragnehmern in Billiglohnländer (Offshoring). Die daraus resultierende Know-How-Verlagerung hat wiederum zur Folge, dass indische und osteuropäische Unternehmen verstärkt selbst auf den westlichen Märkten auftreten, was weitere Kostensenkungen verspricht. Einheimische Softwareunternehmen geraten deshalb unter einen massiven Konkurrenzdruck und müssen zunehmend auf modernste, kostensenkende Technologien setzen.
Dennoch sind IT-Projekte für Individuallösungen immer noch ein Milliardengeschäft und einer der Gründe für die große Vielfalt an Softwaretechnologien.
Vorgehensweise und eingesetzte Technologien
Sehr unterschiedliche Auffassungen gibt es hinsichtlich der Frage, wie Individuallösungen zu erstellen sind. Oft wird selbstverständlich davon ausgegangen, dass Individualsoftware basierend auf geeigneten Vorgehensmodellen, auf dem aktuellen Stand der Technik (beispielsweise JEE oder .Net) und für die entsprechende Anforderung geeignet qualitätsgesichert umgesetzt wird.
Solange diese Annahmen aber nicht durch entsprechende Verträge und Pflichtenhefte gesichert sind, hat der Auftraggeber nur beschränkten Einfluss auf das entsprechende Ergebnis der Individualsoftwareentwicklung.
Lasten- und Pflichtenheft
In der Regel gibt es einen konkreten Anwendungsfall, und es werden, oft in einem sogenannten Lastenheft Anforderungen festgelegt, die in der Lösung realisiert werden müssen. Lastenhefte umfassen idealerweise nicht nur die fachlichen Anforderungen an die Individualsoftware, sondern auch die technischen und nicht-funktionalen wie Fehlerrate, Mengengerüst, Performance, Skalierbarkeit und Wartbarkeit. Lastenhefte werden üblicherweise vom Auftraggeber vor Vergabe und als Basis für den Auftrag erstellt.
Auf diesen Lastenheften aufbauend werden vor oder während der Umsetzung der Anforderungen sogenannte Pflichtenhefte erstellt. Dies passiert - obwohl sie noch großen Einfluss auf die Aufwände bei der Umsetzung haben - oft in gemeinsamer Arbeit zwischen Auftraggeber und Auftragnehmer. Dabei kommt es idealerweise zu einer Fusion des Gewünschten und des realistischerweise Machbaren. Nach der Erstellung des Pflichtenheftes werden zumeist die Abweichungen vom ursprünglich beauftragten Lastenheft geschätzt und fließen entsprechend in den Umsetzungsplan und die monetären Aufwände ein.
Ziel-Modifikation
Allerdings steht häufig zu Beginn eines Softwareprojektes noch gar nicht fest, was am Ende alles enthalten sein wird. Vieles ergibt sich erst in der Entwicklungsphase, da sich sowohl dem Entwickler als auch dem Auftraggeber erst durch die andauernde Arbeit an und mit dem Projekt neue interessante Standpunkte eröffnen. Dies dient in der Regel dem Gesamtergebnis, und sollte von vornherein eingeplant werden, beispielsweise durch eine etappenweise Neuformulierung von Teilen des Pflichtenheftes, durch entsprechende Neukalkulierung des Preises (falls nicht ohnehin nach Aufwand abgerechnet wird) und durch Anpassung des Zeitplans und der verwendeten Mittel (Systemumgebung und Werkzeuge).
Einführung
→ Hauptartikel: Softwareeinführung
Die Einführung von Individualsoftware kann ähnlich wie das Customizing und Einführen von Standardsoftware erfolgen. Entweder sukzessive, eine Fachlichkeit nach der anderen, oder alles auf einmal. Den ersten Ansatz nennt man iterative Einführung, den zweiten Big Bang Einsatz. Beide haben eine Reihe von Vor- und Nachteilen.
Kosten
Es sind verhältnismäßig hohe Kosten für Entwicklung, Pflege und Wartung einzukalkulieren, wenn man den Erwerb von Individualsoftware mit dem Erwerb einer Standardsoftware vergleicht.
Die Entwicklungskosten bei Individualsoftware können enorm hoch sein. Denn abgesehen von den unten aufgezählten Ersparnissen entsteht im Großen und Ganzen bei einer Individualsoftware ein vergleichbarer Entwicklungsaufwand wie bei einer Standardsoftware, mit dem Unterschied, dass diese Kosten hierbei nicht auf Hunderte, Tausende oder Millionen von Nutzern umgelegt werden, sondern häufig nur von einem einzelnen Auftraggeber aufzubringen sind. Denn diese Kosten werden nicht auf viele Anwender verteilt, sondern sind alle vom Entwickler bzw. Auftraggeber zu tragen.
Kostensenkende Faktoren
Es gibt einige Kostenfaktoren, die bei der Entwicklung von Individualsoftware nicht oder nur in geringerem Maße anfallen:
- Es gibt eine sehr geringe oder zumindest besser überschaubare Anzahl von Benutzern sowie Anzahl von Arbeitsplätzen, an denen die Software installiert ist, als bei Standardsoftware
-
- Daher sind die Kosten für Hilfs- und Unterstützungsleistungen ("Support") gegenüber der Vielzahl von Benutzern bei Standardsoftware bei der Individualsoftware geringer. Oft sind die Benutzer und die Person, die die Unterstützung bietet, bei Individualsoftware räumlich besser verbunden.
- Die Kosten für Dokumentation sind geringer, wenn man davon ausgehen kann, dass die Benutzer in den Entwicklungsprozess in der Regel eingebunden sind und das Programm so schon kennen oder sogar selbst auf die Gestaltung der Oberfläche Einfluss genommen haben.
- Es ist nicht ein so hoher Standardisierungsgrad zu erreichen. Das heißt, dass bei der Software nicht mit einer so hohen Vielzahl von Anwendungsfällen gerecht werden muss. Sie muss auch nicht einer so hohen Anzahl von Hardware-Umgebungen gerecht werden.
- Die Fehlerbehebung verläuft einfacher, da in der Regel einfach nur an einem Ort eine neue Version eingespielt werden muss. Bei der Standardsoftware sind die Kosten zur Verteilung von neuen Programmversionen, die verteilt werden müssen, da sie Fehler beheben, erheblich.
- Auf eine Installationssoftware kann oft verzichtet werden. Bei Standardsoftware ist ein Mechanismus, in der Regel ein Installationsprogramm, Bestandteil des Vertriebsapparates, das die fehlerfreie und automatische Installation auf den Zielsystemen durch in der Regel Laien ermöglicht. Dieser Mechanismus muss mit einer Vielzahl von unbekannten Zuständen auf den Zielsystemen zurechtkommen und es muss außerdem ein sauberer Deinstallations-Mechanismus zur Verfügung gestellt werden, um die Software wieder zu entfernen. Dies kann erhebliche Kosten verursachen und ist auch in Test, Fehlersuche und Support sehr umfangreich.
- Die Kosten für Werbung und Verteilung entfallen in der Regel.
- Falls eine Software auf mehreren Rechnern eingesetzt werden soll, entstehen bei Standardsoftware höhere Lizenzkosten, da entsprechend viele Lizenzen gekauft werden müssen. Eine Individualprogrammierung kann hier durchaus günstiger sein, da die Entwicklung nur einmal bezahlt werden muss.
- Durch die Abrechnung nach Aufwand können in Individualprojekten ebenfalls Kosten gespart werden, wenn Auftraggeber und Auftragnehmer partnerschaftlich, professionell und offen miteinander arbeiten (Siehe auch "Vorteile der Abrechnung nach Aufwand").
Kostenerhöhende Faktoren
Andererseits wird in der Praxis der Kostenaufwand häufig enorm unterschätzt. Dies mag darin begründet sein, dass die Anwender oder Auftraggeber aus den geringen Kosten für den Erwerb einer Standardsoftware irrtümlich auf die Kosten einer Individualsoftware schließen.
Weitere Faktoren für hohe Kosten bei Individualsoftware. (Die meisten dieser Punkte können bei der Standardsoftware auch auftreten, jedoch zeigt die Erfahrung, dass sie sich hier mit der Zeit selbst aus dem Projekt eliminieren.):
- Die (im Vergleich zu Standardsoftware) häufig kurze Entwicklungszeit und damit verbundener zeitlicher Erfolgsdruck führen zu allerlei Fehlentscheidungen oder voreiligen Entscheidungen oder Entwicklungsabläufen. Oft wird sich nicht die Zeit genommen, um die am Markt verfügbaren Entwicklungsumgebungen, Bausteine oder Teillösungen in Betracht zu ziehen.
- Der Auftraggeber möchte, da er beispielsweise auch Teilzahlungen geleistet hat, vorzeitig Teilergebnisse sehen. Häufig sind jedoch in der Softwareentwicklung über lange Zeiträume keine sichtbaren Erfolge vorweisbar, jedenfalls nicht gegenüber dem Auftraggeber, wenn dieser ein softwaretechnischer Laie ist. Daher werden oft vorzeitig gewisse wichtige Entwicklungsschritte vernachlässigt, um schnell zu vorzeigbaren Ergebnissen zu kommen. Dies rächt sich später durch hohen Zeitaufwand, der nötig ist, um dadurch entstandene Fehler wieder auszubügeln. Ein Großteil des Entwicklungsaufwandes besteht in Planungen, in vorbereitender Entwicklung, der Entwicklung von Modulen oder Teilprogrammen, der Vorbereitung von Umgebungen, dem Test und der Anpassung von Teilsystemen, der Dokumentation der Quelltexte und der Systementwicklung und dergleichen.
- Die Wahl von falschen oder unangemessenen Entwicklungswerkzeugen- oder Umgebungen.
- Der Auftraggeber greift durch nicht sachgerechte Weisungen in den Entwicklungsprozess ein, die zu Kostenerhöhungen führen. Oder er hat gewisse sachfremde Vorgaben (z.B. Aufsetzen auf nicht mehr zeitgemäße vorhandene Software oder Hardware, Zusammenarbeit mit von ihm vorgeschlagenen Mitarbeitern oder Firmen oder Systemen).
- Beauftragung oder Einbeziehung von nicht qualifizierten Firmen oder Personen durch die Entwickler.
- Der Auftraggeber entscheidet sich während des Entwicklungsprozesses um, was Umfang und Art der Aufgabenstellung betrifft
- Die Entwickler entscheiden sich während des Entwicklungsprozesses um, was die Art der eingesetzten Entwicklungssysteme und Werkzeuge betrifft.
- Fehlender Konkurrenzdruck. Auf dem Markt für Standardsoftware besteht dadurch ein gewisser Konkurrenzdruck, dass sich das Endprodukt mit ähnlichen am Markt befindlichen Produkten messen muss.
Siehe auch
Wikimedia Foundation.