<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Leonardo da Vinci Rocks &#187; Software Debt</title>
	<atom:link href="http://www.davincirocks.com/?feed=rss2&#038;cat=13" rel="self" type="application/rss+xml" />
	<link>http://www.davincirocks.com</link>
	<description>Leonardo da Vinci was an iconic developer of knowledge, here I share what I have developed and learned.</description>
	<lastBuildDate>Mon, 09 May 2011 19:40:19 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Software Debt &#8211; Do you know the health of your &#8216;Camel&#8221;?</title>
		<link>http://www.davincirocks.com/?p=152</link>
		<comments>http://www.davincirocks.com/?p=152#comments</comments>
		<pubDate>Sat, 26 Feb 2011 04:13:16 +0000</pubDate>
		<dc:creator>Keith Davidson</dc:creator>
				<category><![CDATA[Software Debt]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Technical Debt]]></category>
		<category><![CDATA[Agile SCRUM]]></category>

		<guid isPermaLink="false">http://www.davincirocks.com/?p=152</guid>
		<description><![CDATA[<p><br/>In one of my previous blog articles I talked about Software Debt escalating to Technical Bankruptcy, here I will explore more the need for and apparent lack of monitoring of accrued software debt within businesses. The lack of understanding of software debt by business managers, particularly those based on software as their primary product, is a <a href='http://www.davincirocks.com/?p=152' class='excerpt-more'>[Read More...]</a></p><p>The post <a href="http://www.davincirocks.com/?p=152">Software Debt &#8211; Do you know the health of your &#8216;Camel&#8221;?</a> appeared first on <a href="http://www.davincirocks.com">Leonardo da Vinci Rocks</a>.</p>]]></description>
				<content:encoded><![CDATA[<br/><p>In one of my previous <a href="http://www.davincirocks.com/?p=156" target="_blank">blog articles</a> I talked about Software Debt escalating to Technical Bankruptcy, here I will explore more the need for and apparent lack of monitoring of accrued software debt within businesses. The lack of understanding of software debt by business managers, particularly those based on software as their primary product, is a fatal mistake in their business strategy in my view. It is akin to only looking at the sales numbers and not a the operating expense, one day you&#8217;ll find yourself paying more for a sale than the revenue from the sale.Recently I used the idiom &#8216;the straw that broke the camel&#8217;s back&#8217;  to convey this point, I particularly liked it as the original Arabic proverb describes how a camel is loaded beyond its capacity to move, that is exactly what happens with software debt the organization gets to the point that it cannot move forward. The basis of the analogy I used to convey the impact to software production was that the straw on the camels back was composed of :</p>
<ol>
<li>Software Architecture that was pushed beyond its original intent.
<ul>
<li>New architectural approaches partially implemented, tactical features always took precedence.</li>
<li>Multiple partially implemented architectures, etc.</li>
</ul>
</li>
<li>Poor development practices
<ul>
<li>giving up Unit Tests for speed of delivery</li>
<li>inconsistent application of code and design reviews, etc.</li>
</ul>
</li>
<li>Poor product management decisions
<ul>
<li>only looking for the customer facing UI components and ignoring the back-end implications. Great blog on this behavior <a href="http://sheddingbikes.com/posts/1285436217.html" target="_blank">here</a>.</li>
<li>never prioritizing technical debt over features, etc.</li>
</ul>
</li>
<li>Poor Operational and Deployment practices
<ul>
<li>No Continuous Integration, No common build system, etc.</li>
<li>No standard configurations, manual deployment at all levels of the system.</li>
</ul>
</li>
</ol>
<p>You probably get the picture, I left out a lot of the specifics above,  and for the business management I kept it to the four headlines above. It got the point across to them and we immediately started to look at ways to deal with the issues.  The temptation to revert to prior behavior was always present and the question of &#8216;are we there yet&#8217; kept on coming up and this is the fundamental problem, believing that Software debt will disappear is a complete fallacy, it is always present and takes constant management to stop it from getting out of control. So it is imperative in my view to manage it from the beginning and if that time has already passed then from this point forward, pretending it is not there is like not opening the credit card statement each month.  There are indications that this is becoming more central to business discussions, great post <a href="http://blog.castsoftware.com/the-financial-implications-of-technical-debt/" target="_blank">here</a>, however it seems that Agile approaches are placed central to it, I have to say Agile is making it visible and by no means is Software Debt limited to these organizations.  So how should we manage Software Debt and make sure it is visible to the Business Management. First is to communicate and educate business management on software debt, it is not taught in MBAs or in business school so few a likely to even understand the phrase let alone the details.  Secondly keep it simple, I see all of the types of issues in software debt as defects, yes they need to be categorized into useful groups so that a plan of action can be created to tackle them, but they are all defects of one sort or another. The defect may appear due to changes in desired use, they may just be there because we took a short cut and now it is time to move into the full solution, any number of reasons.  My belief is that Software Debt should be accounted for and used as a business management metric the same as feature delivery against market goals are measured. If you are going to spend the time within Product Management and Product Ownership in calculating the ROI for features, simplified here as:</p>
<p style="padding-left: 90px;"><strong>Potential Sales over x period / cost to produce(Investment) = ROI</strong></p>
<p>Then you should also calculate your current software debt burden and what the new feature will add to it:</p>
<p style="padding-left: 90px;"><strong>(Number of defects existing + Projected Number of Defects with new feature) * Average cost to fix = Software Debt Value</strong></p>
<p><em>(Yes these numbers can be subjective and so are the numbers for the normal ROI calculation used by Product Owners for features. For those of use with the Meyers-Briggs NT profiles we need to get over it, by the time you have hard numbers scientifically proven it will be too late the business will have moved on. Leave you with a pile of Software debt needing to be dealt with.)</em></p>
<p>The post <a href="http://www.davincirocks.com/?p=152">Software Debt &#8211; Do you know the health of your &#8216;Camel&#8221;?</a> appeared first on <a href="http://www.davincirocks.com">Leonardo da Vinci Rocks</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.davincirocks.com/?feed=rss2&#038;p=152</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
