Friday, August 22, 2008

Expertise and Competition

Companies are better served by having a few really good people on a project vs. a large number of ineffective ones. This begs a couple of questions:
  • Do you potential clients believe that it is better to pay for quality than quantity?
  • Who is your competition, and are you better than they are?

The Competition


Let's start with the second question: when you are an independent consultant, who is your competition? As a rule, it is not other independent consultants. According to this bureau of labor statistics report, only about 4% of programmers are self-employed. According to this one, only about 6% of systems analysts are self-employed while, this report indicates that only about 2% of "Computer Software Engineers" are self-employed.

There is a lot of overlap between each of these groups, but the bulk of the "tech lead" work will fall into the systems analyst and software engineer groups. That is what I'm mainly seeking, and I assume that you are as well if you're reading this.

So who is the competition? My own experience tells me that when the time comes to staff a project, 90% of the candidates I have seen fit two or more of the following:
  • Little or no "initiative" - only do work when given very specific tasks.
  • Little or no talent for creating software.
  • Non-native speakers of US English with poor communication skills (mainly from India since that's the bulk of the talent pool right now, but many US-born programmers have this problem even without a language barrier).
  • Limited understanding business in general and the purpose of business software in particular.
  • Very little experience with 'real' programming work (as opposed to school projects).
To sum up: if you communicate well and are motivated, you're head-and-shoulders above your competition. (For more on this topic, here is a blog entry with some pretty good quotes on what it takes to be a "good" programmer.)


Your Potential Customers

This is where the rubber really meets the road. I think that most software developers understand on some level what it means to be good or bad in this space. I think that most business people do not know this, but believe that "programmers" are mainly interchangeable.

This state of affairs is changing slowly, and there are a number of voices out there (like this one) that seem to get it.

To find the work you want to do and make a good living at it, you really need to do two things:
  1. Sell your clients on the idea that they get a lot more benefit from a few good people (like you!) than from a large group of mediocre ones.
  2. Build your expertise to the point where you're obviously one of the best.

Both of these will be the subjects of future posts. I would really like to hear your opinions in the meantime!