Technical Debt Yashwanth Reddy Muddireddy

advertisement
Technical Debt
Yashwanth Reddy Muddireddy
CONTENTS
•
What is Technical Debt?
•
Types of Technical Debt
•
Causes of Technical Debt
•
Impacts of Technical Debt
•
How to Avoid Technical Debt?
•
Conclusion
WHAT IS TECHNICAL DEBT?
•
'Technical debt' was a term originally coined by Ward Cunningham in the year
1992.
•
Technical debt(TD) is an issue that must be handled by a developer similar to
how an entrepreneur handles financial debt.
•
'Deficit programming' was yet another synonym of technical debt, a term coined
by David Panariti, which describes technical debt in a simpler and straight
forward manner.
TYPES OF TECHNICAL DEBT
•
Most basic type of all is the initial design of an application.
•
Compromising is yet another reason that leads to technical debt, as the decision
makers fail to identify the right areas to make a compromise and end up
compromising on critical aspects instead (Brown et al., 2012).
•
Coding inexperience often leads to badly written code, a mistake made by junior
developers.
CAUSES OF TECHNICAL DEBT
•
There are many cases wherein the development team does not interact with
the business at all.
•
The business declares deadlines without taking suggestions from the
development team (McConnell, 2013).
•
There are a lot of cases in which the business has no clue whether their
requirement is even achievable.
•
Outsourced staff is usually long-distance staff from different parts of the
world and the lack of communication leads to a substandard outcome (Gat,
ed., 2010).
IMPACTS OF TECHNICAL DEBT
•
An application may appear to be flawless at first, but once it gets older, your
technical debt starts to accumulate and get larger, and your business service
infrastructure is what suffers the most damage.
•
Losing customers is a common occurrence given the amount of competition
that exists. If an application fails to satisfy a customer, the customer will
immediately move to an alternate application that might do the job for
him/her.
•
If this becomes a common occurrence, the business infrastructure could
take a massive hit (Curtis, 2014).
HOW TO AVOID TD?
•
Should be aware of TD like any other debt.
•
Refactoring.
•
Use measurement tools.
1 . CCFinderX(Java ,C/C++ , COBOL ,C#).
2 . Atomiq (mainly for .NET developers).
3 . Simian (Java ,C# ,C/C++ ,COBOL , HTML).
4 . Checkstyle (Java).
5 . SolidSDD (C ,C++ , C# , Java).
HOW TO AVOID TD?
•
Guidelines to managers and developers.
1 . Managers
(I) . Regarding software project deadline.
(II) . Communicating with developers(software quality).
(III) . Time period for refactoring.
2 . Developers
(I) . Clean code.
(II) . Red Green refactoring.
•
Use best practices.
CONCLUSION
•
Technical debt is a business risk most do not pay attention to, and the longer
it remains that way, the worse the aftermath is going to be. It does not just
hit your economy, but also makes you lose customers and your image.
•
Technical debt is not as much of a problem as it once was, because as soon
as you finally detect your issues with the help of available software, it is only
a matter of time before you can fix it.
REFERENCES
•
Steve McConnell. (2013). Managing Technical Debt. Construx Software
Builders.
•
C. Sterling, Managing Software Debt: Building for Inevitable Change,
Addison-Wesley Professional, 2010.
•
N. Brown et al., “Managing Technical Debt in Software-Intensive Systems,”
Proc. Future of Software Eng. Research, ACM, 2010, pp. 47–52.
REFERENCES
•
I. Gat, ed., “Special Issue on Technical Debt,” Cutter IT J., vol. 23, no. 10,
2010.
•
Dr. Bill Curtis. (2014). Measuring and Managing Technical Debt. Cast
Research Lab.
•
Kniberg, H. (2008) Technical debt-How not to ignore it, at Agile 2008
conference.
•
West, D. (January 2011), Balancing agility and technical debt, Forrester &
Cast So_ware.
Download