|
|
|
Management der Software-Entwicklung
[28.03.2000]
Charakteristisch für die gegenwärtige Situation der
Software-Entwicklung ist eine hohe Innovationsdynamik im Bereich der
Software-Technik, die sich vor allem anhand neuer Architekturen,
Sprachen und Programmierwerkzeuge darstellt. Jedoch sind die
Unternehmen mit den derzeitigen Vorgehensweisen und Werkzeugen nicht in
der Lage, die Komplexität der Software-Entwicklung zu beherrschen. Die
Software-Entwicklung steht generell in dem Ruf, ihre Ziele nicht zu
erreichen. Standardsoftware kommt häufig später als angekündigt,
kundenindividuell erstellte Software wird meist mit Termin- und
Budgetüberschreitungen sowie zum Teil gravierenden Qualitätsmängeln
ausgeliefert. Die Kunden sind mit der Software nicht zufrieden und
wünschen sich etwa eine andere Funktionalität oder eine bessere
Stabilität der Programme.
Die Dimension und die Dauer der Software-Krise lassen erkennen, dass
die Ursachen und die Lösungen nicht allein auf der technischen Seite zu
suchen sind. Trotz einer rasanten Weiterentwicklung der
Software-Technik kann die Software-Entwicklung den parallel dazu
gestiegenen Anforderungen hinsichtlich Komplexität der Systeme,
Zeitdruck und Kundenorientierung nicht genügen. Das Management der
Software-Entwicklung ist daher bestrebt, die Erfolgsfaktoren Zeit,
Kosten und Qualität bei der Erstellung neuer Software-Produkte
sicherzustellen. Um dieses Ziel zu erreichen, muss sich das Management
im wesentlichen mit vier Problemkreisen beschäftigen: Die Voraussetzung
für effiziente Abläufe ist zunächst die problemadäquate Gestaltung des
Software-Entwicklungsprozesses. Das Projektmanagement sorgt für die
termingerechte Steuerung des Entwicklungsprozesses im Unternehmen sowie
für die zielkonforme Allokation vorhandener Ressourcen für ein oder
mehrere Software-Entwicklungsprojekte. Eine anforderungsgerechte und
rationelle Erstellung von Software wird durch das Qualitätsmanagement
für Software geleistet. In Verbindung damit stellt ein
marktorientiertes Kostenmanagement im Entwicklungsprozess ein
kundengerechtes Produkt sicher. Die Managementfunktion ist somit eine
Querschnittsfunktion im Software-Entwicklungsprozess.
These 1: Projektführung und Teamarbeit sind die wesentlichen Erfolgsfaktoren bei der Software-Entwicklung.
Untersuchungen ergeben, dass die Teamarbeit, die Teamführung, die Planung und Steuerung
des Teams sowie die Information und Kommunikation wesentliche
Erfolgsfaktoren bei Software-Entwicklungsprojekten sind. Ein
abgestimmtes Zielsystem sowie die Kenntnis sämtlicher Ziele bei allen
Projektbeteiligten sind die Grundvoraussetzung für eine einheitliche
Ausrichtung des Projektteams und zugleich für den Projekterfolg. Es
zeigt sich, dass eine Orientierung des Managements auf das Projektteam
im allgemeinen und den beteiligten Mitarbeiter speziell zu einer
Verbesserung der in- und externen Kommunikation führt und somit ein
aktiverer Beitrag zur Aufgabenbewältigung geleistet wird.
These 2: Eine zielorientierte Projektplanung macht den Software-Entwicklungsprozess steuerbar.
Die Anforderungen an die Projektverfolgung sind einerseits eine
transparente Leistungsmessung, die den Fortschrittsgrad des Projektes
in kurzen Abständen wiedergibt und zugleich ein Projektcontrolling,
welches auf prozessabgestimmten Controllinggrößen aufbaut. Anhand von
Kriterien zur Normierung von Arbeitspaketen wird eine Vergleichbarkeit
des Entwicklungsaufwandes je Arbeitspaket sichergestellt. Die
Vorgehensweise zur effizienten Projektstrukturierung und zur Normierung
der Arbeitspakete verfolgt das Ziel einer verbesserten
Leistungsmessung. Dabei ist eine Gegenüberstellung der Plan-, Soll- und
Ist-Daten notwendig, um eine aussagekräftige Trendprognose bereits in
frühen Stadien des Projektverlaufes zu ermöglichen, die den erwarteten
Projektendtermin bzw. die voraussichtlichen Mehr- und Minderkosten
berechnen. Basis für dieses Vorgehen bilden die in der Projektplanung
nach den Kriterien der Normierung erstellten Arbeitspakete, die den an
dem Projekt beteiligten Kostenstellen zugeordnet werden. Der Einsatz
dieser Methode bedarf einer DV-Unterstützung, die den spezifischen
Anforderungen an die Software-Entwicklung gerecht wird. Ein
prozessorientiertes Controlling in Anlehnung an den ausgewogenen
Berichtsbogen führt dann die vier Ebenen der Kundenziele, Prozessziele,
Lern- und Innovationsziele sowie Organisations- und Projektziele
zusammen.
These 3: Ein strategisches Kostenmanagement stellt eine marktgerechte Software-Produktgestaltung sicher.
Die Aufgabe eines Kostenmanagements für Software ist es, die Kosten eines
Software-Entwicklungsprozesses prognostizierbar, meßbar und regulierbar
zu machen. Unter Kostenmanagement werden dabei alle Maßnahmen zur
Gestaltung der Kosten verstanden, die der frühzeitigen und
antizipativen Beeinflussung von Kostenstruktur und Kostenverhalten
sowie der Senkung des Kostenniveaus dienen. Ziel des Kostenmanagements
ist es, durch eine aktive Kostensteuerung eine markt- und
anforderungsgerechte Software-Produktgestaltung zu unterstützen, um den
Erfolg eines Software-Entwicklungsprojektes sicherzustellen. Das
Kostenmanagement wird unterteilt in ein strategisches und ein
operatives Kostenmanagement. Das strategische Kostenmanagement ist
längerfristig orientiert und unterstützt zu Beginn eines
Software-Entwicklungsprojektes die Kostenprognose und die
marktorientierte Vorgabe von Zielkosten im gesamten
Software-Entwicklungsprozess, um ein anforderungsgerechtes
Softwareprodukt sicherzustellen. Das hohe Kostenbeeinflussungspotential
zu Beginn des Software-Entwicklungsprojektes verdeutlicht die
Notwendigkeit von Instrumenten für ein strategisches Kostenmanagement.
Die Methode des Target Costing führt die mit Hilfe gängiger
Aufwandschätzverfahren bottom-up geschätzten Kosten und die top-down
ermittelten Zielkosten zusammen. Das Target Costing stellt die Kosten
in einem Zielkostenkontrolldiagramm gegenüber. Dieses
Zielkostenkontrolldiagramm dient als Kommunikationsinstrument zwischen
Entwickler und Anwender und ermöglicht die Identifikation von
Kostensenkungs- und Gewinnpotentialen. Durch die Ableitung von
Handlungsempfehlungen kann eine adäquate Erfüllung der
Kundenanforderungen im Sinne einer markt- und anforderungsgerechten
Software-Produktgestaltung unterstützt werden. Diese
Handlungsempfehlungen können sich dabei auf die Prozessgestaltung und
die Systemkonfiguration auswirken, indem z. B. ein begrenzter
Funktionsumfang oder eine modifizierte Systemarchitektur die Folge
sind. Die auf Basis des Zielkostenkontrolldiagrammes modifizierten
Kosten werden auf die Software-Entwicklungsphasen der zu erstellenden
Komponenten aufgespalten. Diese Zielkosten dienen dann als Sollvorgaben
für eine Kostenverfolgung im Entwicklungsprozess.
These 4: Die geforderte Produktqualität ist durch eine adäquate
Prozessqualität sicherzustellen, wobei der Mitarbeiter im Mittelpunkt
steht.
Zur Erreichung der geforderten Produktqualität
leistet die Stabilität und die Sicherheit der Prozesse einen
erheblichen Beitrag. Ganzheitliche Konzepte wie z. B. das ‘Total
Quality Management‘ (TQM) sowie die ‘Software Customer Value Analysis‘
tragen den Ansprüchen der Kunden Rechnung und binden die
Projektmitarbeiter in den Verbesserungsprozess ein. Aufgrund des hohen
Abstraktionsgrades des TQM-Konzeptes wird die direkte Umsetzung in der
Software-Entwicklung erschwert. Eine softwarespezifische Anpassung
erfolgte dann durch die Integration der Methoden des SCVM in das
TQM-Konzept. Das SCVM ermöglicht eine systematische Erhebung der
Kundenanforderungen und der Bestimmung von Key-Kunden nach dem Pareto
Prinzip. Die Umsetzung in Produktanforderungen erfolgt mittels der
Methode des QFD. Die Nachhaltung der Kundenzufriedenheit anhand von
Qualitätsmerkmalen sowie das Benchmarking mittels Best Practice betonen
die strategische Bedeutung dieses Konzepts. Die Anwendung des SCVM
innerhalb des TQM- Konzeptes schafft die Voraussetzungen für eine
kontinuierliche Verbesserung und die Ausrichtung des Unternehmens an
den Markterfordernissen.
Für die Sicherstellung der Prozessqualität ist ein softwarespezifisches Qualitätscontrolling erforderlich, welches auf den Qualitätssicherungsmodellen basiert.
Diesen ist eine Einteilung in verschiedene Prozessreifegrade gemein, die
mit entsprechenden Qualitätsstufen korrelieren. Diese
Prozessbeschreibungen definieren auch die Art und Weise des
Qualitätscontrollings. Zur Erreichung der nächst höheren Stufe sind
festgelegte Qualitätskriterien zu erfüllen, die meist durch externe
Audits objektiv nachgehalten werden. Zur Erweiterung des
Qualitätscontrollings auf die Produktebene eignet sich das Prinzip der
Quality Gates. Quality Gates überprüfen die Einhaltung der in der
Qualitätsplanung definierten Kriterien. Sie stellen somit
Entscheidungspunkte dar und ermöglichen die Definition von
Gegenmaßnahmen oder sogar den Projektabbruch.
Fazit:
Die kombinierte Anwendung der aufgezeigten Managementinstrumente in der
Software-Entwicklung führt zu deutlichen Verbesserungen in der
Zielerreichung. Entscheidend für den Erfolg ist aber immer das aktive
Mitwirken der Projektbeteiligten am Managementprozess. Hierzu müssen die
Software-Entwickler von der Notwendigkeit der Managementinstrumente und
der zeitlichen Investition in entsprechende Prozessschritte überzeugt
werden. Wie ein erfolgreiches Management der Softwareentwicklung
eingeführt werden kann, zeigen Referenten anhand von exemplarischen
Fallstudien im Seminar
Management Softwareengineering.
Sie geben konkrete Hinweise zum Management der Softwareentwicklung,
verweisen aber auch Hindernisse bei der Realisierung der Konzepte. Es
werden Handlungsanleitungen und Einführungsstrategien für Konzepte und
Instrumente zum Management von Softwareentwicklungsprojekten
vorgestellt, die unmittelbar umgesetzt werden können.
Weiterführende Literatur zum Thema: nach oben
zurück
|
|
|
|