<p>UPDATED: I'm asking this from a <strong>development perspective</strong>, however to illustrate, a canoical <em>non-development</em> example that comes to mind is that if it costs, say, $10,000 
to keep a uptime rate of 99%, then it theoretically can cost $100,000 to keep a rate 
of 99.9%, and possibly $1,000,000 to keep a rate of 99.99%. </p>

<p>Somewhat like calculus in approaching 0, as we closely approach 100%, 
the cost can increase exponentially.  Therefore, as a developer or PM, where do you decide 
that the deliverable is "good enough" given the time and monetary constraints, e.g.: are you getting a good ROI at 99%, 99.9%, 
99.99%?</p>

<p>I'm using a non-development example because I'm not sure of a solid metric for development.  Maybe in the above example "uptime" could be replaced with "function point to defect ratio", or some such reasonable measure rate of bugs vs. the complexity of code. I would also welcome input regarding all stages of a software development lifecycle.</p>

<p>Keep the classic <a href="http://en.wikipedia.org/wiki/Project_triangle" rel="nofollow noreferrer">Project Triangle</a> constraints in mind (quality vs. speed vs. cost). And let's assume that the customer wants <em>the best quality you can deliver</em> given the original budget.</p>

[{'answer_id': 54757, 'author': '17 of 26', 'author_id': 2284, 'author_profile': 'https://Stackoverflow.com/users/2284', 'pm_score': 2, 'selected': False, 'text': '<p>I think the answer to this question depends entirely on the individual application.</p>\n\n<p>Software that has an impact on human safety has much different requirements than, say, an RSS feed reader.</p>\n'}, {'answer_id': 54765, 'author': 'Ben Collins', 'author_id': 3279, 'author_profile': 'https://Stackoverflow.com/users/3279', 'pm_score': 1, 'selected': False, 'text': '<p>To expand on what "17 of 26" said, the answer depends on value to the customer.  In the case of critical software, like aircrafct controller applications, the value to the customer of a high quality rating by whatever measure they use is quite high.  To the user of an RSS feed reader, the value of high quality is considerably lower.</p>\n\n<p>It\'s all about the <em>customer</em> (notice I didn\'t say user - sometimes they\'re the same, and sometimes they\'re not).</p>\n'}, {'answer_id': 54811, 'author': 'Chris Upchurch', 'author_id': 2600, 'author_profile': 'https://Stackoverflow.com/users/2600', 'pm_score': 3, 'selected': False, 'text': "<p>There's no way to answer this without knowing <em>what happens when your application goes down</em>.</p>\n\n<ul>\n<li>If someone dies when your application goes down, uptime is worth spending millions or even billions of dollars on (aerospace, medical devices).</li>\n<li>If someone may be injured if your software goes down, uptime is worth hundreds of thousands or millions of dollars (industrial control systems, auto safety devices)</li>\n<li>If someone looses millions of dollars if your software goes down, uptime is worth spending millions on (financial services, large e-commerce apps).</li>\n<li>If someone looses thousands of dollars if your software goes down, uptime is worth spending thousands on (retail, small e-commerce apps).</li>\n<li>If someone will swear at the computer and looses productivity while it reboots when your software goes down, then uptime is worth spending thousands on (most internal software).</li>\n<li>etc.</li>\n</ul>\n\n<p>Basically take (cost of going down) x (number of times the software will go down) and you know how much to spend on uptime.</p>\n"}, {'answer_id': 54826, 'author': 'Mendelt', 'author_id': 3320, 'author_profile': 'https://Stackoverflow.com/users/3320', 'pm_score': 2, 'selected': False, 'text': "<p>The project triangle is a gross simplification. In lots of cases you can actually save time by improving quality. For example by reducing repairs and avoiding costs in maintenance. This is not only true in software development.Toyota lean production proved that this works in manufacturing too.</p>\n\n<p>The whole process of software development is far too complex to make generalizations on cost vs quality. Quality is a fuzzy concept that consists of multiple factors. Is testable code of higher quality than performant code? Is maintainable code of higher quality than testable code? Do you need testable code for an RSS reader or performant code? And for a fly-by-wire F16?</p>\n\n<p>It's more productive to make informed desisions on a case-by-case basis. And don't be afraid to over-invest in quality. It's usually much cheaper and safer than under-investing.</p>\n"}, {'answer_id': 54840, 'author': 'Gishu', 'author_id': 1695, 'author_profile': 'https://Stackoverflow.com/users/1695', 'pm_score': 2, 'selected': False, 'text': '<p>To answer in an equally simplistic way..\n..When you stop hearing from the customers (and not because they stopped using your product).. except for enhancement requests and bouquets :)</p>\n\n<p>And its not a triangle, it has 4 corners - Cost Time Quality and Scope.</p>\n'}, {'answer_id': 54849, 'author': 'Mark Witczak', 'author_id': 1536194, 'author_profile': 'https://Stackoverflow.com/users/1536194', 'pm_score': 1, 'selected': False, 'text': '<p>Chasing the word "Quality" is like chasing the horizon. I have never seen anything (in the IT world or outside) that is 100% quality. There\'s always room for improvement.</p>\n\n<p>Secondly, "quality" is an overly broad term. It means something different to everyone and subjective in it\'s degree of implementation.</p>\n\n<p>That being said, every effort boils down to what "engineering" means--making the right choices to balance cost, time and key characteristics (ie. speed, size, shape, weight, etc.) These are constraints.</p>\n'}, {'answer_id': 60048, 'author': 'Ethan Gunderson', 'author_id': 2066, 'author_profile': 'https://Stackoverflow.com/users/2066', 'pm_score': 2, 'selected': False, 'text': "<p><strong>The client, of course, would likely balk at that number and might say no more than 1 hour of downtime per year is acceptable. That's 12 times more stable. Do you tell the customer, sorry, we can't do that for $100,000, or do you make your best attempt, hoping your analysis was conservative?</strong></p>\n\n<p>Flat out tell the customer what they want isn't reasonable.  In order to gain that kind of uptime, a massive amount of money would be needed, and realistically, the chances of reaching that percentage of uptime constantly just isn't possible.</p>\n\n<p>I personally would go back to the customer and tell them that you'll provide them with the best setup with 100k and set up an outage report guideline.  Something like, for every outage you have, we will complete an investigation as to why this outage happened, and how what we will do to make the chances of it happening again almost non existent.</p>\n\n<p>I think offering SLAs is just a mistake.</p>\n"}, {'answer_id': 181088, 'author': 'torial', 'author_id': 13990, 'author_profile': 'https://Stackoverflow.com/users/13990', 'pm_score': 2, 'selected': False, 'text': '<p>The Quality vs Good Enough discussion I\'ve seen has a practical ROI at 95% defect fixes.  Obviously show stoppers / critical defects are fixed (and always there are the exceptions like air-plane autopilots etc, that need to not have so many defects).  </p>\n\n<p>I can\'t seem to find the reference to the 95% defect fixes, it is either in Rapid Development or in Applied Software Measurement by Caper Jones.</p>\n\n<p>Here is a link to a useful strategy for attacking code quality:\n<a href="http://www.gamedev.net/reference/articles/article1050.asp" rel="nofollow noreferrer">http://www.gamedev.net/reference/articles/article1050.asp</a></p>\n'}]
['https://Stackoverflow.com/questions/54737', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/5487/']