<?xml version="1.0" encoding="UTF-8"?><rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
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/"
> <channel><title>Comments on: Software Development And The Sunk Cost Fallacy</title> <atom:link href="http://www.skorks.com/2010/04/software-development-and-the-sunk-cost-fallacy/feed/" rel="self" type="application/rss+xml" /><link>http://www.skorks.com/2010/04/software-development-and-the-sunk-cost-fallacy/</link> <description>For the betterment of the software craft...</description> <lastBuildDate>Mon, 21 Nov 2011 13:57:06 +0000</lastBuildDate> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.1.2</generator> <item><title>By: Linsey Lysaght</title><link>http://www.skorks.com/2010/04/software-development-and-the-sunk-cost-fallacy/comment-page-1/#comment-7160</link> <dc:creator>Linsey Lysaght</dc:creator> <pubDate>Sun, 29 May 2011 19:30:16 +0000</pubDate> <guid
isPermaLink="false">http://www.skorks.com/?p=1716#comment-7160</guid> <description>some  genuinely  superb  info  ,  Sword lily I  discovered  this.</description> <content:encoded><![CDATA[<p>some  genuinely  superb  info  ,  Sword lily I  discovered  this.</p> ]]></content:encoded> </item> <item><title>By: Nathani</title><link>http://www.skorks.com/2010/04/software-development-and-the-sunk-cost-fallacy/comment-page-1/#comment-7026</link> <dc:creator>Nathani</dc:creator> <pubDate>Sat, 12 Mar 2011 02:49:05 +0000</pubDate> <guid
isPermaLink="false">http://www.skorks.com/?p=1716#comment-7026</guid> <description>i don&#039;t like java script too because it suck.</description> <content:encoded><![CDATA[<p>i don&#8217;t like java script too because it suck.</p> ]]></content:encoded> </item> <item><title>By: luvieere</title><link>http://www.skorks.com/2010/04/software-development-and-the-sunk-cost-fallacy/comment-page-1/#comment-6696</link> <dc:creator>luvieere</dc:creator> <pubDate>Fri, 26 Nov 2010 09:46:59 +0000</pubDate> <guid
isPermaLink="false">http://www.skorks.com/?p=1716#comment-6696</guid> <description>I see a problem with this sunken cost fallacy: the alternative could be much worse. What would happen if, industry-wide, there were a tendency to just dump emerging projects because they had certain flaws? Nothing would reach maturity as a project and endeavors would be killed at the first signs of trouble, not giving them the opportunity to become useful through their good parts.
In my opinion, it&#039;s not the sunken cost that is the problem, it&#039;s the fact that we expect stuff to go all lean and have no flaws in the first place. Software is hard and complex and must accommodate  hard to implement and complex changes constantly. All this takes more and more money as more and more functionality is desired from the same  product. Killing the product and starting all over again will:
a) cost at least as much as is did to get it in the current stage.
b) have to be repeated as many times necessary when new functionality is added in time and the current version becomes bloated.
So, as you can see, there&#039;s money down the drain both ways, the best you can save is some degree of frustration for a while.</description> <content:encoded><![CDATA[<p>I see a problem with this sunken cost fallacy: the alternative could be much worse. What would happen if, industry-wide, there were a tendency to just dump emerging projects because they had certain flaws? Nothing would reach maturity as a project and endeavors would be killed at the first signs of trouble, not giving them the opportunity to become useful through their good parts.</p><p>In my opinion, it&#8217;s not the sunken cost that is the problem, it&#8217;s the fact that we expect stuff to go all lean and have no flaws in the first place. Software is hard and complex and must accommodate  hard to implement and complex changes constantly. All this takes more and more money as more and more functionality is desired from the same  product. Killing the product and starting all over again will:<br
/> a) cost at least as much as is did to get it in the current stage.<br
/> b) have to be repeated as many times necessary when new functionality is added in time and the current version becomes bloated.</p><p>So, as you can see, there&#8217;s money down the drain both ways, the best you can save is some degree of frustration for a while.</p> ]]></content:encoded> </item> <item><title>By: Mejores blogs sobre tecnología. &#171; droope.wordpress</title><link>http://www.skorks.com/2010/04/software-development-and-the-sunk-cost-fallacy/comment-page-1/#comment-5975</link> <dc:creator>Mejores blogs sobre tecnología. &#171; droope.wordpress</dc:creator> <pubDate>Tue, 08 Jun 2010 21:23:29 +0000</pubDate> <guid
isPermaLink="false">http://www.skorks.com/?p=1716#comment-5975</guid> <description>[...] en este blog es altamente informativo y entretenido. I love this blog. Posts recomendados: Software development and the sunk cost fallacy y Did your boss thank you for coding yourself to [...]</description> <content:encoded><![CDATA[<p>[...] en este blog es altamente informativo y entretenido. I love this blog. Posts recomendados: Software development and the sunk cost fallacy y Did your boss thank you for coding yourself to [...]</p> ]]></content:encoded> </item> <item><title>By: Scott Alan Miller</title><link>http://www.skorks.com/2010/04/software-development-and-the-sunk-cost-fallacy/comment-page-1/#comment-5316</link> <dc:creator>Scott Alan Miller</dc:creator> <pubDate>Sat, 08 May 2010 23:28:21 +0000</pubDate> <guid
isPermaLink="false">http://www.skorks.com/?p=1716#comment-5316</guid> <description>ActiveX and Java were never meant to be replacements for JavaScript but for HTML altogether.  JavaScript is a means of automating the existing web.  Neither ActiveX nor Java interact with the page itself but exist within it inside a container.  Very different concepts.</description> <content:encoded><![CDATA[<p>ActiveX and Java were never meant to be replacements for JavaScript but for HTML altogether.  JavaScript is a means of automating the existing web.  Neither ActiveX nor Java interact with the page itself but exist within it inside a container.  Very different concepts.</p> ]]></content:encoded> </item> <item><title>By: Dave</title><link>http://www.skorks.com/2010/04/software-development-and-the-sunk-cost-fallacy/comment-page-1/#comment-5176</link> <dc:creator>Dave</dc:creator> <pubDate>Thu, 06 May 2010 02:21:17 +0000</pubDate> <guid
isPermaLink="false">http://www.skorks.com/?p=1716#comment-5176</guid> <description>Javascript was created by Netscape during its crazy startup phase, when programmers were sleeping under their desks (literally) and they wanted a way to provide scripted interaction with the page objects. They got lucky and had a designer who knew what he was doing. Back then it was called Livescript. Then they nearly screwed the whole pooch by renaming it Javascript as a marketing ploy, to play off the growing Java name recognition. It worked too -- millions of people conflated the two, to the chagrin of Java and Javascript developers everywhere.
I believe another language could displace it, but it would have to be adopted by all the big browser players (Microsoft, Mozilla, Apple, and now Google), and realistically would have to become an official standard to really gain any traction with the web elites. From that point I expect it would be about five years before you started seeing Javascript displaced in significant applications, and even then it would be phased in alongside Javascript rather than replacing it 100% at once.
Kind of like the other comment regarding not throwing out decades-old legacy code. Because by that point, Javascript WILL be a &quot;decades old&quot; language... :)</description> <content:encoded><![CDATA[<p>Javascript was created by Netscape during its crazy startup phase, when programmers were sleeping under their desks (literally) and they wanted a way to provide scripted interaction with the page objects. They got lucky and had a designer who knew what he was doing. Back then it was called Livescript. Then they nearly screwed the whole pooch by renaming it Javascript as a marketing ploy, to play off the growing Java name recognition. It worked too &#8212; millions of people conflated the two, to the chagrin of Java and Javascript developers everywhere.</p><p>I believe another language could displace it, but it would have to be adopted by all the big browser players (Microsoft, Mozilla, Apple, and now Google), and realistically would have to become an official standard to really gain any traction with the web elites. From that point I expect it would be about five years before you started seeing Javascript displaced in significant applications, and even then it would be phased in alongside Javascript rather than replacing it 100% at once.</p><p>Kind of like the other comment regarding not throwing out decades-old legacy code. Because by that point, Javascript WILL be a &#8220;decades old&#8221; language&#8230; :)</p> ]]></content:encoded> </item> <item><title>By: Mike R</title><link>http://www.skorks.com/2010/04/software-development-and-the-sunk-cost-fallacy/comment-page-1/#comment-5074</link> <dc:creator>Mike R</dc:creator> <pubDate>Wed, 05 May 2010 04:31:52 +0000</pubDate> <guid
isPermaLink="false">http://www.skorks.com/?p=1716#comment-5074</guid> <description>Great article Alan, and valuable insight from John - I wish there was more constructive forum debate like this!
One point that I&#039;d like to add is that we often tend to overestimate how much of the cost is sunk into the code itself. The most expensive part of developing software is gaining a deep understanding of both the problem and the solution domains.
If you still have those people with the understanding, then a code re-write would be significantly cheaper. For a complex decades-old system, the cost of gaining a deep and broad understanding would be huge. The evolution of those systems tends to slow more and more until they are replaced by a revolution.
BTW, I agree with your javascript example (and HTML for that matter) but I find the more interesting debate is around if/when/how to re-write.</description> <content:encoded><![CDATA[<p>Great article Alan, and valuable insight from John &#8211; I wish there was more constructive forum debate like this!</p><p>One point that I&#8217;d like to add is that we often tend to overestimate how much of the cost is sunk into the code itself. The most expensive part of developing software is gaining a deep understanding of both the problem and the solution domains.</p><p>If you still have those people with the understanding, then a code re-write would be significantly cheaper. For a complex decades-old system, the cost of gaining a deep and broad understanding would be huge. The evolution of those systems tends to slow more and more until they are replaced by a revolution.</p><p>BTW, I agree with your javascript example (and HTML for that matter) but I find the more interesting debate is around if/when/how to re-write.</p> ]]></content:encoded> </item> <item><title>By: Rob Whelan</title><link>http://www.skorks.com/2010/04/software-development-and-the-sunk-cost-fallacy/comment-page-1/#comment-5025</link> <dc:creator>Rob Whelan</dc:creator> <pubDate>Tue, 04 May 2010 23:01:05 +0000</pubDate> <guid
isPermaLink="false">http://www.skorks.com/?p=1716#comment-5025</guid> <description>Ha!  I had that same exact link ready to post once I finished reading through the comments, amazed that no one was pointing out the massive pitfalls of &quot;starting from scratch&quot; on a project of any significant size.
Joel&#039;s article is also somewhat one-sided, but his points are valid, and this was a tidy way to put the reason for the skewed evaluations: &quot;It’s harder to read code than to write it.&quot;
The proper way to &quot;throw away&quot; a huge, ugly mess of code in most cases is to refactor it gradually into non-existence, not throw it away first and *then* see if you can reproduce functionality you may not have even fully understood.
Another way to put it -- the sunk cost fallacy absolutely applies to software development decisions, and if you have access to *reliable* estimations of effort required for the various different options, the decision is easy (and every once in a while it&#039;ll be the right thing to jettison  an entire codebase).  But if you rely on the little-more-than-gut estimates (and natural excitement at starting fresh, with noble aims of &quot;doing it right this time&quot;...), sometimes you&#039;re really going to suffer in the long run... and due to budget overruns, last-minute hacks, desperate fixes, etc. after a few years your new project will be just as much an ugly mess as the one you replaced (but that ugly mess exchange will have been so very much more expensive than working to clean up the first mess...).
You mentioned day-to-day throwing away of code in a comment below -- that&#039;s great; that&#039;s refactoring, and that&#039;s the real secret to good architecture &amp; code, not starting from scratch every time it feels like a good idea.
[reading more comments... apologies if I&#039;m just rewording John&#039;s points too much here]</description> <content:encoded><![CDATA[<p>Ha!  I had that same exact link ready to post once I finished reading through the comments, amazed that no one was pointing out the massive pitfalls of &#8220;starting from scratch&#8221; on a project of any significant size.</p><p>Joel&#8217;s article is also somewhat one-sided, but his points are valid, and this was a tidy way to put the reason for the skewed evaluations: &#8220;It’s harder to read code than to write it.&#8221;</p><p>The proper way to &#8220;throw away&#8221; a huge, ugly mess of code in most cases is to refactor it gradually into non-existence, not throw it away first and *then* see if you can reproduce functionality you may not have even fully understood.</p><p>Another way to put it &#8212; the sunk cost fallacy absolutely applies to software development decisions, and if you have access to *reliable* estimations of effort required for the various different options, the decision is easy (and every once in a while it&#8217;ll be the right thing to jettison  an entire codebase).  But if you rely on the little-more-than-gut estimates (and natural excitement at starting fresh, with noble aims of &#8220;doing it right this time&#8221;&#8230;), sometimes you&#8217;re really going to suffer in the long run&#8230; and due to budget overruns, last-minute hacks, desperate fixes, etc. after a few years your new project will be just as much an ugly mess as the one you replaced (but that ugly mess exchange will have been so very much more expensive than working to clean up the first mess&#8230;).</p><p>You mentioned day-to-day throwing away of code in a comment below &#8212; that&#8217;s great; that&#8217;s refactoring, and that&#8217;s the real secret to good architecture &amp; code, not starting from scratch every time it feels like a good idea.</p><p>[reading more comments... apologies if I'm just rewording John's points too much here]</p> ]]></content:encoded> </item> <item><title>By: Ken Jackson</title><link>http://www.skorks.com/2010/04/software-development-and-the-sunk-cost-fallacy/comment-page-1/#comment-5010</link> <dc:creator>Ken Jackson</dc:creator> <pubDate>Tue, 04 May 2010 18:37:49 +0000</pubDate> <guid
isPermaLink="false">http://www.skorks.com/?p=1716#comment-5010</guid> <description>Alan, stick to your guns on Javascript.  It really is an ugly language.  Sure it&#039;s powerful, but so is x86 assembly language, and I don&#039;t write in it anymore either (at least not by choice).
But like x86 assembly, the people who have to write in it tend to defend it.  And they can show you cool stuff that can be done with it (I did some really cool stuff with Logo when I was 6), but it doesn&#039;t change the fact that Javascript violates several of the key tenets of a good language.  Such as basic things should be easy.  Simple mistakes should be hard to make.  Difficult things should be possible.  Of these Javascript really only satisfies the last one.</description> <content:encoded><![CDATA[<p>Alan, stick to your guns on Javascript.  It really is an ugly language.  Sure it&#8217;s powerful, but so is x86 assembly language, and I don&#8217;t write in it anymore either (at least not by choice).</p><p>But like x86 assembly, the people who have to write in it tend to defend it.  And they can show you cool stuff that can be done with it (I did some really cool stuff with Logo when I was 6), but it doesn&#8217;t change the fact that Javascript violates several of the key tenets of a good language.  Such as basic things should be easy.  Simple mistakes should be hard to make.  Difficult things should be possible.  Of these Javascript really only satisfies the last one.</p> ]]></content:encoded> </item> <item><title>By: Trok</title><link>http://www.skorks.com/2010/04/software-development-and-the-sunk-cost-fallacy/comment-page-1/#comment-4978</link> <dc:creator>Trok</dc:creator> <pubDate>Tue, 04 May 2010 11:31:26 +0000</pubDate> <guid
isPermaLink="false">http://www.skorks.com/?p=1716#comment-4978</guid> <description>It&#039;s not fair to always pick on JavaScript. JavaScript is actually a quite good language and projects such as node.js and the V8 interpreter have picked up a good amount of steam. I&#039;ve also seen interesting use cases of using JavaScript for configuration files for Java projects via Rhino.
What people hate is JavaScript and the DOM. That&#039;s what sucks.</description> <content:encoded><![CDATA[<p>It&#8217;s not fair to always pick on JavaScript. JavaScript is actually a quite good language and projects such as node.js and the V8 interpreter have picked up a good amount of steam. I&#8217;ve also seen interesting use cases of using JavaScript for configuration files for Java projects via Rhino.</p><p>What people hate is JavaScript and the DOM. That&#8217;s what sucks.</p> ]]></content:encoded> </item> </channel> </rss>
