This blog post is all about: why salaries are so tricky in software engineering, an evolution in approaching the topic of promoting/compensating people, why market evaluation can't be relied upon, what are 2 best ways to evaluate how much you're worth, are people always comparable?

Salaries in Software Engineering have always been a tricky topic. Because of several things: industry evolving so fast, companies being so different & position naming so inconsistent, experience & proficiency not possible to "deduce" directly out of tenure and at last but not least - huge disproportion between demand & supply on the job market (what forces some to go for short-term "outbidding" sprees).

But still, when you're hiring new people, they expect you to evaluate them & compensate them with a fair amount of money for their effort & contribution. One thing is initial salary (the amount both parties agreed to when starting the cooperation) and the other one is how does one's salary change over the time (how frequently & by how much). Some companies (sadly) still follow the most basic routine:

No-one will offer you anything until you come and explicitly ask for more. Then we renegotiate individually (or tell you to pike off).

Fortunately, there are many companies who understand that it's in their best interest to put finances (as one of the lowest levels in Maslov's pyramid of needs) out of the picture when someone considers her/his future career options. How? By being sufficiently transparent & letting employee build up reasonable expectations (regarding when to predict the raise & of roughly how much). There are (/were) various models to cover that. The traditional models were quite simple:

  • "up or out" models - only people with certain criteria (not always reasonable but always unambiguous) met are rewarded/promoted, the rest is "encouraged" to part ways; controversial, some would even say - "brutal" - but rules are set up & communicated before the game begins
  • distribution-based models - e.g. 5% of top performers get 10% raise, 15% get 5%, the rest can go back to their cubicles to consider what went wrong ... managers/supervisors collectively decide on who's the top performer in a regular fiesta of politicking & manipulation ;P
  • "hidden timer" models - it isn't possible to get a promotion/raise more frequently than in N years & more rarely than in M years; each year after N your chance increases or qualification threshold decreases; M years mean a certainty

The raise of companies built upon modern Management 3.0 principles have made a rift in that way of thinking. Concepts like self-organization, radical transparency or continual feedback gave an inspiration to re-invent the whole approach to salaries & compensating people by introducing concepts like merit-based money, open salary formulas, shared KPIs for whole companies (same for "business" & "delivery" people).

But wait! Aren't these an over-engineering of a simple problem? Looking at today's job market, can't we just say that:

Someone is worth as much as market would like to pay her/him?

No, of course not - there's no single "market evaluation" for any given individual - companies are different (their specifics make the offers more or less attractive), there are plenty of additional factors that may be more important than money (but are treated as money equivalent - because they impact gain, convenience, future market value, etc.).


The approach I'm going to present below is not as radical as some of these. But it's also (probably) less controversial (for some) & more versatile (for environments that are not ready / not mature enough for a very radical change).

All comments are (as usual) more than appreciated.

What's the best way to evaluate how much you're worth?

To assess how much value your work brings. Simple as that.

There's just one problem - it can be freaking hard. What if someone's work doesn't "translate" directly into a revenue stream? E.g.:

Someone works on system resilience & up-time - yes, one could try assessing the cost of system failure (w/o that person), but what if we have 3 of them, 5 of them, 10 of them? Would dividing by 3/5/10 be fair? And wouldn't this cost start very low & grow gradually in time?

Trying to evaluate this cost w/o clear data is just a rule of thumb judgement - very subjective & usually ends with haggling (& continuous re-haggling every half a year or so ...).

What's the 2nd best way to evaluate how much you're worth?

No two people are alike, but I have bad news for you ... The 2nd best way is still a comparative approach ... Whether it works or not depends on the questions you'll ask yourself while comparing. Let's assume you have a bunch of people: A, B & C who are already evaluated/graded sufficiently correctly & Z - the one you'd like to evaluate & grade now. Ask yourself questions like:

  1. would you agree on replacing Z with A? or B? or C? what effect would you expect?
  2. what are strong/weak points of Z when compared with A/B/C? (when it comes to attitude & skills separately)
  3. whose departure would impact the team more (short-/mid-/long-term): Zs? Or A/B/Cs?

etc.

Don't waste time on getting down to very detailed, individual (e.g. technical) skills comparison - because ...

  • they can't be reasonably expressed in discrete values (e.g. 1-5 stars ;P)
  • who's more valuable? someone with 3 stars in C# & 5 stars in teamplay OR someone with 5 stars in C# & 3 stars in teamplay? ;P

Apples & pears

OK, so we should not go in-depth & assess every single detail, but how to compare people who are simply NOT comparable (at all)? E.g.

  • a very solid, loyal & predictable but never-outstanding performer who've probably already reached the ceiling of her/his talent & won't grow anymore VS
  • super-talented young-gun who's still at the beginning of her/his career, but her/his growth rate is exceptional & (s)he can probably surpass the previous person's capabilities within a foreseeable time-frame

Who's worth more? Who should earn more? Who'd you invest into (e.g. promote/give a raise)?

The former is low risk & steady, reliable value. The latter is a clear potential & flamboyancy that can move whole team/unit forward & set a lot of good example for peers & successors. But it's not for certain - not all potentials end up fulfilled in the end ...

End of part one, the next article in the series can be found here.

Share this post