Saturday, January 5, 2008

Will TopCoder shift the balance of power from employers to programmers?

One of the things you learn behind the scenes at business school is that there are two ways to make a lot of money (not counting winning the lottery or being born into the right family!). The first way is the "business leader" route...you can start a company or be a top executive, preferably a CEO. The second way is the "talented expert" route...you can excel at a measurable skill that someone is willing to pay a lot of money for. For MBA's, this used to mean investment banking. These days it more often means hedge funds or private equity.

The "talented expert" route to wealth appears in many different fields. The top NFL players make more than the owners. The top actors make more than the studio executives. The top hedge fund managers make more than the CEOs of investment banks. (IIRC, this phenomenon was documented in The Winner Take All Society).

Aside from several highly publicized Google poachings from Microsoft, we haven't seen as much of this happening in the software industry. Most of the top talent in software development is hidden. It's difficult for any one talented programmer to prove to the market or to an employer that he or she is worth ten times the compensation of another, less talented programmer.

And that's how it has always been, until TopCoder came along.

TopCoder is transforming the world of software development in more ways than one. Not only is it assembling a massive virtual network of programmers from around the world, it is also providing objective, quantifiable ratings of their skill levels and demonstrable evidence of how they work together in teams.

Think about this. The balance of power may be shifting more toward the talent and away from the employers.

Thank you to Judith Hurwitz's Weblog for prompting this thought. And thank you to TopCoder as well, where I have been an occasional competitor since 2005 using the handle JRR.

2 comments:

jhughes said...

Great blog... although I'm not completely sure how TopCoder fits into a discussion of established industry players. After all, I'm not even sure you could find a font small enough to fit TC into your market map;)!

Not to be picayune, but we don't look at the model so much as a 'powershift', as we do a reflection of underlying realities. We think recognition of these realities annures to the benefit of both developer and users of the developer's output (software).

As I believe your post implies, we see developers not so much as homogeneous skilled labor as we do professionals with varying levels of skill and skill sets. The distinction is subtle, but, we think, consequential. This doesn't necessarily mean a shift in the balance of power, however. We believe the distinction (or lack thereof) introduces significant inefficiency into the production of software (mostly in the form of poor resource allocation). As an aside, but we believe important to the discussion, is that we feel the developer (given a fair amount of feedback relating to their own set of skills and skill level) is in the best position to decide what to work on and what not to and that the broader the set of choices, the more efficient the system will become..

In the end, we don't see so much a shift in the balance of power as we do bringing greater efficiency to the process. We also don't see it as a zero-sum game. From a user's perspective, much is gained in terms of quality, speed and cost because of the increased efficiency. We also believe increased efficiency (again, primarily in the form of better resource allocation) grows the overall pie. We believe that there is much latent demand for the skills of developers that is simply un-addressable due to the inefficiency with which a developer's 'product' can be obtained.

This is not true in terms of the large software companies (Microsoft, Google - not sure if you consider Google to be a software company, Oracle, etc.). They have all found quite impressive ways to deliver the product of developers quite efficiently. They each have a relative few great products that they sell to thousands and millions of users. Even so, and even considering the large size of these companies, the software universe, IMO, is quite a bit larger than what these companies can address. It comes down to how to make the market addressable and how to do it in a way that is rewarding for all involved.

Love your blog and look forward to future posts.

Jack Hughes
Founder, TopCoder, Inc.

JXB said...

Jack, thank you very much for your comment. (And I'd argue that TopCoder's business model could potentially have a huge impact on software companies' HR strategies. The design and component competitions even more so than the SRMs).

You are creating a new kind of marketplace for talent, and, as you mentioned, this marketplace should be far more efficient (for numerous reasons) than the current way that companies hire programmers.

In the near term, I'd agree with everything you've said in your post about the impact of TopCoder. Both employers and programmers should benefit from participating in a more efficient market. Employers obviously gain from having better information about the programmers they recruit, and also have a new kind of resource for engaging programmers on a project basis rather than on a permanent basis. Programmers, too, gain from having their abilities recognized--and because their abilities become more visible, programmers run less risk of committing to a poor job situation.

My thoughts were a bit farther in the future...after the market efficiencies have been introduced. What would the employment market for programmers look like in a great and glorious future where everyone's talents and reputations were clearly visible to all participants in the market?

I suspect you'll see a bifurcation of the market into (1) a market for "highly talented" programmers and (2) a market for "reasonably talented" programmers.

The supply of "highly talented" programmers will be very inelastic. (I believe Joel Spolsky argued, if I remember correctly, that this is more an innate skill rather than a trainable characteristic). The only way to increase the supply of "highly talented" programmers will be to divert people with those talents from pursuing alternative occupations (such as engineering, law, finance, etc.). A slow process, so the supply will not be quick to adjust.

But every company that needs a competitive advantage from technology will find it necessary to recruit its tech leads out of this small and inelastic pool of "highly talented" programmers.

End result could quite likely be bidding wars for talent. Which leads back to winner-takes-all economics and the possibility that the "highly talented" programmers get most of the power.

On the other hand, the much larger and more elastic pool of "reasonably talented" programmers might have a different equilibrium. Here, because the pool of talent can grow (at this level, I'd argue that programming skills are definitely trainable), this pool of programmers would never accrue the same amount of negotiating power that the "highly talented" programmers would. So you wouldn't see a "power shift" in this group.

But regardless of how this all turns out, your company is doing a great service to employers and to programmers. I've enjoyed the competitions and the code jams, and I wish you well with the growth and success of your business.