Tuesday, December 15, 2009

Consulting versus micro-ISV development

Reflexions on the software business really is an interesting read. Let me borrow Adrian's summary of his own post:

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.

A consultant:


  • 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.

5 comments:

Adrian Kosmaczewski said...

Hi Graham,

First of all, thanks for your post! I think the article was a success just because it led to you and many others to think about the pros and cons of each option.

In any case, I must say that I wrote the article, as all the others, using my personal experience here in Switzerland (which I mention). So what I say might not be valid in other parts of the world.

For example, some things you mention in your post, at least in the companies I've seen in Switzerland, are downright impossible: a salaried developer has no security, no matter what the companies say (you can get fired at any time, so I don't see what security you're talking about), and gets no development plan to grow in the company (seriously, it might exist, but I have yet to see one over here). Consultants rarely get to choose the following projects (it's much harder over here than you think) and the renegotiations when requirements change are usually in favor of the client (because you are a consultant, not a lawyer, and in this country, laws are made for companies, not individuals - tip: that's why banks and insurances are so successful here, and that's why many companies set up headquarters here). And being the "saviour" of people and businesses, well, yeah, if you believe in Santa, that might be the case. You are usually the one with the broken teeth. Finally, I agree with most of your points about µISV, but I could give you a strategy to fight against each of the risks you mention. Nothing an intelligent person couldn't avoid.

So I stand to my opinion: losing the ownership of your work it's not worth a salary. It's a question of principles and freedom :)

Thanks again and I'd love to hear your comments!

Travis Spencer said...

I agree w/ Adrian. A consulting company is limited by people and the hours in a day -- diseconomy of scale. People cost a lot more than a Web site that allows customers to input their Visa and download the bits. You can see this by analyzing the annual reports of any company that breaks out their yearly revenue by professional services and product sales (e.g., salesforce.com). The percentage earned from sales that do not involve humans is orders of magnitude larger.

Graham Lee said...

Adrian,

thanks for finding me and commenting :-). I think we probably are just the products of different ecosystems - in the UK there's a reasonable legal framework regarding dismissal, redundancy etc. and companies that can afford it will try to do better than the legal minimum, as a way of attracting and retaining staff. Bonuses (cash, stock options, both) are not uncommon even for junior developers, and while the average IT worker stays in a post for 1.5-4 years it would be possible to build a life-long career, if someone wanted to do that.

Regarding choice of project, I've been an independent contractor/consultant now for a few months, having left a salaried post of 2 years (which was my 3rd salaried job). I have so far accepted three different (part-time) contracts of around a dozen offered. Of a few of those offered, I've had skills that the project needs to work but the company don't have in-house, whether anyone will ever acknowledge that I'm some kind of saviour doesn't matter, it seems to be true :-).

I think another part of where we don't agree comes from the agency thing. You say that agents charge some large amount and that consultants only see 30% (Karl Marx would be proud!), so you would effectively be doing three times as much work as you get money for. That's not true for me, I work directly with my clients. The only money that gets taken off is income tax.

Travis: but a one-person company is also a limited economy. Every potential customer must be marketed to, every converted potential must be sold to, every customer must be supported. Each requirement understood, each feature specified, each competitor reacted to, each bug filed. One person cannot sell infinite software, and the more you sell the less time you have to write software. Sorry, but uploading your software to the storefront website is not the bit where you sit back and peruse the Bentley sales brochure (oh, who wrote that storefront website? Did you take time out of writing your software to do it yourself, or did you get a consultant in?)

Adrian Kosmaczewski said...

Indeed, the legal frameworks are different. Here they are slightly biased to favor companies over individuals. This isn't the "country of big money" for nothing. And no, Karl Marx isn't proud :) at all.

Again, I'm happy we're having this conversation :) I think I have to raise awareness in this country (Switzerland) that things aren't working properly. Given the comments I've had so far in my blog, I think this is a real issue here.

Cheers!

Graham Lee said...

Adrian, I agree it sounds like there isn't much protection for employees or contractors. Don't forget that under the Bilaterals contractors can freely work for clients in the EU countries, under the banner of research. That might be a good way to avoid the treatment of Swiss employment agencies.