^

Management der Software-Entwicklung

[28.03.2000]

Foto: Marco2811 / fotolia.com
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:

VorherigeNächste