Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Controlling Your Technical Debt Efficiently

Controlling Your Technical Debt Efficiently

This presentation is among the Top 27 Best Papers/Practice/Tutorials selected, out of 460+ submissions received, to be presented @STC 2012.

Presentation Abstract

‘Technical Debt ‘refers to the outcome of ad-hoc ways of writing software code, in an attempt to meet aggressive timelines. As in a financial debt, the interest you pay on a technical debt, in the form of redesign and re-factoring is huge. This makes it essential for every IT organization to identify and control the debt in a periodic and structured manner.

This paper focuses on a solution ‘Integrated Code Diagnostics Platform (ICDP) ‘to identify, quantify and prioritize the technical debt. The solution illustrates how managers, developers, testers can look at the quality of software and gauge its true value. The paper emphasizes on the fact that detection and fixing of Technical Debt in a timely manner leads to strategic and operational improvements.

To summarize, the solution helps you answer a question, ‘Is your software an asset or a liability’?

About the Authors

R Radhakrishnan heads the Advanced Technologies Group and is responsible for overall technology solutions. He has over 17 years of experience and provides the strategy for ensuring timely and quality delivery of software to customers by using the right process, tools and technology.

K. Sravan Kumar heads the Quality Department and has been instrumental in catalysing many changes in the engineering and management practices. Prior to this, as a part of Quality Department in Infosys for more than a decade, he was an integral part of large-scale change management programs there. Sravan has over 16 years of experience in Quality Assurance in multiple industries.

Nitin Pai has over 10 years of experience and is currently working as a Technical Architect responsible for providing technical solution and architecture in.NET technology. His contributions towards quality has been significant in projects by setting standards and best practices and has played a key role in conceptualizing and implementing solutions for improving overall code quality.

More Decks by QAI Software Testing Conference

Other Decks in Technology

Transcript

  1. Controlling Your Technical Debt Efficiently Is your software an asset

    or liability? © Blue Star Infotech Controlling your Technical Debt Efficiently Is your software an asset or liability? Authors: Radhakrishnan R, K. Sravan Kumar, Nitin Pai
  2. 2 Contents An Introduction to Technical Debt Addressing Technical Debt

    and Challenges Solution Rolling Out © Blue Star Infotech Controlling your Technical Debt Efficiently Benefits Open Discussion
  3. 3 An Introduction to Technical Debt © Blue Star Infotech

    Controlling your Technical Debt Efficiently An Introduction to Technical Debt
  4. 4 What is Software Quality? As defined by Wikipedia, “Software

    Quality refers to two related but distinct notions that exist wherever quality is defined in a business context: Software functional quality reflects how well it complies with or conforms to a given design, based on functional requirements or specifications. That attribute can also be described as the fitness for purpose of a piece of software or how it compares to © Blue Star Infotech Controlling your Technical Debt Efficiently fitness for purpose of a piece of software or how it compares to competitors in the marketplace as a worthwhile product Software structural quality refers to how it meets non-functional requirements that support the delivery of the functional requirements, such as robustness or maintainability, the degree to which the software was produced correctly”
  5. 5 What is Technical Debt? “Technical Debt” refers to the

    outcome of ad-hoc ways of writing software code, in an attempt to meet aggressive timelines. As in a financial debt, the interest you pay on a technical debt, in the form of redesign and refactoring is © Blue Star Infotech Controlling your Technical Debt Efficiently huge.
  6. 6 The Need to Control Technical Debt © Blue Star

    Infotech Controlling your Technical Debt Efficiently Reference: Financial Implication of Technical Debt by Jim Highsmith
  7. 7 Addressing Technical Debt and Challenges © Blue Star Infotech

    Controlling your Technical Debt Efficiently Addressing Technical Debt and Challenges
  8. 8 How was Technical Debt Identified and Corrected? Use of

    Static Code Analyzers Manual Review © Blue Star Infotech Controlling your Technical Debt Efficiently
  9. 9 Challenges Too may warnings Lack of prioritization No automated

    aid to estimate the defect fix effort Non availability of benchmarks for different project types © Blue Star Infotech Controlling your Technical Debt Efficiently for different project types No ‘single’ window consolidating reports from multiple tools No way of comparing quality over a period of time Reporting not project manager friendly
  10. 10 Solution © Blue Star Infotech Controlling your Technical Debt

    Efficiently Solution Integrated Code Diagnostics Platform (ICDP)
  11. 11 Solution Target Architect Project Manager © Blue Star Infotech

    Controlling your Technical Debt Efficiently Developer Business Manager/ Customer
  12. 12 Solution Target – Project Manager Can I know the

    consolidated code health of the application? Can I have a comparison of code health over a period of time? © Blue Star Infotech Controlling your Technical Debt Efficiently Can I have this information over the Web?
  13. 13 Solution Target – Architect Can I get the violations

    based on criticality? Can I customize code metrics parameters relevant to my project? Can I customize code analysis parameters relevant to my © Blue Star Infotech Controlling your Technical Debt Efficiently Can I customize code analysis parameters relevant to my project? Can I exclude code base that is auto-generated? Can I know automatically the efforts required to fix the violations reported?
  14. 14 Solution Target – Developer Can I get help on

    how to fix these violations? © Blue Star Infotech Controlling your Technical Debt Efficiently Can I get all violations in a consolidated manner?
  15. 15 Solution Target – Business Manager / Customer How is

    the overall software quality? © Blue Star Infotech Controlling your Technical Debt Efficiently What is the debt collection?
  16. 18 Representative Screen Shots Code Violation Summary Defect Fix Estimation

    © Blue Star Infotech Controlling your Technical Debt Efficiently Code Analysis Rating Table
  17. 20 Pilot Violations per class reduced by 90% Code improvement

    effort (Incremental COQ) was about 6% Rework Violations per Class © Blue Star Infotech Controlling your Technical Debt Efficiently 6% Initial Learning Mature Rework Cost
  18. 21 Life Before And After Life Before Life After Developer

    Obscure and Adhoc Structured and Trained Architect Manual prioritization and estimation Automated prioritization and estimation © Blue Star Infotech Controlling your Technical Debt Efficiently Tester More iterations Fewer iterations Project Manager Low Transparency High Transparency with Health rating Customer High Maintenance cost Low Maintenance cost
  19. 22 Institutionalization Quality procedures modified to mandate ICDP for all

    projects New checklists rolled out for the review process Training on Code Quality included as part of fresher © Blue Star Infotech Controlling your Technical Debt Efficiently induction program to facilitate smoother adoption of ICDP Quarterly management meet to discuss project and organization specific improvements in code quality Virtual support team set up
  20. 24 Key Results 80% effort savings in code remediation 1.3%

    improvement in CSS rating specific to ‘Quality of Deliverables’ © Blue Star Infotech Controlling your Technical Debt Efficiently 2.3% improvement in Defect Detection Effectiveness (DDE) Reduction in Technical Debt by 85 %
  21. 25 Other Benefits Overall improvement in software code by identifying

    and eliminating the ‘toxic’ code Resulted in strategic, tactical and operational improvements Overall improvement in developers code quality and © Blue Star Infotech Controlling your Technical Debt Efficiently Overall improvement in developers code quality and morale Assessment of code health before taking on maintenance projects Overall reduction in the rate of defect injection
  22. 26 Testimonials “I think that you have done an excellent

    job of maintaining code standards …… The code is in general well-structured and concise. Class, method, and property names are well chosen with a few exceptions we have noted, and methods are generally of a very reasonable size and simplicity.” Customer “OPM implementations have focused on (and achieved) improvement in Quality of delivery Goal through an Integrated Code Diagnostics Platform that uses tools to analyze code as well as find & reduce defects in it.” © Blue Star Infotech Controlling your Technical Debt Efficiently tools to analyze code as well as find & reduce defects in it.” CMMI Lead assessor “Earlier the code quality tool was manually executed for checking the code quality of the project. Being manual the tool was executed once a week. Many a times and degradations caused within a week would be difficult to track and correct. With the ICDP tool, now daily build as well as code quality reports are obtained due to which any degradations are caught immediately on the following day and can be addressed immediately.” Technical Architect
  23. 27 The way ahead Automated debt calculator Similar solution for

    other technologies, User Interface (UI) standards © Blue Star Infotech Controlling your Technical Debt Efficiently Analytics on Data
  24. 28 References 1. Ivo Gomes1, Pedro Morgado1, Tiago Gomes1, Rodrigo

    Moreira2,: An overview on the Static Code Analysis approach in Software Development 2. Wikipedia - http://en.wikipedia.org/wiki/Software_quality 3. FxCop - http://msdn.microsoft.com/en- © Blue Star Infotech Controlling your Technical Debt Efficiently 3. FxCop - http://msdn.microsoft.com/en- us/library/bb429476(v=vs.80).aspx 4. NDepend - http://www.ndepend.com/ 5. Images used in the deck – http://www.fotolia.com