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

904 views

Published on

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
904
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
21
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

  1. 1. ix.0912.082-087 13.08.12 14:28 Seite 82 REPORT | SOFTWAREPROJEKTE Softwarequalität und technische Schulden Labs [b] schätzt die Kosten zur Besei- tigung der technischen Schulden auf durchschnittlich 3,61ˇUS-$ pro Code- Vorsicht, Zinsen! zeile – daraus ergibt sich eine Hypothek von gut 1ˇMillion Dollar für eine Appli- kation von 300ˇ000 Codezeilen. Kosten entstehen Matthias Kraaz durch Abweichungen Der Standard ISO/IECˇ25010:2011 [c] definiert Softwarequalität als den Erfül- lungsgrad ausdrücklich spezifizierter, aber auch unausgesprochener Anforde- rungen der Stakeholder. Ein Qualitäts- modell macht diese abstrakte Definition anwendbar. Es definiert eine Auswahl relevanter Qualitätsmerkmale wie Wart- barkeit, Sicherheit, Benutzbarkeit oder Benutzerzufriedenheit. Diese Ei- genschaften werden so lange in Teilmerkmale zerlegt, bis dieser Vorgang zu direkt messbaren Quali- tätseigenschaften führt, sich also eine Metrik für die Messung angeben lässt. Ein Qualitätsmodell definiert also eine auf Metriken aufbauende Hierarchie von Merkmalen und macht so Softwarequa- lität messbar (siehe Abbildungˇ1). Für verschiedene Zwecke gibt es unter- schiedliche Qualitätsmodelle. ISOˇ25010 definiert zwei: eins für die Produkt- und eins für die Nutzungsqualität. Erstere setzt sich auf oberster Ebene aus den Qualitätsmerkmalen funktionale Eig- nung, Effizienz, Kompatibilität, Benutz- barkeit, Zuverlässigkeit, Sicherheit, Wart- barkeit und Übertragbarkeit zusammen. In vielen Zusammenhängen, vom Quellcode eines Systems bis Das Modell betrachtet also Eigenschaf- ten der Software, sowohl interne wie die hin zur IT-Landschaft eines Großkonzerns, taucht der Begriff Wartbarkeit des Quellcodes als auch von der technischen Schulden auf. Hinter dessen Vielgestaltigkeit außen sichtbare wie die Effizienz. Die Nutzungsqualität hingegen setzt steckt die Komplexität von Softwarequalität. den Fokus darauf, welchen Wert die Software für die Nutzer hat. Auf obers- ter Ebene stehen die Qualitätsmerkmale U nter dem Druck eines nahenden Re- vollen Preis für die Features bezahlt. Die- Effektivität, Effizienz, Benutzerzufrie- lease-Termins implementieren Ent- sen Kredit müssen sie aber so schnell denheit, Risikofreiheit und Abdeckung wickler Features zeitweise schnel- wie möglich zurückzahlen, sonst entste- der Nutzungsumgebungen. Bei unpassen- ler als gewöhnlich, indem sie auf gute hen hohe Zinsen (siehe Onlinequellen der Umgebung oder aufgrund des verän- Angewohnheiten wie Unit Tests, Kom- [a]). Mittlerweile ist der Begriff verbrei- derten Fokus kann trotz hervorragender mentierung, Refaktorisierung et cetera tet und benennt allgemein eine Abwei- Produktqualität die Nutzungsqualität un- verzichten. Das kann den Eindruck erwe- chung von der geforderten Softwarequa- genügend sein. cken, dass die ursprüngliche Schätzung lität, deren Nicht-Beseitigung Kosten ISOˇ25012 [d] bietet ein weiteres Mo- des Zeitaufwands durch das Team höher verursacht. dell für Datenqualität, Modelle für Code- als nötig war. qualität finden weiter unten Erwähnung. Um dieses Bild zu korrigieren, hat Für jedes der genannten Merkmale Ward Cunningham den Begriff der tech- Vom Kostentreiber lassen sich zahlreiche Beispiele nennen, nischen Schulden (technical debt) einge- zur Hypothek wie durch eine Abweichung von der ge- führt: Entwickler haben den gewünschten forderten Qualität Kosten entstehen: Funktionsumfang nicht mit weniger Auf- Technische Schulden finden vermehrt –ˇUnzureichende Wartbarkeit verteuert wand bekommen – sie haben einen Kre- Beachtung als Kostentreiber. Der aktu- Änderungen. Sie verursachen einen hö- dit aufgenommen und von diesem den elle CRASH-Report des CAST Research heren Aufwand, und Entwickler machen 82 iX 9/2012 © Copyright by Heise Zeitschriften Verlag FA-238, 2012
  2. 2. bei ihrer Umsetzung mehr Fehler. Ab ei- Qualitätsmerkmal Qualitätsmerkmalner kritischen Schwelle löst jede Modi-fikation am System eine Lawine vonFehlern aus, die Kosten steigen ins Un- Index Index Indexermessliche.–ˇSchlechte Benutzbarkeit erhöht denAufwand für die Anwender und erzeugt Metrik Metrik Metrik MetrikKosten für den Support.–ˇAufgrund mangelnder Effizienz ent- Qualitätsmodelle leiten Qualitätsmerk-stehen Kosten für mehr CPU-Leistung male von direkt messbaren Eigenschaf-oder Speicherplatz. ten (Metriken) ab, optional über Unter-–ˇNach einem erfolgreichen Einbruch merkmale oder Indizes (Abb.ˇ1).über Sicherheitslücken muss die Soft-ware verbessert werden. Zudem gehen dards, weil man schlichtweg die Vorteilewährend der Stilllegung Umsätze ver- ihrer Einhaltung nicht einsehen möchte.loren und Ausgleichszahlungen an die Die bewusste Entscheidung zur Auf-Nutzer werden fällig. nahme technischer Schulden kann auf Bei der Betrachtung einer IT-Land- der einen Ebene einer Organisation be-schaft tritt die Produktqualität der einzel- kannt und gleichzeitig auf anderen Ebe-nen Systeme in den Hintergrund. Statt- nen unbekannt sein oder dort auf hef-dessen rücken die Nutzungsqualität der tigen Widerstand stoßen. Beispiele sindAnwendungen sowie die Produktqualität der 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 Aufnahmeduktqualität ist hervorragend. Als einzige technischer Schulden, um Abgabeter-ihrer Art in der IT-Landschaft verursacht mine halten zu können.sie jedoch unverhältnismäßig hohe Li-zenzkosten und erfordert den Aufbau zu-sätzlicher Kompetenzen im Rechen- Softwarequalitätzentrum. Effizienz und Benutzbarkeit im als treibender FaktorSinne der Nutzungsqualität sind unge-nügend. Auch unbewusst können Entwickler–ˇDie einzelnen Anwendungen haben für technische Schulden aufnehmen, zumsich genommen eine gute Produktqua- Beispiel weil sie Best Practices oder Un-lität. Sie bilden jedoch miteinander die ternehmensstandards nicht kennen odermaximale Menge von n2-n Schnitt- sich nicht überwachte Qualitätsmerkmalestellen, das Gesamtsystem ist schlecht schleichend verschlechtern. Die Fusionwartbar. von Firmen durch die Kombination meh- rerer IT-Landschaften kann ebenfalls zu technischen Schulden führen – ob nunWie man technische bewusst oder unbewusst. Große Konzer-Schulden aufnimmt ne, die viele Zukäufe tätigen, kämpfen permanent mit der Homogenisierung undEin Projektteam kann technische Schul- Integration ihrer IT-Systeme. Weitere Ur-den ganz bewusst und aus gutem Grunde sachen sind beispielsweise der Kauf einesaufnehmen, um es schneller auf den Off-The-Shelf-Produkts oder eine nachMarkt zu bringen oder zeitweise Entwick- außen vergebene Entwicklung.lungskosten zu senken. Weniger gut be- Während der Softwareentwicklunggründet ist das bewusste Ignorieren von tritt wohl am häufigsten die schleichen-Best Practices oder Unternehmensstan- de Verschlechterung nicht überwachter x-TRACT G Der Begriff der technischen Schulden bezeichnet Abweichungen von der geforderten Softwarequalität, durch die Kosten entstehen. G Um diese Schulden zu beseitigen, muss man Softwarequalität messen; verschiedene Qualitätsmodelle können Entwickler dabei unterstützen. G Mit Werkzeugen lässt sich zudem die Codebasis kontinuierlich überwachen, um technische Schulden möglichst gar nicht erst entstehen zu lassen.iX 9/2012 83 © Copyright by Heise Zeitschriften Verlag
  3. 3. ix.0912.082-087 13.08.12 14:28 Seite 84 REPORT | SOFTWAREPROJEKTE Qualitätsmerkmale sowie die bewusste beispielsweise gilt es, allmählich das rich- Vor- und Nachteile (siehe David Chap- Aufnahme technischer Schulden zwecks tige Maß für Testabdeckung, Kommen- pell [h]). Einhaltung von Abgabeterminen auf. Oft- tierung, Verständlichkeit des Codes und Auf Basis bekannter Kosten kann der mals sind dem Projektteam diese Schul- so weiter zu finden, das den gewünschten Sponsor sowohl die expliziten als auch den zuerst bewusst, dem Sponsor der Ausgleich zwischen Kosten, Entwick- die angenommenen Anforderungen an Entwicklung hingegen zunächst unbe- lungsgeschwindigkeit, Fehlerhäufigkeit et die Softwarequalität nach unten oder kannt oder nicht verständlich. cetera schafft. Domänenspezifisch kön- oben verändern. Durch eine Senkung der Technische Schulden definieren sich nen konkrete Mindestanforderungen an geforderten Qualität kann er technische über die Anforderungen an die Soft- die Softwarequalität in Form regulatori- Schulden wegdefinieren. Die Folgekosten warequalität. Je nach Lage der Anforde- scher Vorgaben existieren, zum Beispiel verschwinden dadurch natürlich nicht. rungen kann dieselbe Software unter- bezüglich der Testabdeckung gemäß der Aus den zu vermeidenden Kosten der schiedlich stark belastet sein. Senkt man RTCA-Empfehlung DO-178C [f]. technischen Schulden werden schlichtweg die Anforderungen, werden aus Kosten, Die Bewertung und Verbesserung der akzeptierte Kosten im Laufe des normalen die daraus entstehen, dass man Mängel Softwarequalität ist der analytischen Software-Lebenszyklus. nicht beseitigt, akzeptierte Gesamtbe- Qualitätssicherung zuzurechnen. Kon- Bei der Abschätzung der Kosten, die triebskosten (Total Costs of Ownership) struktive Qualitätssicherung setzt an, durch Beseitigung und Nicht-Beseiti- und umgekehrt. bevor technische Schulden entstehen. gung entstehen, kann es nicht um einen Die Ermittlung der Anforderungen Durch Weiterbildung und Coaching wer- 100%ig korrekten Wert gehen. Wichti- birgt im schlimmsten Fall die ganze den Mitarbeiter unterstützt, bessere Ent- ger ist, die richtige Größenordnung zu Komplexität des Requirements Enginee- scheidungen zu treffen und technische treffen und das Vorgehen bei der Be- ring nichtfunktionaler Anforderungen: Schulden nicht aus Unwissenheit aufzu- rechnung und den Schätzfehler offenzu- –ˇdie Aufdeckung von Lücken, etwa auf- nehmen. Eine IT-Governance [g] definiert legen, um so zu erreichen, dass der Spon- grund unausgesprochener Erwartungen, die Verantwortlichkeit für die strategische sor der Kostenschätzung vertraut. Die –ˇdas Identifizieren widersprüchlicher Weiterentwicklung der IT und legt damit Berechnung der Beseitigungskosten ist Anforderungen inklusive der Analyse fest, wer für Entscheidungen über die ein übliches Verfahren. Eine relativ neue und Auflösung von Kompromissen (sie- Aufnahme und Beseitigung technischer Forderung aus der agilen Community he auch die Architecture Tradeoff Ana- Schulden auf der Ebene der gesamten hingegen ist es, auch die Kosten zu be- lysis Method der Carnegie-Mellon-Uni- IT-Landschaft zuständig ist. rücksichtigen, die sich ergeben, wenn versität [e]) sowie die man die technische Schulden nicht be- –ˇAuflösung von Interessenskonflikten seitigt. Dieser Zustand wird als Moneta- zwischen den Beteiligten. Umdefinieren kann risierung der technischen Schulden be- Im Falle einer IT-Landschaft gehören Schulden verstecken zeichnet (siehe dazu Isral Gat [i]). zu den Beteiligten nicht nur die direkten Viele Fragen, die sich bei der Pflege Benutzer der Software, sondern auch das Nur wenn sowohl die Kosten, die ent- von IT-Landschaften stellen, sind ver- mit ihrem Betrieb betraute Personal im stehen, wenn man technische Schulden klausulierte Aufforderungen zur Mone- Rechenzentrum sowie alle verantwort- beseitigt, als auch die, wenn man dies tarisierung der technischen Schulden. lichen Entscheidungsträger. Eine voll- unterlässt, bekannt sind, können die Ver- Zum Beispiel: „Können wir noch zwei ständige und messbare Spezifikation der antwortlichen eine informierte Entschei- Jahre mit der Ablösung dieses Systems Anforderungen an die Softwarequalität dung treffen, ob und wie schnell ein warten?“ Hier geht es darum, die Kosten findet man daher selten. Projektteam technische Schulden ab- zu schätzen, die in den nächsten zwei Stattdessen muss man sich gemein- bauen muss. Diese Entscheidung steht Jahren aufgrund der Qualitätsprobleme sam an die Anforderungen herantasten, üblicherweise dem Sponsor der Ent- voraussichtlich entstehen werden. Oder: die den teilweise unausgesprochenen Er- wicklung zu. Er hat dabei nicht nur die „Sollten wir dieses System weiterpfle- wartungen aller Beteiligten am ehesten obigen Kosten im Blick, sondern auch gen oder ablösen?“ Diese Frage lässt entsprechen. Während der Entwicklung sonstige sich ergebende wirtschaftliche sich ebenfalls durch eine Schätzung der erhöhten Pflegekosten und dem Ver- gleich mit dem pekuniären Aufwand für die Neuentwicklung beantworten. Qualitätsmodelle als Spürhunde im Code Als der Begriff der technischen Schul- den geprägt wurde, kam gleichzeitig die Empfehlung auf, eine Liste zu führen, in der jede Abweichung vermerkt wird. An dieser Liste sollte sich die Höhe der technischen Schulden ablesen lassen. Aufgrund der vielfältigen Modalitäten bei der Aufnahme solcher Schulden ist eine derartige Liste meistens nicht ver- Qualitätsmanagement-Werkzeuge wie Sonar geben schnell einen Überblick über die fügbar. Stattdessen muss ein Projekt- technischen Schulden (Abb.ˇ2). team Abweichungen von der geforderten 84 iX 9/2012 © Copyright by Heise Zeitschriften Verlag
  4. 4. SQALE sieht auch die automatisierte Berechnung der Kosten zur Beseitigung dertechnischen Schulden vor, hier am Beispiel von Sonar (Abb.ˇ3).Softwarequalität im Nachhinein identifi- down: Der Tester kann Abweichungenzieren, beispielsweise mit Reviews. Ge- von der geforderten Softwarequalitätgenstand eines Review kann Quellcode, entlang der Hierarchie von Qualitätsin-ein Dokument zur Softwarearchitektur dizes auf die Verletzung einer Metrik zu-oder die Beschreibung einer IT-Land- rückverfolgen, anstatt sich entlang derschaft sein. Codestruktur zu bewegen. Beide Metho- Für die Codebasis eines einzelnen den des Drill-down lassen sich kombi-Systems, also vor allem während der nieren.Softwareentwicklung, ist eine Analyse Im Folgenden wird als Beispiel dasmit Qualitätsmanagement-Werkzeugen Qualitätsmodell SQALE (Software Qua-wie Sonar [j] genauer, aktueller und lity Assessment based on Lifecycle Ex-vollständiger als die manuelle. Anhand pectations, [k]) betrachtet, das dabei un-objektiver Metriken prüft das Tool die terstützt,gesamte Codebasis. So kann es nicht – genau zu beschreiben, worin die tech-passieren, dass ausreichend guter Code nischen Schulden besteht, undversehentlich auf der Liste landet oder – sowohl die Kosten für deren Beseiti-der Prüfer Abweichungen übersieht. Die gungErgebnisse der Analyse werden aggre- – als auch die für ihre Nicht-Beseitigunggiert, sodass sofort die Gesamtgröße der zu berechnen.technischen Schulden ersichtlich ist SQALE hat den Anspruch, möglichst(Abbildungˇ2). Per Drill-down lässt sich objektiv, genau, reproduzierbar und vorschnell herausfinden, welche Codeteile allem automatisierbar zu sein. Die Be-in besonderem Maße zu den technischen wertung von Code gemäß dem Quali-Schulden beitragen. tätsmodell soll vollständig über ein Pro- gramm erfolgen. Das Modell betrachtet auf oberster Ebene folgende Merkmale:Manuelle Ergänzungen Wiederverwendbarkeit, Übertragbarkeit,des Automatismus Wartbarkeit, Sicherheit, Effizienz, Än- derbarkeit, Zuverlässigkeit und Testbar-Eine manuell gepflegte Liste kann als keit. Mittlerweile implementieren meh-Ergänzung der automatischen Analyse rere Produkte SQALE, beispielsweisedienen, da sich manche Abweichungen gibt es auch ein Plug-in für Sonar.automatisiert nur schwer finden lassen.Zudem kann man das Ergebnis der auto-matischen Analyse durch den Vergleich Wartbarkeit ist nurmit der Liste auf Plausibilität prüfen. eins der Qualitätsmerkmale Um aus der riesigen Zahl von Metri-ken, die ein solches Werkzeug messen Weitere Modelle für Codequalität sowiekann, die Codequalität abzuleiten, benö- entsprechende Produkte stehen unter an-tigt man wieder ein Modell. Die Kombi- derem mit SQUALE (Software Qualitynation von Metriken zu Qualitätsmerk- Enhancement) [l] und Qualixo [m] zurmalen erleichtert auch das Aufspüren Verfügung. Das SQUALE-Projekt stelltvon Hot Spots, also besonders schlech- neben dem Qualitätsmodell eine Open-ten Codeteilen. Ein Modell ermöglicht Source-Implementierung für verschiede-außerdem eine weitere Art von Drill- ne Programmiersprachen bereit.iX 9/2012 85 © Copyright by Heise Zeitschriften Verlag
  5. 5. ix.0912.082-087 13.08.12 14:28 Seite 86 REPORT | SOFTWAREPROJEKTE In der Praxis wird Codequalität gerne tion eingebürgert. Continuous Inspection bedingungen lohnt sich dennoch (siehe mit guter Wartbarkeit gleichgesetzt. Die- sollte ein Qualitätsmodell wie SQALE Erik Hegemann [n]). se Einschränkung auf ein Qualitätsmerk- verwenden, um die gemessenen Metri- SQALE wendet die entsprechende mal verengt den Fokus – meist ungewollt ken nicht nur über die Codestruktur, Kostenfunktion auf alle Abweichungen und mit dem Resultat, dass man Mängel sondern auch zu übergeordneten Quali- an. Beispielsweise wird die Gesamtzahl im Code übersieht. Teilweise werden tätsmerkmalen zu aggregieren. aller duplizierten Zeilen sowie die An- auch beliebige unerledigte Aufgaben den SQALE sieht die automatisierte Be- zahl aller nicht abgedeckten Bedingun- technischen Schulden zugerechnet. So- rechnung der Kosten zur Beseitigung gen mit dem jeweiligen Faktor multipli- fern diese die Softwarequalität nicht be- der technischen Schulden vor. Diese ziert. Die Summe der Ergebnisse ergibt rühren, entstehen dem Unternehmen Kosten ergeben sich aus der Menge der den Gesamtaufwand für die Beseitigung aber keine Kosten durch ihre Nicht-Be- Abweichungen und dem anfallenden der technischen Schulden (siehe Abbil- seitigung – es werden keine „Zinsen“ Aufwand, um eine einzelne zu beseiti- dungˇ3). fällig. Gleichermaßen entsprechen Ab- gen, beispielsweise die zu niedrige Test- Wird eine Abweichung von der gefor- weichungen von dem, was individuelle abdeckung einer Klasse oder die zu hohe derten Softwarequalität nicht beseitigt, Entwickler als ästhetisch empfinden, Komplexität einer Funktion. verursacht sie Kosten. Die Wirkung einer per se nicht den Kriterien für technische Dazu muss der Anwender zu jeder Art Abweichung ist stark kontextabhängig. Schulden. von Abweichung eine Funktion festlegen, Je nach Art der Software und Situation die in jedem Einzelfall die Kosten ermit- der Entwicklung und des Unternehmens telt, die bei ihrer Beseitigung entstehen. können beispielsweise Sicherheitslücken, Kosten der Schulden Eine solche Funktion kann auch den reduzierte Wartbarkeit und schlechte Ef- automatisiert berechnen Kontext der Abweichung berücksichti- fizienz unterschiedlich hohe Kosten ver- gen. Beispiele sind Funktionen zum Be- ursachen. Die durch reduzierte Wart- Sobald die Bewertung der Softwarequa- rechnen der Kosten, die beim Entfernen barkeit anfallenden beispielsweise lassen lität vollständig automatisiert ist, lässt einer duplizierten Zeile anfallen, oder die sich abschätzen, wenn man erfahrene Ent- sie sich beliebig oft durchführen. Damit ein Unit Test verursacht, wenn er um eine wicklern nach dem Faktor fragt, um den kann man jede Verschlechterung sofort noch nicht abgedeckte Bedingung erwei- der Aufwand für Änderungen durch die feststellen, auf ihre Ursache zurückver- tert wird. Meistens reicht ein simpler technischen Schulden gestiegen ist. Alter- folgen und – falls ungewollt – korrigie- Faktor als Funktion. Dafür sind Richt- nativ kann man die optimistischen Schät- ren. Für diese permanente Überwachung werte verfügbar, die in der Regel bereits zungen weniger erfahrener Entwickler mit hat sich in Anlehnung an Continuous In- gute Ergebnisse liefern. Eine allmähliche dem tatsächlichen Aufwand für Änderun- tegration der Begriff Continuous Inspec- Anpassung an die eigenen Entwicklungs- gen plus nachfolgenden Bug Fixes ver- gleichen. Je nach Qualitätsmerkmal ist eine Schätzung der Kosten schwierig, be- Onlinequellen sonders dann, wenn in einer IT-Land- schaft die Auswirkung auf andere Anwen- [a] Ward Cunningham et al.; Technical Debt [g] IT-Governance dungen beachtet werden muss. c2.com/cgi/wiki?TechnicalDebt de.wikipedia.org/wiki/IT-Governance [b] CAST Research Labs; The Crash Report [h] David Chappell; The Three Aspects of 2011/2012 Software Quality Beseitigen www.castsoftware.com/resources/ cast-research-labs davidchappell.com/writing/white_papers/ oder nicht beseitigen The_Three_Aspects_of_Software_Quali [c] ISO/IEC 25010:2011; Systems and soft- ty_v1.0-Chappell.pdf Seit der Version 1.0 berechnet SQALE ware engineering – Systems and software [i] Israel Gat; Technical Debt on Your die Kosten der Nicht-Beseitigung analog Quality Requirements and Evaluation Balance Sheet zu denen, die bei der Beseitigung anfal- (SQuaRE) – System and software quality theagileexecutive.com/2009/09/29/ len. Auch in diesem Fall definiert der models technical-debt-on-your-balance-sheet/ Qualitätsprüfer für jede Art von Abwei- www.iso.org/iso/iso_catalogue/catalogue_ [j] Sonar chung eine Funktion, die in diesem Fall tc/catalogue_detail.htm?csnumber=35733 sonarsource.org aber die Kosten der Nicht-Beseitigung er- [d] ISO/IEC 25012:2008; Software mittelt. Diese Kostenfunktionen werden engineering – Software product Quality [k] SQALE (Software Quality Assessment auf alle entsprechenden Abweichungen Requirements and Evaluation (SQuaRE) – based on Lifecycle Expectations) angewendet. Die Summer der einzelnen Data quality model sqale.org Ergebnisse ergibt die Gesamtkosten der www.iso.org/iso/iso_catalogue/catalogue_ [l] SQUALE (Software Quality Enhancement) technischen Schulden. tc/catalogue_detail.htm?csnumber=35736 squale.org Abzuschätzen, wie sich eine nicht be- [e] Software Engineering Institute Carnegie [m] Qualixo seitigte Abweichung auswirkt, wird Mellon; Architecture Tradeoff Analysis www.qualixo.com durch SQALE nicht einfacher, sondern Method durch die obligatorische Kostenfunktion www.sei.cmu.edu/architecture/tools/ [n] Erik Hegeman; On the Quality of eher schwieriger. Da die Wirkung tech- Quality Models evaluate/atam.cfm nischer Schulden stark kontextabhängig fmt.cs.utwente.nl/files/sprojects/90.pdf [f] RTCA; DO-178C; Software Considerations ist, kann es keine übertragbaren Richt- in Airborne Systems and Equipment [o] Thom Holwerda; WTFs/m werte für diese Funktionen geben. Der Certification www.osnews.com/story/19266/ Lohn für die Mühe besteht in der auto- www.rtca.org/ WTFs_m matisierten Berechnung der anfallenden Kosten. 86 iX 9/2012 © Copyright by Heise Zeitschriften Verlag
  6. 6. Möchte man die Ergebnisse von Engineering aus diesem System gewin-SQALE nur verwenden, um die Besei- nen oder Teile des alten Codes wieder-tigung von Abweichungen nach ihrer verwenden soll.Wirkung zu priorisieren, kann man sichdie Sache erleichtern. Dann reicht esaus, wenn die Kostenfunktionen Ver- Fazithältniszahlen statt absoluter Werte lie-fern. Als technische Schulden bezeichnet man Der zügigste Abbau technischer Kosten verursachende Abweichungen vonSchulden erfolgt, wenn sich das gesamte der geforderten Softwarequalität. SowohlEntwicklungsteam für eine bestimmte die Kosten für deren Beseitigung als auchZeitdauer auf deren Beseitigung konzen- die von den Abweichungen verursachtentriert. Vorab sollte das Team die konkre- Kosten muss ein Entwicklerteam bezif-ten Maßnahmen und die Zielwerte für fern, um fundiert über die Beseitigungdie zu verbessernden Metriken festlegen technischer Schulden entscheiden zuund priorisieren, am besten anhand einer können.automatischen Analyse der Codebasis, Die Operationalisierung von Soft-damit es keinen Aufwand auf weniger warequalität erfolgt durch ein Qualitäts-wichtige Abweichungen oder auf die modell, dessen Wahl vom Fokus der Be-Übererfüllung der Qualitätsanforderungen trachtung abhängt. ISOˇ25010 definiertverschwendet. Die Priorisierung sollte zwei Modelle für Produkt- und Nut-entsprechend den Kosten der Nicht-Be- zungsqualität. Für das Assessment einerseitigung erfolgen. IT-Landschaft stehen diese beiden Grö- Verbietet der Zeitdruck diesen Mo- ßen des Gesamtsystems zusammen imdus, ist die punktuelle Verbesserung der Vordergrund, während der EntwicklungSoftwarequalität im Zuge einer vorzu- liegt das Augenmerk eher auf der Pro-nehmenden Änderung eine beliebte Al- duktqualität der Einzelanwendung. Dasternative: Zunächst weitet man die Test- Qualitätsmodell SQALE ermöglicht dieabdeckung aus und refaktorisiert den automatisierte Messung der Qualität ei-Code, bevor man sich der Modifikation ner Codebasis und unterstützt eine trans-selbst zuwendet. Dieses Vorgehen hat parente und nachvollziehbare Kostenbe-den Charme, dass es genau dort techni- rechnung.sche Schulden beseitigt, wo sich die re- Vor dem Abbau technischer Schuldenduzierte Wartbarkeit am ehesten aus- sollte ein Team die durchzuführendenwirkt. Maßnahmen sowie Zielwerte für die zu verbessernden Metriken sorgfältig defi- nieren. Mit dem einmaligen Abbau tech-Schulden tilgen nischer Schulden ist es aber nicht getan.oder neu entwickeln Tools wie Sonar helfen dabei, die Qua- lität der gesamten Codebasis permanentEin anderer Weg, technische Schulden zu überwachen und so Continuous In-loszuwerden, ist, die alte Software zu ver- spection umzusetzen.werfen und durch eine Neuentwicklung Leider kann man sich auf der Stabili-zu ersetzen. Wie bei einer Währungsre- tät der Softwarequalität nicht zu langeform geht zwar das gesamte Vermögen ausruhen: Wie so oft in der Softwareent-(die alte Software) verloren, gleichzeitig wicklung fällt ein stillstehendes Teamverschwinden aber auch die (technischen) gegenüber dem sich weiterentwickeln-Schulden. Vor dieser Entscheidung soll- den Stand der Technik permanent zu-te man die technischen Schulden be- rück. Und auch wenn die Continuous In-rechnen und sie den geschätzten Kosten spection grünes Licht gibt, sollte manfür die Neuentwicklung gegenüberstel- weiter auf Ausschläge in der WTF-Met-len. rik [o] achten. (ka) Im Vorfeld der geplanten Ablösungeines Systems kann die Softwarequalität Matthias Kraazgeplant vernachlässigt werden, um Kos-ten zu sparen. Verzögert sich die Ablö- arbeitet bei der Zühlke Engineering GmbHsung jedoch, muss das Team am Ende als Lead Software Architect. Seineüber viele Jahre ein System pflegen, Spezialgebiete sind Konstruktion unddessen Qualität es systematisch ver- Test sicherheitskritischer und einge-nachlässigt hat – mit den anfallenden betteter Systeme.Zusatzkosten. Die schlechte Software-qualität des Altsystems holt das Teamauch dann ganz schnell wieder ein,wenn es Anforderungen per Reverse Alle Links: www.ix.de/ix1209082 xiX 9/2012 87 © Copyright by Heise Zeitschriften Verlag

×