X p e r t . p r e s s Die Reihe Xpert.press vermittelt Professionals in den Bereichen Softwareentwicklung, Internettechnologie und IT-Management aktuell und kompetent relevantes Fachwissen über Technologien und Produkte zur Entwicklung und Anwendung moderner Informationstechnologien. Rainer Gerlich · Ralf Gerlich 111 Thesen zur erfolgreichen Softwareentwicklung Argumente und Entscheidungshilfen für Manager Konzepte und Anleitungen für Praktiker Mit 55 Abbildungen und 9 Tabellen 123 Rainer Gerlich Ralf Gerlich Auf dem Ruhbühl 181 88090 Immenstaad [email protected] [email protected] Bibliografische Information der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.ddb.de abrufbar. ISSN 1439-5428 ISBN-10 3-540-20910-7 Springer Berlin Heidelberg New York ISBN-13 978-3-540-20910-2 Springer Berlin Heidelberg New York Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbe- sondere die der Übersetzung, des Nachdrucks, des Vortrags, der Entnahme von Abbildungen und Tabellen, der Funksendung, der Mikroverfilmung oder der Ver- vielfältigung auf anderen Wegen und der Speicherung in Datenverarbeitungs- anlagen bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. Eine Verviel- fältigung dieses Werkes oder von Teilen dieses Werkes ist auch im Einzelfall nur in den Grenzen der gesetzlichen Bestimmungen des Urheberrechtsgesetzes der Bundesrepublik Deutschland vom 9. September 1965 in der jeweils geltenden Fassung zulässig. Sie ist grundsätzlich vergütungspflichtig. Zuwiderhandlungen unterliegen den Straf- bestimmungen des Urheberrechtsgesetzes. Springer ist ein Unternehmen von Springer Science+Business Media springer.de © Springer-Verlag Berlin Heidelberg 2005 Printed in Germany Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in die- sem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutzgesetzgebung als frei zu be- trachten wären und daher von jedermann benutzt werden dürften. Text und Abbildungen wurden mit größter Sorgfalt erarbeitet. Verlag und Autor können jedoch für eventuell ver- bliebene fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung übernehmen. Satz: Druckfertige Daten des Autors Herstellung: LE-TeX Jelonek, Schmidt & Vöckler GbR, Leipzig Umschlaggestaltung: KünkelLopka Werbeagentur, Heidelberg Gedruckt auf säurefreiem Papier 33/3142/YL - 5 4 3 2 1 0 Danksagung Für die Unterstützung unserer Arbeiten bedanken wir uns bei (cid:120) unseren Mitarbeitern Thomas Boll und Daniel Sigg, die engagiert und kreativ bei der erfolgreichen Implementie- rung der Produktionsprozesse mitgearbeitet haben. (cid:120) der ESA (European Space Agency), die durch Vergabe zahlreicher Projekte zu diesem Thema we- sentlich dazu beigetragen hat, dass wir in Richtung automati- scher Produktionsprozesse arbeiten konnten und können, und die die Technologie im Rahmen ihres "Technology Transfer Programme" (TTP) unterstützt. (cid:120) dem Raumfahrtmanagement des DLR (Deutsches Zentrum für Luft- und Raumfahrt) für die Förderung unserer Arbeiten durch Projekte und Ver- breitung unserer Ergebnisse im Rahmen der "Initiative für den Technologietransfer aus der Raumfahrt" (INTRA). (cid:120) MST Aerospace GmbH für die wertvolle Unterstützung im Rahmen von TTP und INTRA. (cid:120) unseren Ansprechpartnern im Bereich DG IST (Information Society Technologies) der EU für die Unterstützung im Rah- men der "Framework Programme" FP4 und FP 6. (cid:120) allen unseren Auftraggebern und Kunden, durch die wir in der Lage waren, unsere Technologie in realen Projekten einsetzen und dadurch weiterentwickeln zu können. (cid:120) allen Diskussionspartnern, die uns durch Kritik und Rat Anre- gungen für weitere Anwendungen gegeben und uns damit zur Erschließung weiterer Einsatzbereiche ermutigt haben. (cid:120) unseren Ansprechpartnern beim Springer-Verlag, für ihre Ge- duld (es hat leider etwas länger gedauert) und ihre Hilfe bei der Erstellung dieses Buches.. (cid:120) und – last but not least – allen unseren Teamkollegen aus den ESA- und EU-Projekten, für Gedankenaustausch, Anregungen und auch Kritik, die für uns sehr wertvoll waren, um unseren Ansatz weiterzuentwickeln. Danksagung ■ V ■ ■ Vorwort Ziel dieses Buches ist es, (cid:120) Managern Argumente und Entscheidungshilfen für die Einführung effizienter Techniken der Softwareentwick- lung zu geben, und (cid:120) Praktiker von der Notwendigkeit effizienter Softwareent- wicklung zu überzeugen und Wege zur erfolgreichen An- wendung aufzuzeigen. Unter "effizienter Softwareentwicklung" verstehen wir die Um- setzung von Anforderungen in "qualitativ hochwertige" Software zu "angemessenem" Preis innerhalb "angemessener" Zeit. "Qualitativ hochwertig" steht für fehlerfrei, zuverlässig, robust und voll den Anforderungen entsprechend. Unter "angemessen" verstehen wir minimale Komplexität bei voller Abdeckung der An- forderungen, bezahlbar und kurzfristig verfügbar. Im ersten Teil dieses Buches (Kap. 2 - 5) führen wir den Leser hin zum "automatischen Softwareproduktionsprozess", durch Prä- sentation von Thesen und Analysen. Anleitungen und Beispiele folgen im zweiten Teil (Kap. 6 und 7). Wir schließen mit Betrach- tungen zur gesellschaftspolitischen Relevanz einer Technologie, die auf Automation beruht (Kap. 8). Wie in anderen Bereichen, in denen Automation bereits ange- wendet wird, haben automatische Softwareproduktionsprozesse Einfluss auf die Arbeitsplätze. Präziser ausgedrückt, es fallen be- stimmte Arten von Arbeitsplätzen weg, während andere entstehen. Für Manager und Entwickler, aber auch Ausbilder, ist es wichtig, sich frühzeitig auf die Möglichkeiten und Folgen dieser Technologie einzustellen. Zur Zeit wird durch "Outsourcing", "Nearshoring" oder "Offsho- ring" versucht, die Softwareentwicklungskosten zu senken. "Auto- mation" in der Softwareentwicklung geht darüber hinaus. Nicht nur Kosten sinken, auch Entwicklungszeit und -risiken, die Flexibilität Vorwort ■ VII ■ ■ erhöht sich, und Know-how muss nicht nach außen weitergegeben werden. Softwareentwickler müssen daher informiert werden, dass Auto- mation mehr zur Sicherung ihrer Arbeitsplätze beiträgt als sie zu gefährden. Die Gefahr, den eigenen Arbeitsplatz zu verlieren, ist ohnehin durch das momentane Gefälle des Preis-Leistungsverhält- nisses zwischen In- und Ausland gegeben. Nur durch Verbesserung dieses Verhältnisses kann ein Entwickler seinen Arbeitsplatz si- chern. Automatische Softwareproduktion gibt ihnen die Chance, die Leistung zu erbringen, die ihre höhere Bezahlung im Vergleich zu Niedriglohnländern rechtfertigt., bei gleichzeitiger Erhöhung der Arbeitsplatzqualität. Um konkurrenzfähig zu bleiben, müssen Firmen sogar hoch be- zahlte Arbeitsplätze schaffen, da die Entwicklung spezifischer und automatisierter Entwicklungsprozesse eine hochwertige Ausbildung voraussetzt. "Qualität hat ihren Preis" ist eine bekannte Aussage. Bei kriti- schen Anwendungen, wie beispielsweise in der Luft- und Raum- fahrt, sind die Entwicklungskosten mindestens um eine Größenord- nung höher als bei anderen Anwendungen, weil sorgfältiges Vorgehen gefordert wird, einschließlich Maßnahmen zum Nachweis der Qualität. Bedeutet dies nun, dass andere Bereiche darauf ver- zichten müssen, wenn sie die Kosten für höhere Qualität nicht über Marktpreise abdecken können? Wir sagen "Nein"! Und diese Aussage gilt prinzipiell für alle Be- reiche. Unser Ziel ist es, die bisher nur unter hohen Kosten zu be- friedigenden Qualitätsansprüche zu akzeptablen Kosten zu erfüllen, und damit die bisher nur in Bereichen wie Luft- und Raumfahrt realisierbare Qualität auch auf anderen Gebieten zu ermöglichen. Dazu sind neue Verfahren und Vorgehensweisen bei der Ent- wicklung notwendig. Die Erfahrung zeigt uns, dass immer dann eine Qualitätssteigerung bei gleichzeitiger Kostensenkung möglich ist, wenn eine neue Technologie eingesetzt wird. Thema dieses Buches ist daher eine Methodik, mit der die gesteckten Ziele erreicht werden können. Die Einführung einer neuen Technologie und die Erschließung breiter Anwendungsbereiche ist nicht einfach. Zunächst muss sie für den industriellen Einsatz reif sein. Diese Reife kann nur durch reale Anwendungen nachgewiesen werden, was in der Regel Aufträge von Anwendern voraussetzt. Dann muss sie auch von den Anwen- dern akzeptiert werden. Die Anwender müssen ihr vertrauen, was in der Regel erfolgreiche Anwendungen voraussetzt. Am Anfang ist es daher schwierig, einen neuen Weg zu beschreiten und durchzuset- zen, weil diese beiden Bedingungen konträr zueinander sind. Von VIII ■ Vorwort ■ ■ der ersten Idee bis zum beherrschbaren Einsatz in der Praxis ist da- her ein langer Weg. Wir werden ausführlich die Verfahren sowie die grundlegenden Konzepte und Strategien beschreiben und die Vorteile durch erfolg- reich abgeschlossene Projekte und Beispiele belegen. Insbesondere werden wir aus unserer Sicht darlegen, warum die beiden folgenden – weithin akzeptierten – Aussagen falsch sind: (cid:120) Software ist teuer, und (cid:120) mangelhafte Software ist ein unvermeidbares Schicksal. In unserem täglichen Leben beobachten wir ständig, dass die Quali- tät von Produkten und Dienstleistungen steigt während Preis und Kosten sinken. Warum soll dies nicht auch für Software gelten? Die Bedeutung von Software in unserem Umfeld nimmt konti- nuierlich zu, wodurch auch die Auswirkungen schlechter Qualität größer werden. Der Bogen spannt sich hierbei von begrenzten, mate- riellen Auswirkungen wie Programmabstürzen, fehlerhafter Funkti- onalität, die „nur“ Zeitverlust und Unkosten verursachen, hin zu sicherheitskritischen, gesundheits- oder lebensgefährdenden Aus- wirkungen beispielsweise bei Anwendungen in der Transport-, Energie- und Medizintechnik, in Luft- und Raumfahrt. DiepotenziellenEinflüssegehenabernochweiter.Diezukünftige Wettbewerbsfähigkeit unserer Wirtschaft erfordert hohe Flexibilität hinsichtlich der Produkteigenschaften, bei kurzer Entwicklungszeit undniedrigenProduktionskosten.Wirtschaftsräume,dieSoftwarezu teuer produzieren, verlieren schon jetzt Marktanteile bzw. Arbeits- plätze, weil die hohen Softwareentwicklungskosten durch Vergabe vonArbeitinsog.Niedriglohnländerverringertwerden. Aus dieser Sicht wird es immer dringlicher, einen Weg aus dieser “Softwarekrise“ aufzuzeigen. Zu der technischen und wirtschaftli- chen Brisanz des Themas kommen damit sozial- und wirtschaftspo- litische Aspekte hinzu. Warum geschieht nun anscheinend nichts Wesentliches, um die- ses Problem in naher Zukunft lösen zu können? Die Antwort ist: es geschieht schon etwas, nur sind die Auswirkungen so gering, dass sie sich kaum oder überhaupt nicht auswirken. Auch fehlen geeigne- te Hilfsmittel, um Fortschritte messen zu können, was zur Folge hat, dass nicht genügend zielgerichtet vorgegangen wird. Die hohen Umsätze, die mit Software bereits heute erzielt wer- den, sagen nichts über die Effizienz der Herstellungsmethoden aus. Ein besserer Indikator dafür ist die Verlagerung von Arbeitsplätzen in Niedriglohnländer. Dieses Verhalten der Wirtschaft zeigt, dass eine technische Lösung für das Kostenproblem offensichtlich noch nicht gefunden wurde. Daher werden Möglichkeiten nichttechni- Vorwort ■ IX ■ ■ scher Art wie Unterschiede im Lohnniveau benutzt, um Wettbe- werbsvorteile zu erhalten. Die heutige Situation im Bereich der Softwareentwicklung ist vergleichbar mit dem Festhalten am Ptolomäischen Weltbild. Durch immer neue Erker versucht man das eigentlich ungeeignete System mit der Realität in Übereinstimmung zu bringen. Damals waren dies die neuen Erkenntnisse der Astronomen, die zu immer neuen “Ver- renkungen“ führten, ohne das Problem grundsätzlich lösen zu kön- nen. Im Bereich der Softwareentwicklung sind es heute neue Anfor- derungen und Qualität, Menge und Komplexität, die zwar zu „hektischen“ Bemühungen fuhren, aber keine befriedigenden Er- gebnisse bringen. Erst ein neuer Ansatz, das Kopernikanische Weltbild, brachte den Durchbruch. Plötzlich war alles einfach und klar, die Komplexität sank drastisch, vorhandene Limitierungen verschwanden, neue An- wendungsfelder wie Schiffsnavigation durch sphärische Geometrie öffneten sich. Wie sieht nun unser neues Weltbild bezüglich der Softwareent- wicklung aus? Die Antwort heißt: Rationalisierung und Automati- sierung. Präziser ausgedrückt: die Beschränkung des Menschen auf die kreativen und handhabbaren Anteile des Herstellungsprozesses von Software. Dies ist eine Vorgehensweise, die seit Ende des 19. Jahrhunderts in anderen Bereichen erfolgreich angewendet wurde und wird. Natürlich wird der Ingenieur nicht völlig entbehrlich werden, aber er wird höherwertige Tätigkeiten übernehmen und den Rechner dazu stärker als bisher als Hilfsmittel nutzen, um bei niedriger Komplexi- tät an der Mensch-Maschine-Schnittstelle große Komplexität des Produktes zu bewältigen. Dieses Ziel ist gegenläufig zum von uns beobachteten Trend, möglichst viel Komplexität handhaben zu wol- len, um eigene Fähigkeiten demonstrieren zu können. Unserer Auffassung und Erfahrung nach ist es aber eine viel grö- ßere Herausforderung, die geforderte Funktionalität in einfacher Weise zu implementieren. Durch die Verringerung der Komplexität an der Schnittstelle zum Produktionsprozess und dem Einsatz eines hinsichtlich Komplexität skalierbaren Produktionsprozesses wird die Herstellung hochkomplexer Systeme beherrschbar. Der Beweis eigener hervorragender Fähigkeiten ist nach wie vor möglich, nur auf einer höheren Abstraktionsebene, bei gleichzeitiger Erfüllung der wirtschaftlichen Randbedingungen. Die kreativen Fähigkeiten der Entwickler rücken in den Vordergrund und werden somit in Relation zum Produktionsaufwand deutlich wertvoller. Aufgabe von Ausbildern und Managern wird es daher sein, den X ■ Vorwort ■ ■ Entwicklern die neuen Möglichkeiten und Anforderungen zu vermit- teln. Ein Beispiel für das geänderte "Weltbild" ist die Vereinheitli- chung von "Entwicklung" und "Wartung". Wir werden zeigen, dass zwischen Entwicklung und Wartung nicht mehr unterschieden wer- den muss, sondern Entwicklung als kontinuierliche Wartung reali- siert werden kann. Durch den Übergang von der handwerklichen zu der industriellen Fertigung wie wir sie aus der Produktion von Massengütern kennen, sinken die Kosten drastisch, und die Qualität steigt entsprechend, die Produktions- bzw. Entwicklungsrisiken sinken. Zwischen solchen mechanischen, chemischen, pharmazeutischen oder lebensmittel- technischen Produktionsweisen – um nur einige typische Felder zu nennen – und der Herstellung von Software gibt es viele Analogien, aber natürlich auch Unterschiede, die vor allem durch den immate- riellen Charakter der Software bedingt sind. Wie wir später erläutern werden, lassen sich aus diesem Unterschied entscheidende Vorteile und Fähigkeiten zugunsten der Softwareentwicklung ableiten. Es wird also notwendig sein, das Software Engineering von der handwerklichen, vorindustriellen Phase auf eine industrielle Vorge- hensweise umzustellen. Ein solcher, von uns als notwendig betrach- teter Übergang stößt üblicherweise zunächst auf Widerspruch, da mit ihm strukturelle Änderungen verbunden sind, die von den Betei- ligten erst akzeptiert werden müssen. Die Einführung einer erfolgsorientierten Softwareentwicklungs- strategie ist nur möglich, wenn Entscheidungsträger wie Manager, Kosten- und Technologieverantwortliche sowie Projektleiter mit Softwareentwicklern kooperieren. Manager müssen sich ihrer Ver- antwortung für die Einführung und erfolgreiche Anwendung effi- zienter Softwareentwicklungsmethoden bewusst sein. Ebenso müs- sen Softwareentwickler wissen, dass sie nur bei Anwendung effizienter Methoden mittel- bis langfristig ihren Arbeitsplatz si- chern. Voraussetzung für die Akzeptanz optimierter Produktionsmetho- den ist die Messbarkeit der Ergebnisse. Der dafür notwendige Ein- satz von Metriken ist weitgehend unbekannt, wird von den aktuellen Methoden und Werkzeugen kaum bzw. nicht unterstützt, oder erfor- dert zuviel Aufwand. Würden Forderungen wie „10 % Produktivi- tätssteigerung pro Jahr“ vorgegeben werden, könnte ihre Umsetzung gar nicht festgestellt werden. Daher bleibt es beim Glauben, mit einer bestimmten Vorgehensweise eine positive Änderung bewirken zu können, weil Beweise für eine erfolgreiche Umsetzung kaum erbracht werden können. Während die Produktionskosten für Hard- ware durch Prozessoptimierung kontinuierlich sinken, bleiben we- Vorwort ■ XI ■ ■