So, the trick of running a successful software company is not even the flawless code or brilliant marketing multiplied by ambitious sales team. It is what Joel Spoelsky called the Development Abstraction Layer … back in 2006.
Some essential basics for anyone running or wishing to start his own development venture: “Management’s primary responsibility to create the illusion that a software company can be run by writing code, because that’s what programmers do. And while it would be great to have programmers who are also great at sales, graphic design, system administration, and cooking, it’s unrealistic. Like teaching a pig to sing, it wastes your time and it annoys the pig.”