Dealing with technical debt

Dealing with technical debt - Hallo friend Insurance WCest, In the article you read this time with the title Dealing with technical debt, we have prepared this article well for you to read and take the information in it. hopefully the contents of the post Article software development, Article technical debt, which we write you can understand. okay, happy reading.

Title : Dealing with technical debt
Link : Dealing with technical debt

Read too


Dealing with technical debt

;
Once in a while something goes crazy in my Google Reader (I know, time to find something new :-/ ) and it will spam my feed with dozens of old posts from one or other of the various blogs to which I've subscribed. It can actually be quite nice, as it gives me an excuse to trawl through the blog and reread old classics. Anyway, this recently happened with Steve McConnell's 10x Software Development blog and I was particularly taken by this old post on technical debt and how to handle it.

While I've found framing software development and maintenance decisions in terms of technical debt to be useful for quite some time, Steve's post made me realise that the analogy of technical to financial debt is richer and more accurate that I realised. In particular, these two main points were really driven home:

  • Technical debt must be serviced. In other words, the main characteristic of what makes something a technical debt is that it incurs future work just to keep things running. So, just like real debt, technical debt is about taking from the future to satisfy the present. Taking on a technical debt may increase your development velocity now, but at the direct cost of slowing your future velocity until the debt is cleared or you declare bankruptcy (abandon the system in question). Anybody who has inherited a project that is impossible to maintain will intuitively understand how this kills the possibility of meaningful further development until a major refactoring/rewrite is undertaken to "clear the debt".
  • There are different types of technical debt, some of them 'good' and some of them 'bad'. With financial debt, 'good' debt is generally taken on either in order to invest in a productive and appreciating asset, or to invest in increasing productive capacity (e.g. borrowing to build a business). 'Bad' debt is debt incurred on depreciating or non-productive consumption (e.g. borrowing to buy shoes). Similarly, 'good' technical debt might be necessary to allow certain startup projects a chance to emerge into the light, whereas 'bad' technical debt is simply a cycle of slowing productivity and decay caused by poor planning and discipline. For example, taking on technical debt in dribs and drabs through sloppy development practices is nearly always a bad idea. By contrast, taking certain architectural shortcuts that allow a faster release in return for having to refactor several years down the track may be tactically wise.
The blog post doesn't specifically discuss the concepts of principal and interest as they relate to technical debt, but I think the analogy stretches to these too. In the technical context, the 'interest' is the price that has to be paid just to keep things functioning in the presence of the debt. The 'principal' is that amount of work that needs to be done to clear the debt entirely. Paying less than the interest rate may be possible for a while, but just like with money this will mean that a yet greater debt accrues, requiring greater servicing and an even larger ultimate repayment. This is how many projects grind themselves into complete stasis.

With this fuller understanding of the mechanics of technical tradeoffs, I feel it should be possible to both make better decisions (is it more important to get the product launched this quarter even though it means that two years down the line, it will be less developed than if we'd taken our time?) and to better quantify and communicate the effects of that debt to others, especially those of a less technical bent. Understanding debt and its tradeoffs has always been central to keeping a business (or one's own finances) on a good trajectory; using similar thinking can hopefully help people keep their technical project on the right track too.


Such is the article Dealing with technical debt

That's an article Dealing with technical debt this time, hopefully can benefit for you all. okay, see you in other article posting.

You are now reading the article Dealing with technical debt with the link address https://wcest.blogspot.com/2013/04/dealing-with-technical-debt.html