I tried Joel's salary scale method, and the results were...
...mixed. ;)
Joel Spolsky recently published an
article about the public salary scale system at Fog Creek Software.
At it happens, I've been following Joel since he first wrote about that
system back in 2002 or so, and my software
company at the time used a salary system modeled after his. Here's my
story.
The NITI Employee Level System
Joel has plenty of rationale for his system. You might agree with him or
not, but we only needed one reason to adopt it. Programmers love algorithms
but are terrible negotiators, so turning your salary calculation into an
algorithm is a receipe for instantly higher employee satisfaction and less
Stupid Management Crap. Right? As I was in the Stupid Management Crapper
at the time, this seemed like the perfect plan for me.
And you know what? It worked.
"Worked," in this case, meant that people generally didn't complain about
their salaries, and especially about their salaries relative to other
people. Whenever people hear about Joel's scheme, they always bring up an
odd concern: that this only changes the basis of salary negotiation,
so instead of "negotiating your salary," you'll be "negotiating your
employee level." Well... yes! That's exactly what you want! Money is stupid and
meaningless. Your employee level is one step closer to the quality of
your output, and as a Manager who is trying to not be Crappy, I'll be happy
to discuss your output and how to improve it, and by extension, how to get
you to the next level.
Another concern people have is that a public level scale will encourage
people to start comparing themselves to others and getting jealous. Well...
yes! That's exactly what they did. Or rather, they started comparing
themselves to others, with an emotional response that had to be carefully
managed.
When you start talking about the relative value of one person versus
another, it has serious emotional and social
ramifications. You have to manage it carefully so it doesn't go wildly off
course.
That's true even if you don't have a public scale. If you want to
learn about jealousy, try paying different salaries to different people at
the same qualification level, just because one guy negotiates better and you
think you can get away with it. Trust me, someday someone will find out,
and it won't be pretty.
But back to jealousy. The problem of jealousy was foremost in my mind when
we brought in the new system. Speaking of which, bringing such a system
into an established company with traditional secret salaries is
tricky!
It was important to set the tone from the start. The way we did this was to
take a survey of everyone: we asked each person to name two people in the
company that they thought should be at a higher level than them ("betters"),
and one person that should be at the same level as them ("peers"). Note
that we didn't ask anyone to name someone who should be at a lower
level; that's bad form, plus the math would give us that answer anyway.
We did a quick topological sort (after dealing with a couple of inevitable
loops in the graph), and what did we find? The results were, in fact,
extremely interesting. There were almost no disagreements about relative
level. In fact, as I recall, there were only two people who "mistakenly"
chose someone below their level to be in the "betters" pile; those two
people were the ones who ended up at the maximum level, so as it turns out,
they had no choice. (They each chose each other and one other person. As
statistics go, this experiment was pretty convincing.)
Yes, yes, but I can tell you're still waiting for the jealousy.
So all those people who named people as "better" to them. They were
jealous, right? I mean, it's sort of like signing your own execution order
or voting in favour of a tax hike; you know that you're basically
giving away money by playing this game. Someone you selected is
going to end up getting paid more than you.
But amazingly, that wasn't a problem. We were a company where people
respected each other, and we played the ranking game on the basis of
respect. If you respect someone enough to identify them as someone who's
better than you, you're not going to be jealous of them. You're
going to try to be more like them, so that one day you can be as good as
them, and then (incidentally) get paid as much as them.(0)
It worked. Human productivity, to a surprisingly large extent, seems to
thrive on low self esteem. Feeling like there's something to live up to
makes you work harder.(1)
There was a flip side to this, however. We had spent so much time making
sure that people at lower levels wouldn't be jealous that we forgot what it
would be like for people at the highest levels. In fact, for us,
that was the biggest problem of all with the public salary scale: managing
the people at the top.
It's kind of like giving out an "employee of the month" award; the results
of those awards are demonstrably negative. It might make the person at the
top feel important - although usually it makes them feel singled out,
vulnerable, and embarrassed - but it devalues the idea of hard work.
You're at the top, now what?
This was really hard. Think about career growth. For people at lower
levels, we could (and did) encourage everyone to choose a mentor or role
model; someone at a higher level who had a skill or skills that they could
try to improve on.(2) People at the top, however, had no such
easy goals. What do you need to do to progress to the next level? I don't
know. What does the next level even look like? I don't know. What does
the next level get paid? I don't know.
We only had one developer ever resign while working for me. He was at the
highest level; he quit because he felt he wasn't being challenged and thus
didn't feel as productive as he thought he should be.(3) He also
thought the level system was stupid; I remember that he was quite insistent
that he shouldn't be ranked so highly, and I reminded him that literally
everyone else in the development group thought otherwise, including me. And
I honestly didn't know what he could do to feel more productive.
So anyway, jealousy. Don't worry about jealousy. As long as you're ranking
fairly - and don't worry, with a public scale, people will gladly tell you
when you aren't - then jealousy is not your problem. Your problem is
finding ways to help your best people stay happy and achieve levels you
haven't invented yet. That problem is the one that defeated me, but I'd
rather have that one than any other.
And then we stopped
Eventually, we ended up switching away from the public salary scale back to
an old-fashioned private one. We did it for lots of reasons, and we learned
a lot from that process too.
One reason is that I was working pretty hard to make myself irrelevant; I'm
a company starter, not really an empire builder, and it was important to
find someone more suitable to manage a large number of people. We found
someone like that, but he didn't like the public level scale; he was more of
a traditionalist.
Also, the rest of the company (ie. all the non-engineers in our head
office) did not have a public salary scale. Joel has it easy; it
sounds like almost everyone who works for him is a programmer. But how do
you compare someone in sales, or marketing, or tech support, and rank them
on the same salary scale as a programmer? Can you even put tech
support people on a scale? And salespeople prefer commission, is that a
scale or is it different? Anyway, they weren't too happy with our
programmer salary scale, largely because they were getting paid less than
our programmers. Not that they expected to be paid as much as our
programmers, but... what if I'm the only one? What if everyone else in my
whole department, all with private salaries, is getting paid way more than
me? I mean, everyone in programming, even the junior developers,
gets more than me. Am I a chump?
In other words, partially public salary scales are not a good idea.
And combined with all that, finances started getting tight. That meant we
couldn't scale up the salary scale effectively - not even to handle the
effects of inflation. When you don't have the money to pay someone at the
level everyone knows they're worth, what can you do? If it were up to me, I
might have thought hard about really serious action, including layoffs.
After all, wouldn't it be far better to lose someone from the bottom level
than to make someone at the top feel that they were being treated unfairly?
But it wasn't up to me, and it might have been a bad idea anyway. We took
the easier route: we took the salaries private again. I was busy in other
departments after that, but my understanding is it went exactly as you'd
expect. The people who threatened to quit got big raises to try to retain
them; the people who didn't threaten to quit didn't see any raises at all.
Eventually half the department resigned, and the other half was forced to
leave when we closed our Montreal R&D office. And that was that.
(Lest you think this is an entirely unhappy ending, several of our former
developers have gone on to work at Google, and others have founded companies
like Navarra, EQL Data, hbus.ca, Carillon
Information Security, and more. NITI itself was sold to IBM last year
and is now known as Lotus Foundations.)
Epilogue
I'm now working at a totally different
software company that's a spinoff of a bank. The bank is expertly
managed, and filled with highly competent people across all roles. But I
don't know if those people are getting paid fairly, unfairly, or
exorbitantly: the salaries are kept private.
And you know what? It works fine.
You can argue about salary scales all day, but the fact is, none of it
actually matters. What matters is that people are happy with their job, and
they feel like they're being treated fairly. The best way to achieve that
is to treat people fairly. If you don't have anything to hide, then you
don't have to worry about whether it's hidden or not. Just get your job
done.
Footnotes
(0) Of course, by then, you hope they'll have been promoted.
Nobody actually wants to catch up with their heroes. It's
depressing.
(1) I personally wasn't assigned a level, unless you counted the
fictional "level 13." Let's face it, there was just no way to do that
objectively. Even if there were, it would have been entirely
counterproductive if I was objectively less productive than someone else
(which I quite possibly was), and thus got assigned a lower level. What
better way to destroy someone's faith in a company's leadership than to
tell them outright that the best people aren't the ones in charge?
(2) Our employee self-evaluation was a 2-page form with essay
questions. Some people said it took them all weekend to fill it out,
because the questions were really hard and they had to think a lot.
As much as our evaluation scheme was unpopular with some people, I remain
really proud of it. Your skill level, what you want to improve, who you can
learn from, and why, are all serious questions that you should take a
couple of days to think about every now and then. I filled out the whole
form for myself in half an hour, and I'm proud of that too.
(3) He was right.
April 3, 2009 03:19