Vorsicht, Zinsen! Softwarequalität und technische Schulden (Matthias Kraaz)

Embed Size (px)

DESCRIPTION

Softwarequalität und technische Schulden - In vielen Zusammenhängen, vom Quellcode eines Systems bis hin zur IT-Landschaft eines Großkonzerns, taucht der Begriff der technischen Schulden auf. Hinter dessen Vielgestaltigkeit steckt die Komplexität von Softwarequalität. (Artikel von Matthias.Kraaz(at)zuehlke.com) iX 9/2012 Kontakt: http://xing.to/kraaz

Text of Vorsicht, Zinsen! Softwarequalität und technische Schulden (Matthias Kraaz)

  • 1. ix.0912.082-087 13.08.12 14:28 Seite 82REPORT | SOFTWAREPROJEKTESoftwarequalitt und technische Schulden Labs [b] schtzt die Kosten zur Besei- tigung der technischen Schulden auf durchschnittlich 3,61US-$ pro Code-Vorsicht, Zinsen! zeile daraus ergibt sich eine Hypothek von gut 1Million Dollar fr eine Appli- kation von 300000 Codezeilen. Kosten entstehenMatthias Kraaz durch Abweichungen Der Standard ISO/IEC25010:2011 [c] definiert Softwarequalitt als den Erfl- lungsgrad ausdrcklich spezifizierter, aber auch unausgesprochener Anforde- rungen der Stakeholder. Ein Qualitts- modell macht diese abstrakte Definition anwendbar. Es definiert eine Auswahl relevanter Qualittsmerkmale wie Wart- barkeit, Sicherheit, Benutzbarkeit oder Benutzerzufriedenheit. Diese Ei- genschaften werden so lange in Teilmerkmale zerlegt, bis dieserVorgang zu direkt messbaren Quali-ttseigenschaften fhrt, sich also eine Metrik fr die Messung angeben lsst. Ein Qualittsmodell definiert also eine auf Metriken aufbauende Hierarchie von Merkmalen und macht so Softwarequa- litt messbar (siehe Abbildung1). Fr verschiedene Zwecke gibt es unter- schiedliche Qualittsmodelle. ISO25010 definiert zwei: eins fr die Produkt- und eins fr die Nutzungsqualitt. Erstere setzt sich auf oberster Ebene aus den Qualittsmerkmalen funktionale Eig- nung, Effizienz, Kompatibilitt, Benutz- barkeit, Zuverlssigkeit, Sicherheit, Wart- barkeit und bertragbarkeit zusammen.In vielen Zusammenhngen, vom Quellcode eines Systems bisDas Modell betrachtet also Eigenschaf- ten der Software, sowohl interne wie diehin zur IT-Landschaft eines Grokonzerns, taucht der Begriff Wartbarkeit des Quellcodes als auch vonder technischen Schulden auf. Hinter dessen Vielgestaltigkeitauen sichtbare wie die Efzienz. Die Nutzungsqualitt hingegen setztsteckt die Komplexitt von Softwarequalitt. den Fokus darauf, welchen Wert die Software fr die Nutzer hat. Auf obers- ter Ebene stehen die Qualittsmerkmale U nter dem Druck eines nahenden Re-vollen Preis fr die Features bezahlt. Die-Effektivitt, Effizienz, Benutzerzufrie- lease-Termins implementieren Ent-sen Kredit mssen sie aber so schnelldenheit, Risikofreiheit und Abdeckung wickler Features zeitweise schnel- wie mglich zurckzahlen, sonst entste-der Nutzungsumgebungen. Bei unpassen-ler als gewhnlich, indem sie auf gutehen hohe Zinsen (siehe Onlinequellen der Umgebung oder aufgrund des vern-Angewohnheiten wie Unit Tests, Kom- [a]). Mittlerweile ist der Begriff verbrei-derten Fokus kann trotz hervorragendermentierung, Refaktorisierung et ceteratet und benennt allgemein eine Abwei-Produktqualitt die Nutzungsqualitt un-verzichten. Das kann den Eindruck erwe- chung von der geforderten Softwarequa- gengend sein.cken, dass die ursprngliche Schtzunglitt, deren Nicht-Beseitigung KostenISO25012 [d] bietet ein weiteres Mo-des Zeitaufwands durch das Team hher verursacht.dell fr Datenqualitt, Modelle fr Code-als ntig war. qualitt nden weiter unten Erwhnung. Um dieses Bild zu korrigieren, hatFr jedes der genannten MerkmaleWard Cunningham den Begriff der tech- Vom Kostentreiberlassen sich zahlreiche Beispiele nennen,nischen Schulden (technical debt) einge-zur Hypothek wie durch eine Abweichung von der ge-fhrt: Entwickler haben den gewnschtenforderten Qualitt Kosten entstehen:Funktionsumfang nicht mit weniger Auf-Technische Schulden finden vermehrtUnzureichende Wartbarkeit verteuertwand bekommen sie haben einen Kre-Beachtung als Kostentreiber. Der aktu- nderungen. Sie verursachen einen h-dit aufgenommen und von diesem denelle CRASH-Report des CAST Researchheren Aufwand, und Entwickler machen82iX 9/2012 Copyright by Heise Zeitschriften VerlagFA-238, 2012

2. bei ihrer Umsetzung mehr Fehler. Ab ei- Qualittsmerkmal Qualittsmerkmalner kritischen Schwelle lst jede Modi-fikation am System eine Lawine vonFehlern aus, die Kosten steigen ins Un-Index Index Indexermessliche.Schlechte Benutzbarkeit erhht denAufwand fr die Anwender und erzeugtMetrikMetrikMetrik MetrikKosten fr den Support.Aufgrund mangelnder Effizienz ent- Qualittsmodelle leiten Qualittsmerk-stehen Kosten fr mehr CPU-Leistungmale von direkt messbaren Eigenschaf-oder Speicherplatz.ten (Metriken) ab, optional ber Unter-Nach einem erfolgreichen Einbruchmerkmale oder Indizes (Abb.1).ber Sicherheitslcken muss die Soft-ware verbessert werden. Zudem gehendards, weil man schlichtweg die Vorteilewhrend der Stilllegung Umstze ver- ihrer Einhaltung nicht einsehen mchte.loren und Ausgleichszahlungen an dieDie bewusste Entscheidung zur Auf-Nutzer werden fllig.nahme technischer Schulden kann aufBei der Betrachtung einer IT-Land- der einen Ebene einer Organisation be-schaft tritt die Produktqualitt der einzel- kannt und gleichzeitig auf anderen Ebe-nen Systeme in den Hintergrund. Statt- nen unbekannt sein oder dort auf hef-dessen rcken die Nutzungsqualitt der tigen Widerstand stoen. Beispiele sindAnwendungen sowie die Produktqualittder Versto gegen die IT-Governancedes Gesamtsystems in den Fokus:(siehe unten) durch einen Abteilungslei-Eine Anwendung wird mit einer Mes- ter, der stattdessen seine eigenen Zielesaging-Middleware realisiert. Die Pro- verfolgt, oder die heimliche Aufnahmeduktqualitt ist hervorragend. Als einzige technischer Schulden, um Abgabeter-ihrer Art in der IT-Landschaft verursachtmine halten zu knnen.sie jedoch unverhltnismig hohe Li-zenzkosten und erfordert den Aufbau zu-stzlicher Kompetenzen im Rechen-Softwarequalittzentrum. Effizienz und Benutzbarkeit imals treibender FaktorSinne der Nutzungsqualitt sind unge-ngend.Auch unbewusst knnen EntwicklerDie einzelnen Anwendungen haben frtechnische Schulden aufnehmen, zumsich genommen eine gute Produktqua-Beispiel weil sie Best Practices oder Un-litt. Sie bilden jedoch miteinander die ternehmensstandards nicht kennen odermaximale Menge von n2-n Schnitt- sich nicht berwachte Qualittsmerkmalestellen, das Gesamtsystem ist schlecht schleichend verschlechtern. Die Fusionwartbar. von Firmen durch die Kombination meh- rerer IT-Landschaften kann ebenfalls zu technischen Schulden fhren ob nunWie man technische bewusst oder unbewusst. Groe Konzer-Schulden aufnimmtne, die viele Zukufe ttigen, kmpfen permanent mit der Homogenisierung undEin Projektteam kann technische Schul- Integration ihrer IT-Systeme. Weitere Ur-den ganz bewusst und aus gutem Grundesachen sind beispielsweise der Kauf einesaufnehmen, um es schneller auf den Off-The-Shelf-Produkts oder eine nachMarkt zu bringen oder zeitweise Entwick- auen vergebene Entwicklung.lungskosten zu senken. Weniger gut be- Whrend der Softwareentwicklunggrndet ist das bewusste Ignorieren vontritt wohl am hufigsten die schleichen-Best Practices oder Unternehmensstan-de Verschlechterung nicht berwachterx-TRACT G Der Begriff der technischen Schulden bezeichnet Abweichungen von der geforderten Softwarequalitt, durch die Kosten entstehen. G Um diese Schulden zu beseitigen, muss man Softwarequalitt messen; verschiedene Qualittsmodelle knnen Entwickler dabei untersttzen. G Mit Werkzeugen lsst sich zudem die Codebasis kontinuierlich berwachen, um technische Schulden mglichst gar nicht erst entstehen zu lassen.iX 9/2012 83 Copyright by Heise Zeitschriften Verlag 3. ix.0912.082-087 13.08.12 14:28 Seite 84REPORT | SOFTWAREPROJEKTEQualittsmerkmale sowie die bewusstebeispielsweise gilt es, allmhlich das rich- Vor- und Nachteile (siehe David Chap-Aufnahme technischer Schulden zweckstige Ma fr Testabdeckung, Kommen-pell [h]).Einhaltung von Abgabeterminen auf. Oft- tierung, Verstndlichkeit des Codes und Auf Basis bekannter Kosten kann dermals sind dem Projektteam diese Schul-so weiter zu nden, das den gewnschtenSponsor sowohl die expliziten als auchden zuerst bewusst, dem Sponsor der Ausgleich zwischen Kosten, Entwick-die angenommenen Anforderungen anEntwicklung hingegen zunchst unbe- lungsgeschwindigkeit, Fehlerhugkeit et die Softwarequalitt nach unten oderkannt oder nicht verstndlich.cetera schafft. Domnenspezifisch kn- oben verndern. Durch eine Senkung derTechnische Schulden definieren sich nen konkrete Mindestanforderungen an geforderten Qualitt kann er technischeber die Anforderungen an die Soft- die Softwarequalitt in Form regulatori- Schulden wegdenieren. Die Folgekostenwarequalitt. Je nach Lage der Anforde- scher Vorgaben existieren, zum Beispielverschwinden dadurch natrlich nicht.rungen kann dieselbe Software unter-bezglich der Testabdeckung gem derAus den zu vermeidenden Kosten derschiedlich stark belastet sein. Senkt man RTCA-Empfehlung DO-178C [f]. technischen Schulden werden schlichtwegdie Anforderungen, werden aus Kosten,Die Bewertung und Verbesserung derakzeptierte Kosten im Laufe des normalendie daraus entstehen, dass man Mngel Softwarequalitt ist der analytischenSoftware-Lebenszyklus.nicht beseitigt, akzeptierte Gesamtbe-Qualittssicherung zuzurechnen. Kon-Bei der Abschtzung der Kosten, dietriebskosten (Total Costs of Ownership) struktive Qualittssicherung setzt an, durch Beseitigung und Nicht-Beseiti-und umgekehrt.bevor technische Schulden entstehen. gung entstehen, kann es nicht um einenDie Ermittlung der AnforderungenDurch Weiterbildung und Coaching wer-100%ig korrekten Wert gehen. Wichti-birgt im schlimmsten Fall die ganze den Mitarbeiter untersttzt, bessere Ent-ger ist, die richtige Grenordnung zuKomplexitt des Requirements Enginee- scheidungen zu treffen und technischetreffen und das Vorgehen bei der Be-ring nichtfunktionaler Anforderungen: Schulden nicht aus Unwissenheit aufzu- rechnung und den Schtzfehler offenzu-die Aufdeckung von Lcken, etwa auf-nehmen. Eine IT-Governance [g] deniertlegen, um so zu erreichen, dass der Spon-grund unausgesprochener Erwartungen,die Verantwortlichkeit fr die strategischesor der Kostenschtzung vertraut. Diedas Identifizieren widersprchlicherWeiterentwicklung der IT und legt damitBerechnung der Beseitigungskosten istAnforderungen inklusive der Analyse fest, wer fr Entscheidungen ber dieein bliches Verfahren. Eine relativ neueund Auflsung von Kompromissen (sie-Aufn