views:

105

answers:

5

A lot of the talk around quality code and quality software seems to revolve around the needs of "The Market"

Can the quality of code and the quality of the resulting software be judged outside of this business context? If so, should it? If not, why not?

+4  A: 

Talking about software "the market" doesn't need to be a commercial one. The "market" for free software tools is anyone who wants to use them, but there is still a similar effect of users choosing your product or another one because of the quality. Market forces exist even when there is no direct commercial transaction because the exchange of money for a product, in the software world, is only a very small part of acquiring, installing, configuring and using a piece of software.

So unless you are building software that won't have any users, then a market analogy is most definitely an appropriate one.

alxp
+1  A: 

Yes and no.

The quality of a software can be viewed as something absolute; if it does not work, or there are bugs or has some defects, then it is of no quality.

In real life, there are always constraints to be applied to software quality; they are most of the time of 3 kinds, either you are out of time, out of money or out of resources.

It is up to the company to decide at what level the quality is acceptable for the customers; the company should compute the risk factor of delivering a software with a known quantity of defects to customers (to the market)

If the market can live with a number of existing documented defects and the market expect to software to evolve in time to fix and resolve those defects, then they can use the software knowing the limitations.

Max
+1  A: 

I think there exist quality criteria that apply to every software (independent of its target market) - e.g. stability of a program, confirming to usability best practices, confirming to standards (security, data access, documents etc.). In other words, good quality software should behave :-)

The market comes into play once you start asking questions like "will the software improve the life of users of type xy"...

ISW
A: 

Sure, the quality of the code and resulting software could be judged outside of a business context. The usefulness of such analysis may be questionable in some cases as things like Code Golf aren't necessarily something useful to end users of the software.

In some respects software and code can be viewed like works of art and thus subject to many many forms of analysis.

JB King
A: 

There are certainly aspects of 'quality' software which impact market realities, but I would consider the market impact to be second-order effect, and there are plenty of other reasons outside of business contexts to discuss code quality.

Further, I think 'quality', as a term, is a bit loaded for this discussion. Really it needs to be broken down into component pieces (generality & extensibility, maintainability, robustness, etc). Having an extensible design is deeply important for a start-up trying to move quickly, but far less so for the pilot trusting in the robustness of software flying his aircraft.

johnny