I am currently reading The Black Swan: The Impact of the Highly Improbable by Nassim Nicholas Taleb, certainly a great book to read.
One interesting note at the beginning of the book is about Scalable vs. Non-Scalable job. I found this distinction interesting. For me, the word scalable had a precise meaning for software: an application (especially a server app) is said to be scalable if, by running it simultaneously on N pieces of hardware, the application performance is multiplied by N. But let’s focus on the fact that programming is one of the rare job that can be done in a scalable or non-scalable way.
So what is a non-scalable job? It is a profession where you are paid by the hour. Being a programmer, team leader or architect, employee or consultant or mentor, all these are non scalable job. Owning a significant amount of shares of the company you are programming for, this is a scalable job. Developing a unique software and selling it to non-bounded number of end users, this is a scalable job. Creating one web-site for each client is non-scalable, but selling licenses for a web-site creator tool is scalable. Developing an OSS project and selling consultancy around it is not scalable.
The author Nassim Nicholas Taleb got advised once to choose a scalable job, and he chosed to be a trader (and indeed, ordering 1K or 1M of shares require the same amount of effort for a potential benefit, or loss, 1000 times higher). A posteriori, Taleb considers that this advice was a bad advice, because in scalable job areas, most of the benefits are aggregated by a very few numbers of actors.
But thanks to its zero cost of replication, and thanks to the internet medium for diffusion, software has the unique characteristic to create not-too-risky scalable activities. Of course if you try to develop the next OS to concurrence Windows, it is pretty risky. But investing 3 months of development in a prototype to gauge the response of a niche market is not too risky.
While I see around many talented programmers, I see very few of them engaged in a scalable activity. Talented programmers usually get a decent hourly fixed income. In addition they enjoy their job and they are not superficial. Hence becoming rich is not part of their priority in life.
Often I have seen marketing and management guys treating programmers as a necessary evil in software companies. They are expensive, they contest decisions, they have ego. And often I have seen programmers frustrated to see marketing and management guys earning non-decent amount of money by selling the programs they develop.
But often, programmers don’t realize that the power is in their hands. Why not trying to invest your talent into your own ISV and stop seeing others making money on your back. As said, programmers are not superficial people and being rich might not be your top priority. But money is not just about being millionaire, money is the pass to freedom: freedom of not undergoing incompetent management and their inept decisions, freedom of coding your way, with the most recent version of your favorite language instead of maintaining old dusty legacy, freedom to code at your best suited time of the day and spend more time with your relatives, freedom to not have to ask anybody when planning your vacation… And as a bonus, with a scalable activity you can make part of the possible to be financially independent one day.
Hope this modest post can help you!