Erhalten Sie Zugang zu diesem und mehr als 300000 Büchern ab EUR 5,99 monatlich.
Buchreihe "Produktivitätssteigerung in der Softwareentwicklung": In der Softwareentwicklung ist Produktivität ein Maß dafür, wie viel Funktionalität in einer bestimmten Zeit und unter Einhaltung festgelegter Qualitätskriterien entwickelt werden kann. Gelingt eine Produktivitätssteigerung, erhöht dies den Umfang der entwickelten Funktionalität und reduziert die erforderliche Zeit. Beides ist erstrebenswert, denn Software ist der Stoff, aus dem Innovationen entstehen. Die IT hat nahezu alle Lebensbereiche durch fundamentale Innovationen verändert. Unsere Zukunft wird von der Virtualisierung und smarten Helfern, also mit Intelligenz ausgestatteten Dingen, dominiert werden. Dadurch wird Softwareentwicklung zu einer Schlüsselkompetenz. Für Unternehmen, die Software entwickeln, sind bereits heute Produktivität und damit Zeit, jedoch auch Qualität kritische Erfolgsfaktoren. Durch die Einführung von Standards und durch Automatisierung konnte die Produktivität in der Softwareentwicklung nachweislich auf das 20-fache gesteigert werden. Bei Wiederverwendung fachlicher und technischer Komponenten konnte schon ein Faktor von 100 gemessen werden. Nachvollziehbar sind solche Leistungsunterschiede nur durch Messungen und die konsequente Verwendung der Messergebnisse im Rahmen eines auf ständige Optimierung ausgelegten Managementmodells. Dieser zweite Teil, "Managementmodell, Aufwandsermittlung und KPI-basierte Verbesserung", beschreibt ein Modell, das auf drei Kennzahlen basiert: Produktivität, Kosten und Qualität. Es erklärt ihre zyklische Erhebung, ihre analytische Auswertung und Indikatoren, die zu Verbesserungsmaßnahmen in wichtigen Einflussbereichen führen. Um den Nutzen der Maßnahmen vorab einschätzen zu können, liefert es Erfahrungswerte wie auch ein Verfahren zur Berechnung ihrer Wirksamkeit. Das beschriebene Modell ist ein Navigationsinstrument, das dem Management zeigt, in welche Richtung, mit welcher Geschwindigkeit es sich angesichts seiner Kennzahlen bewegt.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 75
Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:
Stefan Luckhaus
Buchreihe Produktivitätssteigerung in der Softwareentwicklung
Band 2
Managementmodell, Aufwandsermittlung und KPl-basierte Verbesserung
Internet: www.pass-consulting.com
Alle Rechte Vorbehalten.
© PASS IT-Consulting
Dipl.-Inf. G. Rienecker GmbH & Co. KG, Aschaffenburg
Dieses Werk, einschließlich aller seiner Teile, ist urheberrechtlich geschützt.
Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne schriftliche Genehmigung des Verlages unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen oder ähnliche Verfahren.
Redaktion & Lektorat:
Heidrun Fernau-Rienecker
Umschlaggestaltung & Satz:
Antje Weber
Umschlaggrafik:
Shutterstock Images LLC
Produktion & Vertrieb:
PASS IT-Consulting Dipl. Inf. G. Rienecker GmbH & Co. KG
Heidrun Fernau-Rienecker
Mai 2016
ISBN:
Hardcover:
978-3-9816563-4-3
Paperback:
978-3-9816563-5-0
e-Book:
978-3-9816563-6-7
Inhalt
Einleitung: Factories - von der Manufaktur zur Softwareproduktion
Das Potenzial von Produktivitätssteigerungen
Die Manufaktur – Softwareentwicklung als Handwerk
Entwicklungsstandards
Automatisierte Fertigungsprozesse
Fachlich-funktionale Standardisierung und Wiederverwendung
Ein Managementmodell zur Optimierung der Produktivität
I. KPIs und Messmethoden
Produktivität messen
Qualität messen
Zyklische Messung, Auswertung und Optimierung
II. Anwendung
Auslieferungs- und Neuentwicklungsproduktivität messen
Weiterentwicklungsproduktivität messen
Qualitätskennzahlen erheben
Berechnung des Aufwands geplanter Entwicklungsvorhaben
Schritt 1: Umfang der funktionalen Anforderungen ermitteln
Schritt 2: Erfahrungswert für die Produktivität finden
Schritt 3: Ergebnis interpretieren
Schritt 4: Zusätzlichen Aufwand identifizieren
Schritt 5: Risiken erkennen und mindern
III. Auswertung
Entwicklung der Produktivität im Zeitverlauf
Interne Benchmarks
Externe Benchmarks
Bezugswerte
Gegenüberstellung von Qualität und Produktivität
Anomalie 1: Die Auswirkungen vernachlässigter analytischer Qualitätssicherung
Anomalie 2: Die Auswirkungen technischer Schulden
Fehlerursachenanalysen
IV. Optimierung
Key Performance Areas
Anwendungsspezifikation
Anwendungsarchitektur
Systemarchitektur
Systembetrieb
Entwicklungsarchitektur
Qualitätsmanagement
Projektmanagement
Personalmanagement
Berechnung der Wirksamkeit von Verbesserungsmaßnahmen
Justierung und Kalibrierung der Messmethoden
V. Fazit
Glossar
Literaturverzeichnis
Über den Autor
Buchempfehlung
Abbildungsverzeichnis
Abbildung 1:
Erfahrungswerte für erreichbare Produktivität
Abbildung 2:
Modellierung eines Prozesses mit der PASS Software Factory (Beispiel)
Abbildung 3:
Beispiel eines Marktplatzes für Software-Komponenten
Abbildung 4:
Managementmodell zur Produktivitätssteigerung in der Softwareentwicklung
Abbildung 5:
Messmethoden bilden das Fundament des Managementmodells
Abbildung 6:
Anwendung der Messmethoden
Abbildung 7:
Kennzahlen einer Systementwicklung mit hohem Wiederverwendungsgrad (Praxisbeispiel)
Abbildung 8:
Auswertung der Kennzahlen und Ursachenanalyse
Abbildung 9:
Entwicklung der Produktivität über mehrere Monate (Beispiel)
Abbildung 10:
Interner Produktivitätsbenchmark (Beispiel)
Abbildung 11:
Arithmetisches Mittel aller Messungen eines Zeitraums als Bezugswert (Beispiel)
Abbildung 12:
Arithmetisches Mittel aller Messungen eines Zeitraums als Bezugswert (Beispiel)
Abbildung 13:
Verlauf der durchschnittlichen Neuentwicklungsproduktivität in der PASS Consulting Group
Abbildung 14:
Normalfall des zeitlichen Verlaufs von Fehlerdichte und Produktivität (Beispiel)
Abbildung 15:
Normalfall des zeitlichen Verlaufs von Fehlerdichte und Produktivität in einem X/Y-Diagramm (Beispiel)
Abbildung 16:
Zeitlicher Verlauf von Fehlerdichte und Produktivität bei vernachlässigter Qualitätssicherung (Beispiel)
Abbildung 17:
Zeitlicher Verlauf von Fehlerdichte und Produktivität bei vernachlässigter Qualitätssicherung, dargestellt in einem X/Y-Diagramm (Beispiel)
Abbildung 18:
Zeitlicher Verlauf von Fehlerdichte und Produktivität bei technischen Schulden (Beispiel)
Abbildung 19:
Zeitlicher Verlauf von Fehlerdichte und Produktivität bei technischen Schulden, dargestellt in einem X/Y Diagramm (Beispiel)
Abbildung 20:
Zusammenfassung der Ergebnisse einer Codeanalyse mit SonarQube (Beispiel)
Abbildung 21:
Schema zur Klassifizierung von Fehlerursachen (Auszug, Beispiel)
Abbildung 22:
Planung und Durchführung von Verbesserungsmaßnahmen
Abbildung 23:
Auswirkungen von Key Performance Areas auf KPIs (Erfahrungswerte)
Abbildung 24:
Wirkung einer einzelnen Verbesserungsmaßnahme (Beispiel)
Abbildung 25:
Wirkung von zwei Verbesserungsmaßnahmen in verschiedenen Bereichen (Beispiel)
Abbildung 26:
Wirkung von zwei Verbesserungsmaßnahmen im selben Bereich (Beispiel)
Tabellenverzeichnis
Tabelle 1:
Modellrechnung für den Aufwand bei verschiedenen Entwicklungsparadigmen
Tabelle 2:
Weiterentwicklungsproduktivität durch Zusammenfassung eines Zeitraums von 4 Monaten (Beispiel)
Tabelle 3:
Beispiel einer Fehlerursachenanalyse nach der 5-Why-Methode
Einleitung: Factories - von der Manufaktur zur Softwareproduktion
Eine Steigerung der Produktivität bedeutet für Software entwickelnde Unternehmen [Wallmüller 1990]:
Softwareprodukte in kürzeren Zeitintervallen entwickeln;
Softwareprodukte so entwickeln, dass sie einen höheren Return on Investment liefern;
Softwareprodukte mit höherer Qualität entwickeln.
Niemand wird daran zweifeln, dass es sich dabei um erstrebenswerte, manchmal sogar essenzielle Ziele handelt. Genau diese Eigenschaften sind beispielsweise für Startups in den ersten Finanzierungsrunden entscheidend, wenn es um die Entwicklung eines digitalen Geschäftsmodells und dessen Bewertung durch Investoren geht. Die erste Frage, die dieses Buch klären möchte, ist: In welchem Maße kann die Produktivität gesteigert werden, d.h. welche Verbesserungen hinsichtlich der oben genannten Punkte können in der Praxis erwartet werden?
Das Potenzial von Produktivitätssteigerungen
Die Bandbreite der Produktivität, die in der heutigen Praxis der Softwareentwicklung gemessen werden kann, ist sehr hoch. Die Ursache dafür ist ein großer Nachholbedarf dieser Branche gegenüber anderen Bereichen der industriellen Entwicklung. Abbildung 1 zeigt Erfahrungswerte der PASS Consulting Group für verschiedene Entwicklungsparadigmen, die jeweils als Verhältnis von Output zu Input errechnet wurden. Der Output wurde mit der Data Interaction Point-Methode (Einheit: DIP), der Input in Personentagen (PT) gemessen [Luckhaus 2014].
Abbildung 1: Erfahrungswerte für erreichbare Produktivität
Die Manufaktur – Softwareentwicklung als Handwerk
Im Kontext dieser Produktivitätsbetrachtung steht die Softwaremanufaktur für einen Softwarehersteller mit nachfolgend beschriebenen Eigenschaften: Software wird von Grund auf als Unikat hergestellt und sowohl die implementierte Funktionalität als auch der Entwicklungsprozess sind individuell. Die Entwicklung nutzt bestehende Programmiersprachen, Compiler, Entwicklungsumgebungen, einige Werkzeuge usw., zeichnet sich ansonsten jedoch durch Handarbeit aus. Produkt-und Prozessqualität sind stark von der Erfahrung und den Fähigkeiten der Entwickler abhängig.
PASS verfügt über Erfahrungen und Messwerte der Produktivität aus eigenen Projekten wie auch aus Kundenprojekten, die nach Art einer Manufaktur durchgeführt wurden. Ihre Produktivität liegt in der Regel wenig über 1 DIP/PT. Laufen Projekte schlecht, ist auch eine Produktivität möglich, die deutlich unter 1 DIP/PT liegt. Gut laufende Projekte können einen Wert von 2 erreichen. Darüber hinaus gehende Produktivitätssteigerungen sind bei dieser Art der Softwareentwicklung nicht zu erwarten.
Entwicklungsstandards
Softwareentwicklung wird produktiver, wenn technische und Prozessstandards festgelegt und genutzt werden, beispielsweise:
Programmierrichtlinien und Entwurfsmuster, unterstützt durch Entwicklungsumgebungen, die mit Versionsverwaltungssystemen, Werkzeugen zur Codeprüfung usw. integriert sind.
Frameworks als Entwicklungsrahmen mit wiederverwendbaren technischen Komponenten.
Standard-Architekturen, die in ihrem Zusammenspiel bewährte Systemkomponenten vorgeben und die Integration der zu entwickelnden Software mit diesen Systemkomponenten wie auch einen nachträglichen Austausch erleichtern.
Moderne Programmierparadigmen, welche einerseits Aufgaben an die unterliegende Plattform delegieren und dadurch die Menge des zu entwickelnden Codes reduzieren, andererseits die Stärken der Konzepte aus beispielsweise objektorientierter und funktionaler Programmierung kombinieren.
Prozessmodelle, durch die Prozesse und Methoden für alle Kompetenzbereiche der Softwareentwicklung festgelegt sind, einschließlich Vorlagen für alle zu erstellenden Dokumente.
Durch Standards können viele Anforderungen erfüllt werden, ohne dass dafür Code entwickelt und getestet werden muss. Sie schützen die Investition in das Softwareprodukt, da Prozess und Produkt unabhängig von der Erfahrung und den handwerklichen Fähigkeiten einzelner Prozessbeteiligter sind und vorab festgelegte Qualitätskriterien eingehalten werden. Handelt es sich um industrieweite Standards (beispielsweise Frameworks wie Hibernate, Spring, PrimeFaces usw.), kann meist auch unternehmensübergreifend auf Erfahrungen zurückgegriffen werden und Mitarbeiter für die Wartung und Weiterentwicklung sind leichter zu finden.
Zu Projekten, die Gebrauch von technischen und Prozessstandards machen ohne dabei jedoch Teilprozesse der Softwareentwicklung zu automatisieren, verfügt die PASS Consulting Group über Messungen, die eine Produktivität zwischen 2 und 4 DIP/PT aufzeigen. Gegenüber einem Projekt, das aufgrund einer eher handwerklich orientierten Arbeitsweise mit einer Produktivität von 1 DIP/PT abgeschlossen wurde, kann durch Standardisierung somit eine bis viermal so hohe Produktivität erreicht werden. Ein möglicher Vorteil wäre der gleiche Output bei einem Viertel der Kosten, alternativ jedoch auch die Entwicklung eines viermal so großen Funktionsumfangs bei gleichen Kosten.
Standardisierung ist ein erster Schritt von der Manufaktur zur Fabrik und eine wichtige Grundlage für den nächsten Meilenstein, die zunehmende Automatisierung entlang des Fertigungsprozesses.
Automatisierte Fertigungsprozesse
Modellbasierte Entwicklung mit automatischer Code-Generierung ermöglicht die Implementierung einer Software auf der abstrakten Ebene eines Modells an Stelle einer Programmiersprache. Ein Beispiel dafür ist die PASS Software Factory, mit der dieses Paradigma seit fast 20 Jahren in der kommerziellen, unter kritischer Betrachtung von Produktivität und Qualität permanent optimierten, Softwareentwicklung eingesetzt wird. Sie basiert auf Modellen für die verschiedenen Gestaltungsbereiche einer Software, d.h. Dialoge, Prozesse, Workflows, Datenstrukturen oder Schnittstellen sowie auf den Werkzeugen, mit denen Objekte in diesen Bereichen erstellt und verändert werden können wie beispielsweise grafische Benutzeroberflächen, Datenmodelle bzw. Modelle von Fachobjekten, einfache Prozessabläufe und Workflows mit mehreren Interaktionen der Benutzer. Der Entwickler verknüpft die verschiedenen Modelle, beispielsweise Workflows mit Dialogen, Buttons in den Dialogen mit Prozessen oder Eingabefelder mit Datenelementen. Ein Codegenerator erzeugt auf Basis dieser Modelle und einer Vorlage, durch die Sprache, Struktur und Kommentierung gesteuert wird, lauffähigen und um technische Validierungsprüfungen angereicherten Code. Spätere Änderungen an der Software werden auf Modellebene durchgeführt und davon betroffener Code neu generiert.
Abbildung 2: Modellierung eines Prozesses mit der PASS Software Factory (Beispiel)
Ein Erfahrungswert aus der Entwicklung individueller Anwendungen mit der PASS Software Factory ist ein Anteil generierten Codes von etwa 80 %. Der Rest wird individuell programmiert. Die Produktivität wurde in verschiedenen Projekten zwischen 3 und 8 DIP/PT gemessen. Weiteres Potenzial liegt auch hier in der Standardisierung: Ein einheitlicher Dialogaufbau (beispielsweise aus den Strukturen von Fachobjekten automatisch erzeugte Suchdialoge mit entsprechender Ergebnisliste und nachfolgender Detailanzeige), Workflows (z.B. eine einheitliche Freigabe von Fachobjekten nach dem 4- oder 6-Augen-Prinzip) usw. Diese Art der Standardisierung schließt nicht die Berücksichtigung individueller Anforderungen aus, sondern sie bezieht sich nur auf die Art ihrer Umsetzung. Erfahrungen mit der standardisierten modellbasierten Entwicklung zeigen, dass dadurch eine Produktivität von 20 bis 25 DIP/PT möglich ist.