• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
The SQALE method: Meaningful insights into your Technical Debt
 

The SQALE method: Meaningful insights into your Technical Debt

on

  • 1,441 views

This is the presentation I made at the Agile 2012 conference (August in Dallas). It explains: ...

This is the presentation I made at the Agile 2012 conference (August in Dallas). It explains:
- Why Technical Debt is a powerful new paradigm
- What Managing Technical Debt means
- How SQALE helps to manage your Technical Debt
- The 3 remediation strategies supported by SQALE

Statistics

Views

Total Views
1,441
Views on SlideShare
1,441
Embed Views
0

Actions

Likes
3
Downloads
47
Comments
2

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

12 of 2 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • @PranavSaxena4
    The debt map is supported by some tools including Sonarqube since version 4.1.
    In Sonarqube, I model the Non remediation costs by using weighted severity. In this case, I recalibrate the weight with value like (depending on the organization and context):
    Info: 1 ; Minor: 20, Major: 200; Critical: 2000; Blocker: 20000
    Then NRC are on a ratio scale and could be aggregated by summation !
    I hope this help
    Are you sure you want to
    Your message goes here
    Processing…
  • How do you generate the debt map between the business impact and technical debt? Can it be done using Sonar?
    Thank you.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    The SQALE method: Meaningful insights into your Technical Debt The SQALE method: Meaningful insights into your Technical Debt Presentation Transcript

    • The SQALE method: Meaningful insights into your Technical Debt* Jean-Louis Letouzey August 2012* The technical debt visible in your source code
    • Presentation Jean-Louis Letouzey Expert consultant at inspearit France Product Audit, Technical Debt assessment Author of the SQALE method Preaching, Teaching SQALE SQALE tailoring and deployment in large organizations© inspearit-2012 2
    • Table of Contents Reminder on Quality and Technical Debt Technical Debt: a powerful Paradigm Shift The SQALE method: Structure Analyzing Technical Debt with SQALE Paying back Technical Debt with SQALE Summary and Conclusion Demonstration 3
    • Quality Quality is: compliance to requirement Before measuring Quality, you first need to define it At project level or At Organization level If you don’t define it, you won’t get it !© inspearit-2012 4
    • Technical DebtWard Cunninghamat OOPSLA 92: “Every minute spent“Shipping first time on not-quite-rightcode is like going code counts asinto debt. A little interest”debt speedsdevelopment solong as it is paidback promptly witha rewrite…” © inspearit-2012 5
    • Technical Debt A strong communication tool Understandable by managers (it fits well in Excel sheets) Many blogs, definitions from experts Product – Process Voluntary – involuntary … One reference book:© inspearit-2012 6
    • Technical DebtIn a recent (2012) interview* Ward Cunningham provided someclarifications: “We can say that the CODE is of high quality when productivity remains high in the presence of change in TEAM and GOALS.” Technical debt = Work to be done = Principal Impact = Lost of productivity = Interest * www.techdebt.org© inspearit-2012 7
    • Technical Debt and Agility Agile considers the source code as one major deliverable (not design model, not documentation) The definition of “right code” should be considered for the Definition(s) of Done (DoD) List of source code quality requirements Type and acceptable level of Technical Debt Agile promotes transparency Technical Debt shall be identified and monitored Project shall plan and prioritize activities for repaying and limiting this debt© inspearit-2012 8
    • Technical Debt and Agile Projects « Continuous “DoD” inspection » Including Monitoring TD Definition of« Right Code » Part of debt toAcceptable type be repayed and level of within the debt sprint © inspearit-2012 9
    • What Managing Technical Debt Means?To Manage TD means at least:1. Define what creates TD2. Define how to calculate TD3. Set Goals at organizational or project level4. Monitor the TD against the goals5. Compare TD across versions, projects, subcontractors…6. Analyze TD (age, location and impact)7. Set Pay down goals8. Set Pay down plan/priorities9. …© inspearit-2012 10
    • Table of Content Reminder on Quality and Technical Debt Technical Debt: a powerful Paradigm Shift The SQALE method: Structure Analyzing Technical Debt with SQALE Paying back Technical Debt with SQALE Summary and Conclusion Demonstration 11
    • Technical Debt: a Paradigm Shift Since the 70’s, the Software community is trying to measure « Quality » and Quality of source code Technical Debt makes the difference on 4 points1st point: Technical debt measures “Non Quality”! “Good Code” ∞ “Bad Code” ∞ Measures Measures “Bad Code” 0 “Right Code” 0© inspearit-2012 12
    • 2nd point: “Right code” Technical Debt refers to “Right code”, not “perfect code” No formal definition of Attribute1 « perfect code » « Not right code » area Perfect Code « Right code » area As soon as one attribute is in the unacceptable area (i.e. potentially decreasing productivity), the code is “not right”© inspearit-2012 13
    • 3rd point: Formulas: 5 days training! Des formules complexes MAINTAINABILITY INDEX MI4 = 171 - 3.42ln(aveE) - 0.23aveV(g) - 16.2ln(aveLOC) + (50 x sin(sqrt(2.46 x aveCM)) CLASS COHESION LCOM = LCOM = ((1/a x ΣA) - m)/(1 - m) Where a is the number of attributes of the class, Σ A is the sum across the set of attributes of the number of methods that access each attribute, and m is the number of methods of the class.© inspearit-2012 14
    • 4th point: Aggregations: no averages!© inspearit-2012 15
    • Benefits from the Paradigm ShiftTD Specificities Benefits at measure level Aggregation by addition No masking, no false positive Inverse direction Objective « Right » vs « Perfect » Precise Ease of understanding Short trainingTechnical debt is a much more powerful systemcompared to everything used previously tomeasure source code© inspearit-2012 16
    • Table of Content Reminder on Quality and Technical Debt Technical Debt: a powerful Paradigm Shift The SQALE method: Structure Analyzing the Technical Debt with SQALE Paying back Technical Debt with SQALE Summary and Conclusion Demonstration 17
    • The SQALE method: ContextSQALE: Software Quality Assessment based on Lifecycle Expectations• Based on TD Implementation/Tools• Open source• Generic (a framework)• Tool independent• Widely used Tailoring 4 concepts 9 Fundamental Principles Measurement theory and representativityDefinition document, articles, tools list are on sqale.org © inspearit-2012 18
    • SQALE Structure Analysis tools Source Code1 Quality Model 2 Analysis Models 3 Indices 4 Indicators 1 2 3 3 6 9 5 1 A … E SQI Source code Estimation models STI related Findings Costs SRI requirements Table Tables Σ … Maintenabilité Efficacité Testabilité Fiabilité Evolutivité Efficacité 248 Maintenabilité 589 248 SQID Evolutivité 1 480 1 480 1 480 1 4 Fiabilité 548 548 548 548 … Testabilité 6 535 6 535 6 535 7 083 6 535 8 563 6 535 8 811 6 535 9 400 6 2 1 1 d. / h. / $ …. d. / h. / $ …. « Right Code » Technical Definition Debt © inspearit-2012 19
    • The SQALE Quality Model:Source Code Requirements SQALE asks you to associate each of your expectations (requirements) with a quality characteristic Iso 25010 abilities Reuse Reusability Ordered characteristics Portability Maintain Reusability Maintainability Portability Deliver Security Maintainability Source code Efficiency related Security Evolve requirements Changeability Efficiency Reliability Changeability Test Testability Reliability Code Testability « Right Code » Requirements appear only once within the Quality Model,© inspearit-2012 when they are first needed. >>> orthogonal model 20
    • SQALE: 2 Estimation Models Estimation models transform findings in costs One for the Technical Perspective > Technical Debt One for the Business Perspective > Business Impact Remediation Cost Naming « Right Code » Depends on the type and Violations Definition the amount of technical Presentation activities to perform in order to remediate the Logic violations (remediation life cycle) Instruction Requirement n … Test Coverage Depends on the negative impact on the business Structure activities.Architecture The penalty that will cover all damages that will or may happened from delivering These 2 derived measures are on a ratio scale and can be with violations added without breaching the representation clause © inspearit-2012 Non-Remediation Cost 21
    • Table of Content Reminder on Quality and Technical Debt Technical Debt: a powerful Paradigm Shift The SQALE method: Structure Analyzing Technical Debt with SQALE Paying back Technical Debt with SQALE Summary and Conclusion Demonstration 22
    • SQALE Structure Analysis tools Source Code1 Quality Model 2 Analysis Models 3 Indices 1 2 3 3 6 9 5 1 SQI Source code Estimation models related Findings Costs requirements Table Tables Σ 1 4 … … 6 2 1 1 d. / h. / $ …. d. / h. / $ …. « Right Code » Technical Definition Debt © inspearit-2012 23
    • What Managing Technical Debt Means? SQALE:To Manage TD means at least:1. Define what creates TD Quality Model2. Define how you calculate TD Remediation Function3. Set Goals at organizational or project level4. Monitor the TD against the goals5. Compare TD across versions, projects, subcontractors…6. Analyze TD (age, location and impact)7. Set Pay down goals8. Set Pay down plan/priorities9. …© inspearit-2012 24
    • Index: Technical Debt Density SQALE defines Density indicators You divide your TD by the size of your artifact Size may be measured in function points, KSLOC…SQID (SQALE Quality Index Density = Technical DebtDensity) Allows to compare projects, versions, subcontractors… Allows to set goals without knowing the size in advance© inspearit-2012 25
    • Indicator: The SQALE rating A synthetic indicator dedicated to management dashboards Based on the ratio between the Technical Debt and the Development CostDevelopment Cost E Technical Debt D C B A © inspearit 26
    • What Managing Technical Debt Means? SQALE:To Manage TD means at least:1. Define what creates TD Quality Model2. Define how you calculate TD Remediation Function3. Set Goals at organizational or project level4. Monitor the TD against the goals Index Densities5. Compare TD across versions, Rating projects, subcontractors…6. Analyze TD (age, location and impact)7. Set Pay down goals8. Set Pay down plan/priorities9. …© inspearit-2012 27
    • The SQALE Pyramid: 2 points of view An external view that represents the perceived quality evaluated by consolidation of the hierarchy of characteristicsAn analytic view providedby orthogonalcharacteristics MaintainabilityOne understands impact Σof each Non-Conformity Efficiencyand improvement on Σ Changeabilityquality characteristic andlife cycle issues. Reliability Σ Σ Testability© inspearit-2012 28
    • Analyze your Technical Debt The SQALE Pyramid provides a technical perspective: Impact on the project’s activities© inspearit-2012 29
    • Which code is more « agile »?© inspearit-2012 30
    • What Managing Technical Debt Means? SQALE:To Manage TD means at least:1. Define what creates TD Quality Model2. Define how you calculate TD Remediation Function3. Set Goals at organizational or project level4. Monitor the TD against the goals Index Densities5. Compare TD across versions, Rating projects, subcontractors… Pyramid6. Analyze TD (age, location and impact)7. Set Pay down goals8. Set Pay down plan/priorities9. …© inspearit-2012 31
    • Table of Content Reminder on Quality and Technical Debt Technical Debt: a powerful Paradigm Shift The SQALE method: Structure Analyzing Technical Debt with SQALE Paying back Technical Debt with SQALE Summary and Conclusion Demonstration 32
    • The ways to prioritize features When budget or time is limited, features must be prioritized. 2 perspectives are commonly considered to prioritize features In other cases (?), a technical logic is applied The same logic is applicable to Non-Conformities Features Non-Conformities Development Cost Business Value Technical Debt Business Impact Priorities/Decision Priorities/Decision Technical Business Technical Business Features List N.C. List Perspective Perspective Perspective Perspective© inspearit-2012 33
    • Paying back your Technique Debt SQALE supports 3 strategies upon 3 perspectives The SQALE pyramid defines a logical priority for remediation actions. This is a technical perspective Reuse Reusability Portability Maintain Remediations Maintainability Deliver Security Efficiency Evolve Changeability Reliability TestTestability Code © inspearit-2012 34
    • Deliver with a residual debtTechnical Debt Technical Debt is permanently monitored and analyzed for identifying and performing immediate remediations Acceptable Level Time© inspearit-2012 35
    • Deliver with a residual debtTechnical Debt Optimization phase: One need to take into account the Business perspective in order to minimize the impact of the Technical Debt is permanently monitored residual debt and analyzed for identifying and performing immediate remediations Impact Acceptable Level Residual Technical Debt Time© inspearit-2012 36
    • Analyze your Technical Debt The business perspective upon « Severity », « Importance »© inspearit-2012 37
    • The SQALE Debt Map An analysis indicator valid at all artifact level. Use the business impact to support the business perspective Non-remediation Cost Business Impact - File - Component - Application Remediation Cost© inspearit-2012 Technical Debt 38
    • Optimize your remediation budget Use the impact/cost ratio to support the combined perspective Non-remediation Cost Business Impact Remediation Cost© inspearit-2012 Technical Debt 39
    • Table of Content Reminder on Quality and Technical Debt Technical Debt: a powerful Paradigm Shift The SQALE method: Structure Analyzing Technical Debt with SQALE Paying back Technical Debt with SQALE Summary and Conclusion Demonstration 40
    • A simple but powerful paradigm • Simple calculation • Simple aggregationTechnical Debt • Objectivity • Wide public • Few false positives • Representativeness • Clear rating ruleSQALE method • Comparisons • Remediation priorities • Analysis perspectives © inspearit-2012 41
    • Paying back the TD with SQALE SQALE supports 3 different strategies: 1st strategy: Follow the technical Logic (avoid useless rework) Use the SQALE pyramid 2nd strategy: decrease the business impact by starting fixing the Non-conformities with the highest business impact Use the SQALE Business Impact (SBI) Use the Debt Map 3rd strategy: optimize your ROI by starting fixing the non- conformities with the highest ROI Use the Business Impact/Remediation cost ratio Use the Debt Map Priorities/DecisionDepending on yourcontext, choose one of thesingle perspectives or the Technical Business Technical Debt N.C. Listcombined perspective Perspective Perspective © inspearit-2012 42
    • SQALE deployment1 Initialization 2 Tailoring 3 Pilot 4 Deployment Tools installation & Planning Method training Model Validation integration Stakeholders Tailoring the SQALE Building a ready to Awareness and Scope… basic models deploy solution Coaching sessions A simple technical part Setting your own SQALE models Tool implementation and validation A « Change management » part Fighting against old ideas about code measurement Addressing a large population 43
    • The SQALE method: Summary Easy to understand and to deploy A strong and powerful implementation of the Technical Debt concept Build in pay-back support Open source and tool independent Used worldwide Expert recognition“In the domain of software quality evaluation, I findSQALE – Software Quality Assessment based on LifeCycle Expectations – a great tool for implementingmy mantra. It interprets source code analysis interms of what really matters in the specific clientenvironment. In so doing, it transforms anoverwhelming set of measurement data toactionable insights which are meaningful at multiplelevels of the firm.” Israel Gat, Cutter Consortium © inspearit-2012 44
    • Table of Content Reminder on Quality and Technical Debt The SQALE method and the Technical Debt The SQALE method and the Business Perspective Managing your Technical Debt with SQALE A powerful paradigm shift How to deploy/use the SQALE method Demonstration 45
    • just sqale it Thanks Questions? http: /www.sqale.org Follow #sqale on twitter jean-louis.letouzey@inspearit.com © inspearit 46