Remote Work and Fair Developer Salaries
The return of the salary discussion in engineering
With remote work becoming the new normal, discussions about salary flare up again. Companies are caught by surprise after they have successfully migrated to remote work and padded themselves. With people working in different locations, are salaries in a company fair? Fairness is a topic a lot of people talk about and that’s dear to most people. Everyone thinks things should be handled fairly. Everyone agrees fairness is important. Nevertheless, there is a lot of discussion about what is fair. So lets first look into different opinions on what salaries should be based on.
People have very different ideas about what is a fair salary. Some think it’s fair to base salary on past performance, current performance, past performance and future potential, needs, equality, experience or current market demand - and remote location.
To someone who bases salary fairness on equality — everyone with the same job should earn the same money — it looks unfair if you base salary on performance or location. To someone who is motivated by winning and by performance, basing the salary on equality looks unfair. Some people think you should base salary on needs — a position often held by government organizations. People therefore should be paid more if they support a husband or wife or have children. This is becoming relevant again with people working remotely. Should you earn the high salary of Silicon Valley if you live in rural Montana working remote? Is that fair?
Let’s look at some different salary models to come back to the discussion of remote salaries. Some companies base their salary and promotions on past performance and future potential. Often they overpay for the present in the hope that the person will unfold her potential in the future. I have done this myself, often with more problems than it is worth though. I told a current coachee to stick to the normal salary and agree to a raise in the future, not prepay a higher salary and be clear on communications.
Some people think they should be paid by experience, by the projects they have done, the technologies they know and bring to the table. These will find it unfair if someone with less experience — but with better performance perhaps — earns more money than they do. For developers who based the pecking order on experience, this model comes naturally and is the most accepted one, at least with people who identify with their work.
Everyone has different opinions on what a fair salary means, it is important to not only be transparent on what goes into your salary but also listen to what the people in your company think is fair. I sometimes get asked how to structure salaries for engineering. I usually reply with “Why not ask the people in your company?”. Being transparent does not mean telling everyone what everyone else earns, this often leads to grumbled employees because 50% will most often earn less than the other 50% for unknown reasons to them. Although countries are moving fast to open salaries. But transparency means you need to explain on what your salary system is based on, experience, performance, need or market demand. Or any combination of these factors. Former company Fogcreek is one of the companies that are were very transparent on what factors determined the salary. Joel - of Stackoverflow fame - former Fogcreeks CEO, explains in “Why I Never Let Employees Negotiate a Raise” how his company structured their salary. The salary levels for engineering went from 9 to 14 and were based on scope, experience and skill. They were also adapted for everyone based on market prices going up. With a clear formula and guidance everyone can arrive at his level based on his experience, scope and skills. No more wondering why your colleague might earn more. And because higher salaries are achievable in a transparent way, it’s less bad that 50% of your colleagues earn more.
One nasty phenomenon to take into consideration is salary inversion. If a company hires engineers when the market for engineers is tight, the company might overpay compared to their existing employees. A Junior developer might end up with a higher salary than the senior guys. Depending on the common understanding of fairness at that company, this leads to problems. So it’s important to manage salary when hiring — e.g. by larger signing bonuses — and also to lift your existing salary base. A comparable phenomenon is very often seen in startups when they grow. Early employees often earn less than employees that are hired later. Pay then is based on the success of the company at the point of hiring, or the point was before or after a VC money injection.
Another source of perceived unfairness are salary raises and promotions. In many companies these are handed out to those that are best at being loud or playing political games. In startups this often means being close to the CEO. Another way is when employees come up with offers from competitors and put their job on the line. As Ben Horowitz writes in “How to Minimize Politics in Your Company” the best way to prevent this kind of unfairness is to have strict processes around compensation, bonuses and promotions — and I wholeheartedly agree with him there.
Then there is gender equality, which often leads to unfair payment when it’s a common practice in your hiring process to negotiate salaries — the prevalent way to do things in my experience. There are different opinions and studies on why women earn less for the same job compared to their male counterparts. Women often are not as risk loving in hiring situations. Where many men (for sure not all) ask for some % more than their comfort zone and risk not getting the job, some studies say women are more conservative. So if negotiating salaries is part of your hiring process, be aware that you might underpay women compared to your male employees. Which coming back to the title of this essay, is not (IMHO rightfully) perceived as fair by most people.
So what to do about remote salaries? You could have a salary based on the national average, on the location where the developer works (as Facebook, Stackoverflow and Buffer do) or a universal salary based on where your companies main office or most expensive developers are based (as Reddit, Okta and Basecamp do). The most important thing is not to cut salaries. If someone moves to somewhere cheaper, and you cut the salary, the person will probably leave, because she is demotivated and considers the move unfair, even if she supports lower salaries in cheaper places in general. One side change of contracts is never considered fair.
And is it fair to pay different salaries based on location? Assume someone pays a mortgage in the Bay Area with his higher salary, because it is location based. Someone else pays a mortgage in Montana with her lower salary, because it is location based. After ten years both sell their house, one of them now has a lot more money in their bank account.
People in reality work different hours - even more so with remote work when no peers are around. Some work the minimum to get by. Some identify more with their profession and work long hours and weekends. Do you pay for value? There might come up the temptation to pay based on work delivered. Some CEOs and CFOs are mistrustful of the work developers do at home and might want to switch to a payment system on work delivered, perhaps on a freelance basis. Only the future will show if this is viable - from a CTO point of view I would not go there, this is a minefield.
What if you lack behind the market now and compete with others for remote developers? Suddenly after COVID you compete with the whole world for top talent, much more than before many companies moved to remote-first. Half of the market is below the average, keep that in mind. So paying below average is not critical per se. If you lack behind the market average more than 10% you seriously need to consider salaries, or else more and more people will leave. If someone wants to leave because of pay, consider the person. Is she really underpaid for one of the reasons mentioned before. You should have solved that situation before, but now is the last time possible. Does she get the right pay in you company compared to others? Let her go, someone who wants more money without a need in your company will come back with a new offer with even more money to get a pay raise.
For many people the absolute level of their salary is not as important as being paid fairly compared to their colleagues. Many developers fall in that category, especially because they already earn a lot compared to other professions. Because developer organisations often have an implicit ranking, the salary structure needs to model this implicit pecking order. Many developers equate salary with value. If you pay someone less, he feels valued less. Remote salary structure needs to take this in mind foremost.
As a CTO, Interim CTO, CTO Coach - and developer - Stephan has seen many technology departments in fast-growing startups. As a kid he taught himself coding in a department store around 1981 because he wanted to write video games. Stephan studied computer science with distributed systems and artificial intelligence at the University of Ulm. He also studied Philosophy. When the internet came to Germany in the 90 he worked as the first coder in several startups. He has founded a VC funded startup, worked in VC funded, fast growing startups with architecture, processes and growth challenges, worked as a manager for ImmoScout and as a CTO of an eBay Inc. company. After his wife successfully sold her startup they moved to the sea and Stephan took up CTO coaching. You can find him on LinkedIn or on Twitter @KingOfCoders