My Team is 10x Better Than Your Team

Yes, 10 times better.  That’s the difference between an average software programmer on an average software team and a rock star programmer on a rock star development team.  The difference is huge, and I’ve been reminded of this lately.

How is this different?  How is the rock star team 10x better?  How is it 10x faster?  How does the average slug along or even survive?

Simple.

The average software teams barely get by.  The average teams are almost always in a reactive mode versus a proactive mode.  Often average teams only get proactive if they build up a huge bureaucracy around themselves, which just allows them to be average.  Average teams might call themselves Agile but don’t follow any of the ideals, let alone the processes that actually enable the PEOPLE to be rock stars.

Over the years I have seen more than a few teams of 5-10 people, sometimes more, only produce what a rock star could produce alone.  5-10 people, $500k to a $1m per year, versus about $100-120k.  That’s 5-10x the cost.  When I first read about this I thought it was silly, nonsense, and generally impossible for developers to be that disparate in abilities.  I know now that I was wrong.  Developers DO differ that much in abilities.

Joel Spolsky wrote about it (and NO, even though I’ve mentioned him a number of times recently, I don’t always agree with him) and he’s spot on.  Hiring and keeping the top programmers is key to success.  Hiring average developers will sink a startup, drag an established company under, and destroy even the most stable of companies.

I’m going to cover some key points that prevent having average developers and prevent an average team sinking the ship.  These aren’t, “well maybe we’ll do these things”, these are “things that must happen, all or at least most of them, for the success and continued success of a company”.  This list is aimed at external observations of teams I’ve seen at Amazon, Microsoft, Webtrends, and others.  Some of these things are done so that the companies keep as large a part of their work force as rock stars as possible.  This is what makes these companies successful.

Successful Companies…

Successful companies encourage and perpetuate continued learning.  Not “I read a new technical book once a year”, I’m talking about rock stars that read a technical book or three per month (get a new one now @Amazon), try new languages whenever a new one crops up (re: Ruby, F#, Erlang, others…), encourage quite work areas, collaboration online, offline, and elsewhere, plenty of white boards and open workspaces, and even funds for out of company education with training courses or otherwise.

Successful companies involve themselves, specifically their technical people, with the social scene around their core technologies the company is built on.  Amazon & Microsoft have this fairly easy, as they’ve built their own social scenes around their respective technology.  Webtrends has even done so to some degree.  Smaller companies should be involved in some of these large companies scenes.  Attending conferences, training, or otherwise being involved with these companies is a great way to do just that.  This builds morale for your rock stars and rock star teams.

Successful companies provide optimal work environments.  Of course, work environments and what is optimal is up for debate.  But generally one can determine if the company at least involves itself enough to try.  Successful companies continually ask themselves things like;  are developers more productive in offices or not, do some developers work better remotely or in office, are developers different any some work better in some environments and not others?  Usually companies that ask these questions realize the later implication that developers are different from one developer to another.  Successful companies have leadership that can determine this and work with the developers to make sure they stay productive, challenged, and happy in their positions.

Successful companies push what makes their technology, product, or ideas interesting and fun to work with.  This may not be super easy for some companies, but even a trash pickup company has to have a cool back end system that uses the latest and greatest and might be migrating to the cloud or something.  Something is cool or interesting about what the company does, and that cool and interesting tech should be known and shown as a key reason the company rocks and should have rock star teams and rock stars on that team.

These are the top things that make an awesome team help build a successful company.  Do any others come to mind?  Please leave an idea or two, or disagree, tell me why rock stars aren’t 10x as productive or why successful companies may not need to focus on great development teams!  There’s always a devil’s advocate somewhere out there on the Interwebs, so light up the fire.

Top Tier, A-Game Talent – How to Land em’

Recently the question came up from a close friend of mine, “will my PhD help me attain a higher income in the north west?”  I had to tell him, that it might get him a little more, but it won’t get him in the top income brackets for the occupation.  Another time, a few days later, someone else asked this too.  Then again, I see a job posting that requires a Bachelors Degree and some other nonsense.  The job posting even states they want “A-Game” talent.

I am almost shocked at how poorly part of this industry doesn’t realize how unimportant a degree (bachelor, doctorate, etc) is to getting real top tier, a-game talent.  (and yes, I get a little riled up about this matter)

You Can’t Make Good Software Developers.  No college out there is going to train someone to be in the top 10%, and absolutely not to be in the top 5% of skill levels.  Colleges can NOT do this.  It is up to the individual, and the individual alone.  If top tier talent seems to come from a college, one should check their premise and look at the motivations the individuals have to go to that school.  There is most likely a reason that top tier talent appears to be made there.  The college however, can only guide or assist, but I repeat that “top tier talent is a very individualistic endeavor“.

Some might say, well a group is needed, support is needed, this and that are needed.  True, an individual needs a support system and a college can provide that, but it generally ends there.  The support group helps, provides a sounding wall, and provides correlation to good ideas for the a-game top tier geek.  But again, the endeavor is the individuals desire.

top tier talent is a very individualistic endeavor – Me

Hiring Top Tier, A-Game Talent

There are a few things when trying to hire this level of game player.

  1. The first thing is to not require a degree of any sort.  Sure, it looks good, but it won’t dictate anything other than the individual was able to go through the regimented steps of college.
  2. List the skills and ideas that you would like to find in an individual.  Think of two people meeting for the first time, what do you want to know about the other individual.  Team fit is absolutely fundamental for top tier talent.  That support group that I mentioned above, top tier talent works best with a solid group of players.
  3. Keep your technology up to date, moving forward, and don’t bore your top talent if you manage to get it.  If the company slows down, they will leave.  The more valuable they find out they are, the lower tolerance they’ll have for this.  For managers, directors, and leaders in an organization this is THE challenge for them.
  4. Provide opportunities not just for advancement, but ways for them to advance their knowledge such as training, a book budget, or other means.  Even if some software they want to use isn’t used ton the project, get it for them (within reason of course ? couple $100 or even a few $1000 for a good software license to MSDN, Tellerik, or other suite of software is ideal).
  5. Don’t push them to, and don’t let them overwork themselves into burnout.  This, as a leader in an organization is easy to do if one finds themselves actually hiring top talent.  Because top talent just provides results and more results.  But they are human, they will break, don’t be the cause of that or you’ll lose your talent.

For now, that is it from me on this topic, back to the revenue, code, projects, and pushing things forward.