How to increase quality of software solutions to business problems?

Alternative title: How to get more benefits from the application of software to solve business problems?

You know, there is no a single factor that detonate productivity and quality, in other words "there is no silver bullet". Productivity and quality is a function of many, many factors and if you want to group them perhaps you found these groups of factors:

1 - People
2 - Process
3 - Architecture and design
4 - Technology

The order shows the relative importance and level of influence on the net results; that is, the impact that factors in any given group have on the net results are at least an order of magnitude greater than the impact due to factors of the subsequent group.

For instance, it doesn’t matter which development process you have, if you lack of a jelled team of individuals, then the net results might not pass from average. In the same line of thought, if you have a technically sound design and architecture but lack a process to carrying it out and sustain over time, then the net results of design can not be fully achieved.

So the more factors you pay attention to, the better chances to increase the benefits from software development.

As of process and design groups of factors, nowadays you should seriously considerer the more prevalent consciousness that doing software is not like doing goods made of atoms, especially about "what is design" and the "process of design". More details about that in the following references:

Casting Software Design in the Function-Behavior-Structure Framework
by Philippe Kruchten

Editor's Introduction: Software Design in a Postmodern Era
by Philippe Kruchten

Both from IEEE Software, Volume: 22 Issue: 2 March-April 2005

Also: Wicked problems, righteous solutions