Individualsoftware

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung.
Dieser Artikel oder nachfolgende Abschnitt ist nicht hinreichend mit Belegen (beispielsweise Einzelnachweisen) ausgestattet. Die fraglichen Angaben werden daher möglicherweise demnächst entfernt. Bitte hilf der Wikipedia, indem du die Angaben recherchierst und gute Belege einfügst. Näheres ist eventuell auf der Diskussionsseite oder in der Versionsgeschichte angegeben. Bitte entferne zuletzt diese Warnmarkierung.
QS-Informatik

Dieser Artikel wurde wegen inhaltlicher Mängel auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen. Hilf mit, die inhaltlichen Mängel dieses Artikels zu beseitigen, und beteilige dich an der Diskussion! (+)
Begründung: Keine Belege --Sebastian.Dietrich 19:55, 21. Dez. 2013 (CET)

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 maßgeschneidert gemäß der Anforderungen eines einzelnen Kunden erstellt wird, im Gegensatz zu Standardsoftware, die für eine große Menge (potenzieller) Kunden entwickelt wird.

Typische Kunden von Individualsoftware sind Einrichtungen, die spezifische Anforderungen an ihre Software haben, für die keine exakt passenden marktgängigen Softwareprodukte verfügbar sind.

Gründe für die Entscheidung für eine Individuallösung[Bearbeiten]

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 sich nicht an einen Softwareanbieter binden (Lock-in-Effekt) und eine vollkommene Kontrolle über die künftige Entwicklung der Software sicherstellen
  • Die Software soll dem einsetzenden Unternehmen gegenüber anderen Mitbewerbern einen Wettbewerbsvorteil verschaffen.
  • Man möchte, obwohl es Produkte für den angestrebten Zweck gibt, eine wesentlich bessere Lösung entwickeln, als die bereits vorhandenen Produkte bieten. Hierzu wird eine im Wesentlichen von Grund auf neue Entwicklung begonnen.

Markt und Anbieter[Bearbeiten]

Im Zuge der Auslagerung der Erstellung und Pflege von Individuallösungen, werden oft auch der Betrieb und andere IT-Dienstleistungen in Form von langfristigen Großaufträgen komplett an externe IT-Unternehmen ausgelagert.

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[Bearbeiten]

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[Bearbeiten]

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[Bearbeiten]

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[Bearbeiten]

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[Bearbeiten]

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[Bearbeiten]

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.[1]

Kostenerhöhende Faktoren[Bearbeiten]

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 nicht genug 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[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. Siehe auch Vorteile der Abrechnung nach Aufwand.