TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

The economics of software correctness

113 pointsby exuperoover 9 years ago

11 comments

brightballover 9 years ago
Everything in development is a cost-benefit trade off. Despite it&#x27;s speed limitations, Ruby remains an excellent language for development because of its focus on developer efficiency. You can produce feature complete systems in a short period of time at the expense of slightly higher hosting costs, which is significantly cheaper than labor costs.<p>Monolith development is still much faster than microservice development even though microservice development is the better long term option by far.<p>It&#x27;s all tradeoffs. I&#x27;m an architecture nut and for years I really wanted nothing more than to design the ultimate perfectly scalable and secure system but unless you&#x27;re at a virtually competition free enterprise, like a telecom or an insurance company the time or budget to do so probably doesn&#x27;t exist.<p>I&#x27;ve gone from &quot;get it done&quot; to &quot;do it perfect&quot; back to &quot;get it done and avoid obvious problem starters&quot;. The reality is just that &quot;get it done&quot; wins the business case almost every single time.
评论 #10337270 未加载
kybernetikosover 9 years ago
So this is all true, however it is surprising how often in development you find people spending more time and effort getting the &#x27;pragmatic&#x27; hack to work acceptably than it would have taken to do it right.<p>People often underestimate the difficulties of getting a hack to work and overestimate how long doing something correctly will take. Even with short time horizons.
评论 #10335360 未加载
评论 #10337223 未加载
davidwover 9 years ago
&quot;The problem is not that we don’t know how to write correct software. The problem is that correct software is too expensive.&quot;<p>That&#x27;s something I&#x27;ve been saying for a while. It&#x27;s all about the economics of the situation, rather than the impossibility if it.<p>Naturally, there <i>are</i> also improvements here and there that decrease bugs without increasing efforts, and those are worth looking for.
评论 #10334353 未加载
zappo2938over 9 years ago
Joel Spolsky published a blog post in 2000 named &quot;Things You Should Never Do&quot; (<a href="http:&#x2F;&#x2F;www.joelonsoftware.com&#x2F;articles&#x2F;fog0000000069.html" rel="nofollow">http:&#x2F;&#x2F;www.joelonsoftware.com&#x2F;articles&#x2F;fog0000000069.html</a>)<p>It&#x27;s about why Microsoft with IE6 won the browser war against Netscape who made the single worst strategic mistake a software company can make by rewriting Netscape 6.0 throwing out all the code from Netscape 4.<p>Netscape was working with extremely buggy and convoluted code in the older version and trying to save the development community from the nightmare that is IE6, ended being late to the market with a superior product. Joel makes a very good observation that often people want to throw out old code because they think it&#x27;s a mess, but the truth is counter intuitive that the old code contains vast amounts of knowledge.<p>A company can be first, best, or cheat and in this case while Netscape was trying to be best, Microsoft was first.<p>This is the reason iterative code development is best. Speed of iteration beats quality of iteration 9 out of 10 times. Boyd&#x27;s Law of Iteration (<a href="http:&#x2F;&#x2F;blog.codinghorror.com&#x2F;boyds-law-of-iteration&#x2F;" rel="nofollow">http:&#x2F;&#x2F;blog.codinghorror.com&#x2F;boyds-law-of-iteration&#x2F;</a>) The best software is software that released most often, not released the most correct.<p>If I was to release a browser in say 2008 to compete with the dominance of IE, what is the single most important feature I could put into that browser? I&#x27;d put a feature for forcing iteration, so that the browser can automatically update on the client finishing a development cycle rather than release the update preinstalled unable to remove on newly bought computers.
评论 #10336900 未加载
jaggederestover 9 years ago
I think one of the other problems is that people value the economics of software correctness using their gut, rather than empirical analysis.<p><a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Hyperbolic_discounting" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Hyperbolic_discounting</a><p>Everyone knows that bugs are problematic eventually, it just seems that they can&#x27;t put that on a level playing field with the up front costs, be they in terms of time, features, or effectiveness.<p>As an example, if you asked Home Depot whether they were saving money with their self checkout machines, I&#x27;m sure the answer would be different before their data breach vs after. Even after being warned they simply couldn&#x27;t properly discount the possibility of massive damage in the future when offered a short term benefit.
评论 #10335879 未加载
methodoverover 9 years ago
&gt; You have probably never written a significant piece of correct software.<p>So true.<p>When we were hiring for a senior engineer position a few months ago, one applicant said he wrote &quot;bug free code.&quot;<p>I laughed, sent it around on slack. We all chuckled at it. The applicant did not get a call.
wellpastover 9 years ago
&gt; If you want better software, make or find tools that reduce the effort of finding bugs. ... Better monitoring is another. Code review processes. Static analysis. Improved communication. There are many more.<p>I&#x27;m going to come out and suggest that even THESE are more expensive than most businesses need. I believe code review processes are insanely expensive for what they usually return (wrt bug costs).
draw_downover 9 years ago
Main takeaway: &quot;Buggy software is not a moral failing.&quot;
hyperpalliumover 9 years ago
What about reducing bugs through code reuse, in the form of libraries and frameworks? Because they have more users, more bugs have been found, reported and fixed. e.g. using standard libraries instead of writing your own.
评论 #10335760 未加载
评论 #10335931 未加载
评论 #10337889 未加载
jordanchanover 9 years ago
Reading this made me wonder...do SpaceX and other private space flight programs have similar standards of rigor?
评论 #10337085 未加载
a3voicesover 9 years ago
It&#x27;s possible to write software with very few bugs if you&#x27;re very experienced in the language&#x2F;framework and software development in general, writing all the code yourself, and perfectly understand the requirements. Otherwise, good luck.
评论 #10334927 未加载
评论 #10334648 未加载