Now, here’s an insider tip: if your objective is living a nightmare, tearing yourself apart and swear never touching a keyboard again, choose [consulting]. If your objective is enjoying a healthy life, making money and living long and prosper, choose [your own products].
As the author himself allows, the arguments presented either way are grossly oversimplified. In fact I think there is a very simple axiom underlying what he says, which if untrue moves the balance away from writing your own products and into consulting, contracting or even salaried work. Let me start by introducing some features missed out of the original article. They may, depending on your point of view, be pros or cons. They may also apply to more than one of the roles.
- builds up relationships with many people and organisations
- is constantly learning
- works on numerous different products
- is often the saviour of projects and businesses
- gets to choose what the next project is
- has had the risks identified and managed by his client
- can focus on two things: writing software, and convincing people to pay him to write software
- renegotiates when the client's requirements change
A μISV developer:
- is in sales, marketing, support, product management, engineering, testing, graphics, legal, finance, IT and HR until she can afford to outsource or employ
- has no income until version 1.0 is out
- cannot choose when to put down the next version to work on the next product
- can work on nothing else
- works largely alone
- must constantly find new ways to sell the same few products
- must pay for her own training and development
A salaried developer:
- may only work on what the managers want
- has a legal minimum level of security
- can rely on a number of other people to help out
- can look to other staff to do tasks unrelated to his mission
- gets paid holiday, sick and parental leave
- can agree a personal development plan with the highers-up
- owns none of the work he creates
I think the axiom underpinning Adrian Kosmaczewski's article is:
happiness ∝ creative freedom. Does that apply to you? Take the list of things I've defined above, and the list of things in the original article, and put them not into "μISV vs. consultant" but "excited vs. anxious vs. apathetic". Now, this is more likely to say something about your personality than about whether one job is better than another. Do you enjoy risks? Would you accept a bigger risk in order to get more freedom? More money? Would you trade the other way? Do you see each non-software-developing activity as necessary, fun, an imposition, or something else?
So thankyou, Adrian, for making me think, and for setting out some of the stalls of two potential careers in software. Unfortunately I don't think your conclusion is as true as you do.