What do glamorous movie stars, rock stars, professional sports players, and software engineers have in common? "Nothing" might be the first answer that comes into your head. After all sports people and movie stars are the modern heroes, the cool people that kids aspire to be when they grow up. Software engineers have a Dilbert like reputation for being geeks. So why compare them?
Well they have a number of things in common.
Firstly there is a huge range of talent and a huge differential for hiring the best. If you hire an A-list actor or actress it will boost the box-office returns of your movie. If you hire the best soccer player in the world, not only will it boost your teams results on the field far more than buying two medium level players, but also the merchandising potential. Similarly, anecdotal evidence as well as studies suggest that hiring one great software engineer is far better value than hiring two good ones.
Secondly the best can become very rich. Some Microsoft programmers are among the richest people in the world.
Thirdly, job decisions tend not to be made just by money. For Rock stars it might be the fruit and flowers in the dressing room, or some claim to artistic independence. For movie stars, it might be the opportunity to work on a script which might win them an Oscar, or stops them being typecast. For programmers it might be a nice office, cool chairs, or toys to play with.
Fourthly for all four groups, their talent does not necessarily lie in business or negotiating skills. Rock stars and actors are notorious for being arrogant, demanding and hard to work with. Programmers are renowned for having bad people skills.
All of which leads me to something that has puzzled me for a while - why don't programmers have agents? If an actor is considering a role or a rock star is considering a record deal they have an agent who sits in the middle, helps them negotiate the best fee, and takes part of the money as a cut. The star doesn't have the stress of negotiating (and the producers can avoid some of the stress of negotiating with actors) and hopefully the star gets better compensation.
If superstar programmers are really worth five times as much as mediocre ones, why aren't they getting agents to negotiate larger salaries for them? I'm sure there is a business opportunity here. This differs from the standard recruitment consultant. A recruitment consultant tries to fulfill the role, but differs in the major respect that there is no expectation of a long term relationship between the consultant and the programmer. Once a job is found, the relationship typically ends.
I'd guess one reason for the lack of agents is that lack of talent or relative talent is much harder to judge quickly in a programmer than in an actor. Programmers don't usually work in the public eye, so it is harder for talent to be spotted by agents on the outside.
Traditionally programming has been considered a full-time occupation whereas actors, sports stars and rock stars tend to be on much shorter contracts. However, with the growth in consulting, outsourcing, and shorter term contracts this may be becoming less true.
Also to consider is the role of the IT consulting company. When you put together a sports team, you don't go to a baseball consultant and get all the players from one source. However in IT projects, it is common to hire more than one person at once and try and get the best quality team you can. The IT consulting organization plays the role of the agent, and takes the money. This is yet another byproduct of the programmer's name not being on the product in the public eye, rather the brand is the organization the programmer worked for.
Finally worth mentioning is that whenever the phrase software agents is used, people think of the over-hyped AI definition.
I don't know if programmers will ever be saying "Have your people call my people," but it remains for me an intriguing image.