Object Mentor Blog: We must ship now and deal with consequences http://blog.objectmentor.com/articles/2009/10/15/we-must-ship-now-and-deal-with-consequences en-us 40 We must ship now and deal with consequences <p>Martin Fowler has written a good <a href="http://martinfowler.com/bliki/TechnicalDebtQuadrant.html">blog</a> about technical debt. He suggests that there are two axes of debt: <em>deliberate</em> and <em>prudent</em>. This creates four quadrants: <em>deliberate-prudent</em>, <em>deliberate-imprudent</em>, <em>inadvertent-prudent</em>, and <em>inadvertent-imprudent</em>. I agree with just about everything in his blog except for one particular caption&#8230;</p> <h2>Inadvertent-Imprudent Debt.</h2> <p>There is more of this debt than any other kind. It is all too common that software developers create a mess and don&#8217;t know they are doing it. They have not developed a nose that identifies code smells. They don&#8217;t know design principles, or design patterns. They think that the reek of rotten code is normal, and don&#8217;t even identify it as smelling bad. They think that their slow pace through the thick morass of tangled code is the norm, and have no idea they could move faster. These people destroy projects and bring whole companies to their knees. Their name is <em>Doom</em>.</p> <h2>Deliberate-Imprudent Debt.</h2> <p>There is a meme in our industry (call it the DI meme) that tells young software developers that rushing to the finish line at all costs is the right thing to do. This is far worse than the ignorance of the first group because these folks <em>willfully</em> create debt without counting the cost. Worse, this meme is contagious. People who are infected with it tend to infect others, causing an epidemic of deliberately imprudent debtors (sound familiar?) The end result, as we are now all know, is economic catastrophe, inflation (of estimates) and crushing interest (maintenance) payments. They have become death, the destroyer of worlds.</p> <h2>Inadvertent-Prudent Debt.</h2> <p>This is something of an oxymoron. Ironically, it is also the best of all possible states. The fact is that no matter how careful we are, there is always a better solution that we will stumble upon later. How many times have you finished a system only to realize that if you wrote it again, you&#8217;d do it very differently, and much better?</p> <p>The result is that we are always creating a debt, because our hindsight will always show us a better option after it is too late. So even the best outcome still leaves us owing. (Mother Earth will eventually collect that debt!)</p> <h2>Deliberate-Prudent Debt.</h2> <p>This is the quadrant that I have the biggest problem with. And it is this quadrant in which Martin uses the caption I don&#8217;t like. The Caption is: <em>&#8220;We must ship now and deal with consequences.&#8221;</em></p> <p>Does this happen? Yes. <em>Should</em> it happen? Rarely, yes. But it damned well better not happen very often, and it damned well better not happen out of some misplaced urge to get done without counting the cost.</p> <p>The problem I have with this quadrant (DP) is that people who are really in quadrant DI <em>think</em> they are in DP, and use words such as those that appear in the caption as an excuse to rack up a huge imprudent debt.</p> <p>The real issue is the definition of the word: <em>Imprudent</em>.</p> <p>So let me ask you a question. How prudent is debt? There is a very simple formula for determining whether debt is prudent or imprudent. You can use this formula in real life, in business, and in programming. The formula is: Does the debt increase your net worth, and can you make the payments?</p> <p>People often focus on the first criterion, without properly considering the second. Buying a house is almost certain to increase your net worth despite the debt (though lately&#8230;). On the other hand, if you cannot make the payments, you won&#8217;t keep that house for long. The reason for our current economic woes has a lot to do with people trying to increase their net worth despite the fact that they couldn&#8217;t afford the payments. (indeed, they were encouraged by a meme very similar to the DI meme!)</p> <h2>Bad code is <em>always</em> imprudent.</h2> <p>Writing bad code <em>never</em> increases your net worth; and the interest rate is really high. People who write bad code are like those twenty-somethings who max out all their credit cards. Every transaction <em>decreases</em> net worth, and has horrendous consequences for cash flow. In the end, the vast bulk of your effort goes to paying the interest (the inevitable slow down of the team as they push the messes around). Paying down the principle becomes infeasible. (Just the way credit card companies like it.)</p> <h2>Some Suboptimal Design Decision are Prudent Debt.</h2> <p>But most are not. Every once in awhile there is a suboptimal design decision that will increase the net worth of the project by getting that project into customer&#8217;s hand&#8217;s early.</p> <p>This is not the same as delivering software that is under-featured. It is often prudent to increase the net worth of a project by giving customers early access to a system without a full and rich feature set. This is not debt. This is more like a savings account that <em>earns</em> interest.</p> <p>Indeed, this is one reason that most technical debt is imprudent. If you are truly concerned about getting to market early, it is almost always better to do it with <em>fewer features</em>, than with suboptimal design. Missing features are a promise that can be kept. Paying back suboptimal designs creates interest payments that often submerge any attempts at payback and can slow the team to the breaking point.</p> <p>But there <em>are</em> some cases where a sub-optimal design can increase your net worth by allowing you to deliver early. However, the interest rate needs to be very low, and the principle payments need to be affordable, and big enough to pay back the debt in short order.</p> <p>What does a low interest rate mean? It means that the sub-optimal design does not infiltrate every part of your system. It means that you can put the sub-optimal design off in a corner where it doesn&#8217;t impact your daily development life.</p> <p>For example, I recently implemented a feature in FitNesse using <span class="caps">HTML</span> Frames. This is sub-optimal. On the other hand, the feature is constrained to one small part of the system, and it simply doesn&#8217;t impact any other part of the system. It does not impede my progress. There is no mess for me to move around. The interest rate is almost zero! (nice deal if you can get it!)</p> <p>Implementing that feature with ajax is a much larger project. I would have had to invest a great deal of time and effort, and would have had to restructure massive amounts of the internal code. So the choice was a good one.</p> <p>Better yet, the customer experience has pretty much been a big yawn. I thought people would really like the feature and would drive me to expand upon it. Instead, the customer base has virtually ignored it.</p> <p>So my solution will be to pay back this debt by eliminating the feature. It was a cheap experiment, that resulted in my <em>not</em> having to spend a lot of time and effort on a new architecture! Net worth indeed!</p> <p>But it might have gone the other way. My customers may have said: &#8220;Wow, Great! We want more!&#8221; At that point it would have been <em>terrible</em> to expand on the <span class="caps">HTML</span> Frames! That decision would have been in the DI quadrant. Deliberate imprudence! Rather, my strategy would have been to replace the suboptimal Frames design of the feature with an isolated ajax implementation, and then to gradually migrate the ajax solution throughout the project. That would have been annoying, but loan payments always are.</p> <h2>Summary</h2> <p>So, don&#8217;t let the caption in the DP quadrant be an excuse. Don&#8217;t fall for the DI meme that says &#8220;We just gotta bite the bullet&#8221;. Tread <em>very</em> carefully when you enter the DP quadrant. Look around at all your options, because it&#8217;s easy to <em>think</em> you are in the DP quadrant when you are really in the DI quadrant.</p> <p>Remember: <em>Murphy shall send you strong delusion, that you should believe you are in DP; so that you will be damned in DI.</em></p> Thu, 15 Oct 2009 06:17:00 -0500 urn:uuid:169be751-1a4f-45b8-8429-9eb3820be4a3 Uncle Bob http://blog.objectmentor.com/articles/2009/10/15/we-must-ship-now-and-deal-with-consequences Uncle Bob's Blatherings Software Craftsmanship Agile Methods Clean Code "We must ship now and deal with consequences" by fitflop <p>Indicating thank you for not simply plenty of, in your publishing the truly amazing insight.</p> Thu, 12 Jul 2012 22:11:20 -0500 urn:uuid:0dcc2a0a-e010-4e59-8ded-8e83f33b215a http://blog.objectmentor.com/articles/2009/10/15/we-must-ship-now-and-deal-with-consequences#comment-233978 "We must ship now and deal with consequences" by best cosplay <p><a href="http://www.outfitscosplay.com/cosplay-catalog/the-king-of-fighters-cosplay" rel="nofollow">http://www.outfitscosplay.com/cosplay-catalog/the-king-of-fighters-cosplay</a> Deluxe The King of Fighters Cosplay Costumes for Sale.Find your favorite characters and cosplay outfits from all the popular anime and games.</p> Thu, 21 Jun 2012 02:34:57 -0500 urn:uuid:7ad83583-d727-4449-ad70-7fa1256e5d90 http://blog.objectmentor.com/articles/2009/10/15/we-must-ship-now-and-deal-with-consequences#comment-230404 "We must ship now and deal with consequences" by jean swift <p>Handbags are those fashion accessories that enhance your looks?</p> Fri, 15 Jun 2012 23:49:55 -0500 urn:uuid:ef09affc-1ac7-41aa-acf5-3bb1aa5a345e http://blog.objectmentor.com/articles/2009/10/15/we-must-ship-now-and-deal-with-consequences#comment-229596 "We must ship now and deal with consequences" by Tom Ford Sunglasses <p>Chopard  sunglasses had all  glamorous elements with  metal chain arm,<a href="http://www.tomford-sunglasses.co.uk/" rel="nofollow"><strong>Tom Ford Eyeglasses</strong></a>  heart strass and diamente.Loewe don  signature  anagrams  arranged along the temple or fixed on the hinges for  aviator and wide-eyed sunglasses.<a href="http://www.tomford-sunglasses.co.uk/" rel="nofollow"><strong>Tom Ford</strong></a> elegant oversized and gladiators came  in various shades colours, contra tone thick frame or dual-toned temples.<a href="http://www.tomford-sunglasses.co.uk/" rel="nofollow"><strong>Tom For Sunglasses</strong></a></p> Fri, 08 Jun 2012 03:46:06 -0500 urn:uuid:d1816c22-2078-4ca1-9ea7-dae0397e2f86 http://blog.objectmentor.com/articles/2009/10/15/we-must-ship-now-and-deal-with-consequences#comment-228643 "We must ship now and deal with consequences" by movers in Dubai <p>OMB, OMG!</p> Mon, 28 May 2012 14:00:35 -0500 urn:uuid:392f6ebc-1ced-4af4-8ce1-ff8650831dec http://blog.objectmentor.com/articles/2009/10/15/we-must-ship-now-and-deal-with-consequences#comment-226664 "We must ship now and deal with consequences" by insurance inn <p>I thought it was going to be some boring old post, but it really compensated for my time. I will post a link to this page on my blog. I am sure my visitors will locate that extremely useful</p> Sun, 06 May 2012 14:41:32 -0500 urn:uuid:925d2d7e-cd37-4edb-ad09-f9b4ee371a6e http://blog.objectmentor.com/articles/2009/10/15/we-must-ship-now-and-deal-with-consequences#comment-222164 "We must ship now and deal with consequences" by louboutin sales <p>We must ship now and deal with consequences 106 hoo,good article!!I like the post!179</p> Sun, 22 Apr 2012 00:01:08 -0500 urn:uuid:7c9cf232-0960-4a6c-b0cc-e1589c89e583 http://blog.objectmentor.com/articles/2009/10/15/we-must-ship-now-and-deal-with-consequences#comment-219417 "We must ship now and deal with consequences" by bladeless fans <p>We must ship now and deal with consequences 105 good post51</p> Fri, 20 Apr 2012 20:53:57 -0500 urn:uuid:d5d4ff21-8209-487a-9a81-ed99d286a530 http://blog.objectmentor.com/articles/2009/10/15/we-must-ship-now-and-deal-with-consequences#comment-219025 "We must ship now and deal with consequences" by wholesale new era fitted hats <p>Human nature is the most poor: we all dream to have a wonderful rose garden, and not to appreciate our window open today in the rose.</p> Fri, 13 Apr 2012 01:05:50 -0500 urn:uuid:0a9716b3-3f8a-4494-855a-e110728c05b1 http://blog.objectmentor.com/articles/2009/10/15/we-must-ship-now-and-deal-with-consequences#comment-216817 "We must ship now and deal with consequences" by treerichworldclub <p>such an immutable nature, and the “good way” it implies, do sound like a solid foundation to build a craft upon. :)</p> Thu, 05 Apr 2012 02:19:02 -0500 urn:uuid:1921be89-4aac-4a28-868b-2c97e453bcde http://blog.objectmentor.com/articles/2009/10/15/we-must-ship-now-and-deal-with-consequences#comment-215331 "We must ship now and deal with consequences" by kineski horoskop <p>Brilliant information. Keep it up!</p> Mon, 26 Mar 2012 08:32:24 -0500 urn:uuid:4ee42420-6de4-442e-8c07-f51846a05332 http://blog.objectmentor.com/articles/2009/10/15/we-must-ship-now-and-deal-with-consequences#comment-213054 "We must ship now and deal with consequences" by 24 Hour Plumbing Service <p>i really enjoy reading this blog coz everything is very open and very clear explanation of issues. It contains truly information. Your website is very useful. Thanks for sharing. Looking forward to more</p> Tue, 20 Mar 2012 07:22:33 -0500 urn:uuid:758d9613-6d44-46ec-a5a3-629bf47c93c5 http://blog.objectmentor.com/articles/2009/10/15/we-must-ship-now-and-deal-with-consequences#comment-211684 "We must ship now and deal with consequences" by Microsoft Support <p>Another set of HFT strategies is classical arbitrage strategy might involve several securities such as covered interest rate parity in the foreign exchange market which gives a relation between the prices of a domestic bond, a bond denominated in a foreign currency, the spot price of the currency, and the price of a forward contract on the currency&#8230; <a href="http://www.bestmicrosoftsupport.com/" rel="nofollow">Microsoft Support</a></p> Mon, 19 Mar 2012 06:31:10 -0500 urn:uuid:c6c44984-94b1-4d35-a184-3c6b9e081c48 http://blog.objectmentor.com/articles/2009/10/15/we-must-ship-now-and-deal-with-consequences#comment-211462 "We must ship now and deal with consequences" by cheap snapback <p>All of us aswell accommodate the cowboys are accepting the absolute plugs that appearance is not just a cowboy and cowgirl These types of aswell access in a amount of styles and designs to baddest from.</p> Thu, 08 Mar 2012 23:27:44 -0600 urn:uuid:7154a85a-982c-406a-b708-5431ead61e90 http://blog.objectmentor.com/articles/2009/10/15/we-must-ship-now-and-deal-with-consequences#comment-209206 "We must ship now and deal with consequences" by cheap snapback <p>All of us aswell accommodate the cowboys are accepting the absolute plugs that appearance is not just a cowboy and cowgirl These types of aswell access in a amount of styles and designs to baddest from.</p> Thu, 08 Mar 2012 23:25:17 -0600 urn:uuid:535495a9-f983-4f36-b885-791b97f3f092 http://blog.objectmentor.com/articles/2009/10/15/we-must-ship-now-and-deal-with-consequences#comment-209205 "We must ship now and deal with consequences" by cheap snapback hats <p>What absolutely are some of the advantages of accepting acceptance in the ERB Assurance requirements for the array alone harder. if apprenticed in to an adjustment 600 pixels sizes travelling to be the accustomed</p> Thu, 08 Mar 2012 23:24:16 -0600 urn:uuid:2979743d-71c2-4993-9c97-d21e30899b0d http://blog.objectmentor.com/articles/2009/10/15/we-must-ship-now-and-deal-with-consequences#comment-209204 "We must ship now and deal with consequences" by mbtshoe <p>Australia Beats By Dre Studio dr dre beats headphones beats studio beats pro beats solo hd pro headphones music Official store Monster Beats By Dre Pro</p> Wed, 07 Mar 2012 04:54:58 -0600 urn:uuid:f5021fc2-83d7-43fb-bf98-83913c795ed3 http://blog.objectmentor.com/articles/2009/10/15/we-must-ship-now-and-deal-with-consequences#comment-208606 "We must ship now and deal with consequences" by price of gold <p>Thank you very much for taking your time to create this very informative site.I have learned a lot from your site.</p> Thu, 23 Feb 2012 02:00:46 -0600 urn:uuid:37eb8c2a-2e4a-4afd-8fbc-5ca707afefc4 http://blog.objectmentor.com/articles/2009/10/15/we-must-ship-now-and-deal-with-consequences#comment-205399 "We must ship now and deal with consequences" by iphone contacts backup <p>For years, we come and go. It is a good choice to find the lost file back.</p> Sun, 08 Jan 2012 23:49:04 -0600 urn:uuid:47d008d9-2411-4d4e-9e66-dd8f3ad28e34 http://blog.objectmentor.com/articles/2009/10/15/we-must-ship-now-and-deal-with-consequences#comment-196098 "We must ship now and deal with consequences" by friv <p>Thanks for sharing this great article! That is very interesting Smile I love reading and I am always searching for informative information like this.</p> Thu, 05 Jan 2012 07:47:12 -0600 urn:uuid:8854b5d6-30b8-4a53-bdaa-1305ac10df35 http://blog.objectmentor.com/articles/2009/10/15/we-must-ship-now-and-deal-with-consequences#comment-194912 "We must ship now and deal with consequences" by backup iphone sms <p>It makes me wonder that maybe the “good way” (for lack of a better term) to built software is a force of nature – the nature of software; the languages, the problems and the tools. So the “good way” is not something that we invent or engineer or refine, but rather something that is (have been gradually) discovered.</p> <p>Such an immutable nature, and the “good way” it implies, do sound like a solid foundation to build a craft upon. :)</p> <p>Will we look back on these blog posts in fifteen years and be struck by how they sketch up the basics of the practices and processes used by then?</p> Wed, 04 Jan 2012 07:12:55 -0600 urn:uuid:5da51d6a-9867-4104-a098-70514ffbff6f http://blog.objectmentor.com/articles/2009/10/15/we-must-ship-now-and-deal-with-consequences#comment-194738 "We must ship now and deal with consequences" by Arcteryx Jackets <p><a href="http://www.arcteryxjackets-sale.com" rel="nofollow">http://www.arcteryxjackets-sale.com</a></p> Sun, 20 Nov 2011 21:49:30 -0600 urn:uuid:7ed030aa-984a-40cb-aba1-cc98b7d298ee http://blog.objectmentor.com/articles/2009/10/15/we-must-ship-now-and-deal-with-consequences#comment-176057 "We must ship now and deal with consequences" by Spyder Jackets <p><a href="http://www.spyderjackets-outlet.net" rel="nofollow">http://www.spyderjackets-outlet.net</a></p> Fri, 18 Nov 2011 00:42:49 -0600 urn:uuid:739f0da7-b9eb-40a4-8e46-44b11ff526be http://blog.objectmentor.com/articles/2009/10/15/we-must-ship-now-and-deal-with-consequences#comment-175224 "We must ship now and deal with consequences" by beats by dr dre <p>A university student<a href="http://www.drdrebeatsheadphones-australia.com" rel="nofollow">beats by dr dre</a> caught by the enemy, the enemy tied him at the poles,<a href="http://www.drdrebeatsheadphones-australia.com/justbeats-solo-purple-onear-headphones-with-controltalk-p-234.html" rel="nofollow">just beats solo headphones purple</a> and then asked him: say, where are you? You do not say it electrocuted! S<a href="http://www.drdrebeatsheadphones-australia.com/cheap-drdre-beats-studio-limited-edition-headphones-blackyellow-p-185.html" rel="nofollow">cheap dr.dre beats studio headphones balck/yellow</a>tudents back to the enemy a word, the result was electrocuted, he said: I am TVU.<a href="http://www.drdrebeatsheadphones-australia.com/cheap-beats-by-drdre-pro-performance-professional-headphones-white-p-192.html" rel="nofollow">Hot sale beats by dr dre pro headphones</a></p> Tue, 15 Nov 2011 01:56:34 -0600 urn:uuid:46227c9b-5d52-4e55-b275-90777cde81cb http://blog.objectmentor.com/articles/2009/10/15/we-must-ship-now-and-deal-with-consequences#comment-172954 "We must ship now and deal with consequences" by Gorbi <p>You have damn right&#8230;.</p> Sat, 05 Nov 2011 04:16:04 -0500 urn:uuid:f186323c-101c-453f-9da4-243d5be9b325 http://blog.objectmentor.com/articles/2009/10/15/we-must-ship-now-and-deal-with-consequences#comment-168634