The problem of unqualified people responsible for making decision is not limited to software companies.<p>A misconception that can cause this is the belief that people are interchangeable. Sure, smart people can learn to play almost any role. But, practically, someone learning a role will make more mistakes and take longer than someone who already has some success in that role.
i think that it's not necessarily that we have outer-role people performing the roles they're not accustomed to, it's more that one person cannot be everything necessary to create a successful software application. the problem is communication, because since we don't have this miracle "jack of all" person, we're functioning as separate body parts of the business frankenstein monster, each part having misconceptions of what the other is doing and is supposed to do.<p>it's because of this that you can have the best design, best bizdev, best engineer and still fail because you lack the cohesion to create one solid being. the glue you need is great management.