Thursday, 28 April 2016

Technical Debt Shouldnt Be Handled Like Financial Debt






by Sarang Nagmote



Category - Developer
More Information & Updates Available at: http://insightanalytics.co.in




Like many software developers in the 21st century, I use the term “technical debt” in a negative way: its the ever-accumulating cruft in your system that stands in the way of adding new features. As technical debt increases, the work takes ever longer, until you reach a point where forward progress ceases.
This view of technical debt equates it to a credit card: unless you pay your balance in full each month, youre charged interest. If you only make the minimum payment, that interest accrues and it will take you years to pay off the card. If you make the minimum payment and keep charging more, you may never get out of debt. Eventually, after maxing out several cards, youll have to declare bankruptcy.
But thats a very puritanical view of debt, and its not a view shared by everyone.
For a person with a business-school background, debt is a tool: if you can float a bond at 5% to build a factory that gives you a 10% boost in income, then you should do that (usually — there are other factors to consider, such as maintenance and depreciation). More important, youre not going pay that bond off before its due; doing so would negate the reasons that you issued it in the first place.
Which means that the term “technical debt” probably doesnt have the same connotations to your business users as it does to you. In fact, using that term may be dangerous to the long-term prospects of your project. If you say “we can release early but well add a lot of technical debt to do so,” thats a no-brainer decision: of course youll take on the debt.
I think a better term is total cost of ownership (TCO): the amount you pay to implement features now, plus the amount you will pay to add new features in the future. For example, “we can release this version early, but well add three months to the schedule for the next version.”
Which may still mean that you cut corners to release early, and probably wont stave off demands to release the next version early as well. But at least youll be speaking the same language.

No comments:

Post a Comment