One of the problems I experience when planning projects (well, not a problem exactly) is this idea of applying equal rates to unequal programmers. Sure, all men and women are created equal but, as it happens, programmers are not: some are indeed better than others. This leads to a certain small issue, since customers typically think of ‘juniors’, ‘seniors’ and ‘leads’, whereas I, being on a more humanist (or, as Spolsky says, ‘anthropological’) side, think of developers as, ahem, people.

So why am I talking about this problem? Because I want to market services of people emphasizing that they are not good, but brilliant. I mean, what’s the point of having a really kick-ass developer if their time is worth the same as someone who is just good? That’s right – there is no real point.

This applies to the issue of career planning: how can a person strive to ‘go beyond’ if we are unable to support it financially? I mean sure, people can raise their own profile by participating in user groups, conferences, etc., but it’s all a bit meaningless if they can’t afford a house to live in or a car to drive.

Okay, so here I go: I want to reward good developers with money. The better a developer is, the more money their talent should earn the company, and the more money I want them to earn. I’ve read all the postings about money being far from #1 on anyone’s priorities but, honestly, I don’t know who writes those things, and who does this research (oh, wait, I used to do it).

Seriously, lots of companies think that infrastructural investments are the key. If you walk into a Swedish-owned company in Russia, you’ll likely see very comfortable office planning, large screens, in other words, good support for creature comforts. Yes, those are important, but some people think that’s all that is important.

Coming back to the issue of how to reward great people. I suppose one way is to pay them out of your profits, but that really is cheesy, because it’s customer appreciation that is important. I would love people to bring in more revenue, but developers enjoy it when customers, not their boss, tells them that their software is effing great. In short, two simple necessary conditions form the synergy that makes development a viable career:

  • People telling you that your code is good
  • Progressive correlation between how good your code is and how much you earn

The above conditions are a dream. I’ve never worked in a company where the above holds. Hopefully, it’s the kind of company I’ll manage to create.