Projektentwicklung (Informatik)
aus Wikipedia, der freien Enzyklopädie
Unter Projektentwicklung in der Informatik versteht man den gesamten Prozess von der Identifizierung des Bedarfs bis hin zur Inbetriebnahme einer implementierten IT-Lösung, zum Teil auch darüber hinaus. Hauptgegenstand ist die Bereitstellung und Einführung einer Anwendungssoftware, teilweise zzgl. der benötigten Hardware und Netzwerke.
Die zu implementierende Software kann entweder eine Individuallösung, eine Branchenlösung oder lediglich eine Kombination und Konfiguration von Standardsoftware sein. Projekte werden oftmals von oder mit externen Dienstleistungsunternehmen, häufig aber auch als Eigenentwicklung geleistet. Dementsprechend vielfältig sind auch die Vorgehensweisen bei der Projektentwicklung: von einer sehr strukturierten Herangehensweise, siehe Wasserfallmodell, über verschiedene Mischformen bis hin zu sehr flexiblen, offenen Methoden wie der Agilen Softwareentwicklung. Entsprechend wird auch zwischen Top-down- und Bottom-up-Ansätzen unterschieden.
Im Folgenden werden einige wichtige Aspekte und typische Stufen/Phasen der Projektentwicklung beschrieben, die in der Praxis mehr oder weniger ausgeprägt zum Tragen kommen.
Inhaltsverzeichnis |
[Bearbeiten] Projektmanagement
Der gesamte Prozess einer Projektentwicklung unterliegt meist einem mehr oder weniger stark ausgeprägten Projektmanagement. Im Falle der Realisierung durch einen IT-Dienstleister wird meist sowohl auf Auftraggeber- als auch auf Auftragnehmer-Seite ein jeweils eigenständiges Projektmanagement betrieben. Um Konflikte zwischen den beiden Projektleitern aufzulösen, wird dem übergeordnet oftmals noch ein aus dem Management von Auftraggeber und Auftragnehmer zusammengesetztes Kontrollgremium (Project Board) eingesetzt.
Typischerweise wird für größere Projekte auch ein größerer Projektmanagement-Aufwand betrieben, während mittlere oder kleinere Projekte häufig "nebenbei" abgewickelt werden.
[Bearbeiten] Qualitätsmanagement
Ähnliches gilt für das Qualitätsmanagement, welches durch entsprechende Maßnahmen eine hohe Qualität aller zu erbringenden Leistungen, und nicht etwa nur der Programmierung, durchsetzen soll. Grundlage des Qualitätsmanagements sind betriebsinterne Regularien, individuelle Vereinbarungen zwischen Auftraggeber und Auftragnehmer, und teilweise auch Standards wie ISO 9000ff, deren allzu strikte Auslegung für die Softwareerstellung aber umstritten ist.
Das Qualitätsmanagement wird oft als Teil des Projektmanagements missverstanden. Der Qualitätsmanager sollte aber gerade nicht dem Projektmanagement unterstehen, damit der Termin- und Kostendruck des Projekts nicht die Qualität beeinträchtigen kann. Ferner hat das Qualitätsmanagement auch die Aufgabe, das Projektmanagement als solches zu überwachen.
[Bearbeiten] Systemanalyse/Consulting
Unter Consulting (oder auf deutsch "Konzeptionen und Beratung") versteht man allgemein Beratung jeglicher Art, oftmals von spezialisierten Beratungsunternehmen geleistet. In Zusammenhang mit der Projektentwicklung ist hierbei aber die Systemanalyse zur Projektvorbereitung gemeint. Gegenstand ist die inhaltliche Erfassung der Anforderungen durch Befragung künftiger Anwender sowie die systematische Untersuchung weiterer sachlicher und technischer Anforderungen und Randbedingungen (Schnittstellen zu Drittsystemen, gesetzliche Anforderungen u.dgl.). Ergebnis ist meist ein Fachkonzept, oftmals auch gleich ein Pflichtenheftentwurf.
Das Thema des Consulting sollte immer das "WAS", und niemals das "WIE" sein. Obwohl i. d. R. nicht erwünscht, schreibt das Consulting sehr häufig, beabsichtigt oder unbeabsichtigt, bereits grundlegende technische Lösungswege, Produkte oder Plattformen für die künftige Realisierung fest. Deshalb ist es umstritten, ob und inwieweit der Einsatz von Beratungsunternehmen als unmittelbare Projektvorbereitung überhaupt sinnvoll ist. Zumindest besteht für den Auftraggeber immer das Risiko, dass externe Berater hierbei Eigeninteressen verfolgen, um sich selbst oder verbundenen Unternehmen Vorteile bei der nachfolgenden Auftragsvergabe zu verschaffen. Auch unbeabsichtigte technische Festlegungen können wegen der daraus resultierenden Wettbewerbseinschränkungen für den Auftraggeber von großem Nachteil sein.
[Bearbeiten] Pflichtenhefterstellung
Ein Pflichtenheft enthält sämtliche Funktionen und Anforderungen an ein Programm. Darin wird festgelegt, welche Funktionen verlangt sind und was diese genau tun. Die Beschreibung sollte aus der Sicht des Endanwenders erfolgen. Anhand dieser Übersicht werden die grundlegenden technischen Entwurfsentscheidungen getroffen, und daraus wird die Systemarchitektur abgeleitet. Im Falle einer Beauftragung eines Dienstleistungsunternehmens ist das Pflichtenheft die vertragliche Grundlage für die vereinbarten Leistungen. Deshalb ist die Vollständigkeit und Richtigkeit der darin getroffenen Festlegungen und Anforderungen von besonderer Bedeutung für den Auftraggeber.
[Bearbeiten] Systemdesign/technische Konzeption
Ein Systemanalytiker bzw. -designer, bei kleineren Projekten auch der Programmierer, legt anhand des Pflichtenhefts die Programmarchitektur fest. Soweit Standardsoftwareprodukte zum Einsatz kommen, erfolgt in dieser Phase auch eine Spezifikation der geplanten Produkteinbindung bzw. -anpassung. Für neu zu entwickelnde Software erfolgt der Entwurf des Datenmodells und der einzelnen Funktionen und Algorithmen bzw. der Objekt- und Klassenstruktur. Falls bereits vorhandene Software angepasst (adaptiert) werden, so wird in dieser Phase festgelegt, welche Veränderungen und Erweiterungen erforderlich sind. Das Ergebnis des Systemdesigns wird auch DV-Konzept genannt.
[Bearbeiten] Implementierung
In der Implementierung genannten Phase wird die zuvor konzipierte Anwendungslösung technisch realisiert, indem Softwareprodukte konfiguriert, vorhandene Software angepasst oder Programme bzw. Programmteile vollständig neu erstellt werden.
Eine Neuerstellung von Software erfolgt meist durch Programmierung, d. h. die einzelnen Funktionen, Objekte, Klassen u.s.w. werden in einer Programmiersprache mit Hilfe einer Integrierten Entwicklungsumgebung codiert. Aufgrund der hohen Kosten der Programmierung kommen auch alternative Verfahren, wie z. B. Universal Application zum Einsatz. Ferner werden zunehmen auch Verfahren eingesetzt, die Mehrstufigkeit von Systemanalyse, Systemdesign/Konzeption und anschließender Implementierung aufzulösen, siehe z. B. unter Prototyping, Agile Softwareentwicklung.
[Bearbeiten] System- und Verfahrenstest
Die erstellte Software wird sowohl in zweierlei Hinsicht getestet, zum einen
- technisch (Systemtest), d. h. auf eine korrekte Umsetzung des DV-Konzepts und auf Programmfehler, und zum anderen
- inhaltlich (Verfahrenstest), d. h. auf Vollständigkeit bezüglich des Pflichtenhefts und Eignung für den vorgesehenen Zweck.
Während der Systemtest eine alleinige Angelegenheit des Auftragnehmers ist, erfolgt der Verfahrenstest meist in Zusammenarbeit mit den Endanwendern des Auftraggebers.
Es gilt in der Softwareentwicklung als normal, dass Programme fehlerhaft sind. Oftmals müssen sogar ganze Teile vollständig neu umgesetzt, also neu programmiert werden. Da niemals mit Sicherheit ausgeschlossen werden kann, dass geänderte Programmteile nicht etwa andere Programmfunktionen beeinflussen können, erfolgt nach der Fehlerbeseitigung meist ein erneuter vollständiger Test des Gesamtsystems. Bis zur endgültigen Freigabe der Software sind meist mehrere Test- und Fehlerbeseitigungszyklen erforderlich.
[Bearbeiten] Installation
Die fertiggestellte Software nebst eventuell erforderlicher Standardsoftwareprodukte, Hardware u. ä. wird sodann im Zuge der Installation auf den Computersystemen des Auftraggebers oder des Betreibers (eines Application Service Providers) aufgespielt und betriebsbereit gemacht. Hierbei wird oftmals zwischen parallelen "Produktiv"-, "Test"-, "Schulungs"- und "Entwicklungs"-Installationen unterschieden.
Je nach technischer Plattform erfolgt die Installation auf Zentralrechnern (Server) oder auf den Arbeitsplatzrechnern oder beides. Bei Datenbankanwendungen erfolgt ggf. noch ein Tuning der Datenbank. In einigen Fällen erfolgt noch eine Altdatenübernahme aus älteren Anwendungslösungen.
Bei größeren Projekten erfolgt oftmals zunächst nur eine Installation auf einem Testsystem bzw. bei wenigen Pilot-Anwendern. Die nachfolgende Ausweitung (Installation und Inbetriebnahme) auf weitere Standorte nennt man Rollout.
[Bearbeiten] Einführungsunterstützung
Wesentlicher Teil des Projekts ist die Einführungsunterstützung, insbesondere in Form von Schulung bzw. Einweisung der Endanwender, Power User und Administratoren.
Es gibt sehr unterschiedliche Schulungskonzepte. Eine größere Anzahl von Benutzern wird oftmals über s.g. "Multiplikatoren" geschult. Multiplikatoren sind Anwender, die wiederum weitere Anwender schulen. Dieses Verfahren nennt man auch Train the Trainers. Zunehmend erfolgt die Anwenderschulung auch über das Internet mit entsprechenden Traininganwendungen.
[Bearbeiten] Wartung/Pflege
Nach der Inbetriebnahme einer Softwarelösung ist eine kontinuierliche Weiterbetreuung durch den Auftragnehmer üblich. Dies umfasst sowohl eine Unterstützung der Anwender per Hotline und soweit erforderlich Vor-Ort-Leistungen. Dies wird häufig in einem Support-Vertrag geregelt. Hierbei wird zwischen einem First-level Support und einem Second-level Support unterschieden. Der First-level Support wird oftmals vom Auftraggeber selbst gewährleistet und nimmt alle Problemmeldungen entgegen. Er leitet aber nur schwerwiegende Probleme an den Second-level Support beim Auftragnehmer bzw. Produkthersteller weiter.
Die laufende Anpassung der Software an sich ändernde Anforderungen und an neue Versionen verwendeter Standardsoftware wird als "Softwarepflege" bezeichnet und gleichfalls in entsprechenden Verträgen geregelt. Das Management des nachträglichen Einbringens von Änderungen in ein laufendes System nennt man Veränderungsmanagement.
siehe auch: