Flat salaries — How did it work and why did it stop working?

Tomasz Szymański

02 Nov 2021.10 minutes read

Flat salaries — How did it work and why did it stop working? webp image

We had unified, per-position salaries — How did it work well and why did it stop working?

This is the first part of the journey with salaries that SoftwareMill has gone through in the last 12 years. By the end of the whole series, you will discover how we went from a typical, “closed”, solution to a badge-based, gamified system that we have now. In the first part, I will tell you the story of how we opened the salaries in 2013, what the system we chose was, and why after 7 years, we needed to change it.

Equal pay is a generally accepted idea around the world. There are different angles of tackling how it can be implemented in an organization. Our solution was based on full transparency and the idea that all people in the same positions should be compensated equally. While it is hard to disagree with the idea, in this article, I am going to explain how we came up with the idea, why it worked brilliantly for a while, and in the end, what changed so we had to find a different way. A little spoiler — ironically, the system worked while we were all the same and stopped when we got more diverse. Shocking? Read on!

Opening the salaries

It is May 2013, SoftwareMill will turn 4 in a couple of months, we have almost 20 people onboard and we need to make a change. The old system where one of the (back then) 4 owners has to approve every decision is becoming tedious and very ineffective. What we were taught at schools is that we should introduce some kind of middle management, either hiring someone or becoming managers ourselves, but we would have to give up programming.

We decide to take a different route, not long before I read an article on The Morning Star at Harvard Business Review and talk Adam, Paweł, and Jasiek into trying this out. The rules are simple: everything in the company should be open, some part of the monthly income will be booked under a special “Owners Account”, and the rest of the money will be up to management by the whole company. And the golden rule from now on is that all decisions should be made at the lowest possible level.

Up to that moment, all the salaries have been negotiated with one of the company owners. There were no significant differences between the wages of people doing the same jobs, but there were some. Money, all around the world, for reasons I do not fully understand, is a taboo subject. The fun fact is that after communicating the “new reality” to the rest of the company, they asked us not to open the salaries, at least for some time, before they get used to the new reality.

The time has passed, though, so after a while, we were in a weird limbo — new people who joined the team after May 2013 had their salaries negotiated with the team, hence open, while the rest had their salaries closed. So one day I said: Enough! By noon the following day, I am sending a spreadsheet with names and their respective wages to everyone. Should someone have anything against it, please let me know. No one did, so I sent it.

And that opened the first “crisis” we had after going fully transparent. We needed a new salary system that would be objective and fair. The story of building the new system and how we tangled it is a subject for a completely separate blog post, but we ended up with a very simple solution:

  • Senior developers had the basic daily wage that they got when joining the company
  • Wages grew every year, to known values, for the next 5 years working at SoftwareMill
  • All other positions were based on the senior developer position, using a factor figured out on the day the system was introduced (i.e. Marketing had 0.6 of Senior Developer wage), and grew the same way senior developers’ wages did
  • Raises were automatic on the coming anniversaries of the date of joining the company

I must say that the above solution worked like a charm for a number of years. People appreciated fair rules, certainty, and above all, the feeling that we are all equal. So why has it stopped working for us? What has changed?

We grew older

First, let’s look at a little table that shows the seniority (meaning how many years people have worked for SoftwareMill) of our team at the end of each year after the system changed to be open.

Seniority (years)20132014201520162017201820192020

I put in bold all the people who stayed with us until the end of 2020 — if you pay close attention, you will see that only two have left since: one that joined in 2013 and one that joined in 2010. The rest of the original team of 2013 that have lived through the transformation have stayed.

The second fact is that by the end of 2020, we had 16 colleagues who've been with us for 7+ years. Having in mind that we usually hire people with at least 2-3 years of experience, we have quite a lot of people who have 10+ years of professional experience, which in the IT industry can usually be associated with serious seniority (given we do take care of personal development and growth, and we DO).

So one thing that has changed — we grew older. Some have not been given “seniority” raises in a couple of years (only when we changed the base wage) and they reached the glass ceiling.

We got a lot more diverse

The salaries in IT in the Polish market have been growing 10-20% year to year for the past 5 years. And that is not only in general in the whole IT industry, but the differences between the ones entering the work market and the growing workforce of highly skilled, top-notch world-class professionals we are very lucky to have, has grown as well.

To be honest — we used to call SoftwareMill a place that “hires only seniors”. But looking in retrospect, we were boldly saying that 10 years ago, being rather mid/beginner seniors than full-blown independent professionals we wanted to be. And that has changed a lot as well. The sweet burden of experience and skill set of our oldest colleagues is something the “youth” looks up to and what makes us a place where we are quite different from each other. Having those growing differences, good, and highly welcome from the organization’s point of view, made utilizing the old years-in-company-based salary system quite hard. We came to a situation where the salaries of the new employees were more than competitive on the market, while salaries of the most experienced team members were shifting down from the market average. And that was a recipe for disaster — from a company that a few years back claimed to hire only seniors, we could have become a perfect place for “mid/regular” developers, but questionable heaven for seniors, at least financially.

At SoftwareMill, we build our technical excellence by learning from others, knowledge is the bedrock of our culture, we want to set an example in software engineering excellence — that cannot be achieved without creating a space where people want to stay and develop for years to come. We cannot become a senior-bootcamp for companies like Google or Facebook.

The problems

Summing up, we had 4 problems we have identified with the system that served us quite well for the past 7 years.


Since all of our salaries were based on the salary of a backend developer and the rest were calculated using a specific multiplier for a given position, if we wanted to change the base salary of programmers (which have grown on the market significantly faster than the salaries of other parts of the company, like marketing or administration), we had to raise ALL salaries in the company. Once again, not only did we start becoming (financially, of course!) the perfect place for regular developers, but also for everyone who did not write code. Those who brought the most money to the company had to settle with below-the-market rates, while those who were hired to make the company work smoothly were paid 1.5 to 2-times the market rate. While the latter is OK — you can build a loyal, effective team you can rely on, you need to make sure your bread and butter team is compensated best for what you can afford.

Hostages of rules

Since the system was open and very strict, we started becoming hostages of it. It was based on the number of years one worked at SoftwareMill, so we had only one rate we could offer for newcomers. And while that was fine for mids and young seniors, we had no way to hire experienced professionals who wanted to work for us because we had no way to offer them our top rates. We figured that this has to end and we need to be able to offer all rates available at the company at a given moment.

Glass ceiling

Raises for 5 years mean that no matter what you do, after 5 years, you are going to hit the glass ceiling. And it doesn’t matter how you grow as a professional and a person, your rate will stay the same until finally the global raise of the base rate will be introduced (and that did not happen very often as it would be very expensive for the company, see point above on Inelasticity).

The new system

We knew something had to be changed, so we needed to figure out how to tackle the new system.

The first step I made was a survey across the company where I wanted everyone to point out the most important and least important ingredients of the salary and name the things they thought people lack at SoftwareMill.

  • In the North-East corner, you see ingredients of the salary that people recognize as important and well covered at SoftwareMill,
  • In the South-East corner: ingredients that are important, but not quite well covered,
  • In the North-West corner: not important but covered (yet it’s empty),
  • And, finally, the South-West corner: things not important and poorly covered that can be ignored.

The most NE ingredient is the position, but also: market salary average, extra duties, and experience at SoftwareMill. These had to be taken care of in the new system.

What is maybe more interesting are things people considered important but poorly covered – position on the development ladder and skills (team-acclaimed but also especially useful for the company).

Having in mind the above, we have identified 4 key aspects of the new system we wanted to figure out:

  • Market Attractiveness – while we are aware that we will never be able to compete with top salaries from banks and huge tech firms (for now, at least!), we need to be able to provide sensible rates that are slightly above the market average. We, as an organization, can provide a lot more than just a fair compensation in money, but that part must be fairly taken care of,
  • Fairness – the salaries must be fair, that is something we all agree as an axiom, but we need to be able to figure out what that fairness is,
  • Formalized growth route – by having automatic raises every year, we lose the ability to be able to guide people in their development – which is a lose-lose situation for all of us: the organization and the staff themselves,
  • High-impact – being a fully transparent organization where everyone’s voice matters – we have never specifically recognized high-impacting, out-of-professional responsibilities, activities. Since that culture has developed us so significantly and made us a unique place on the market, we decided it is about time to recognize this in the salary system as well.

At this point, we were certain the change had to come, and the tedious and demanding work started.

This concludes the first part of our new salary system story – in the next part, I will describe what research we have conducted to figure out what the way forward for us would be, and in the last one, I will describe the system we have introduced that has been working for us for over six months now (October 2021).

The second part of the series is already available - you can read it here!

Blog Comments powered by Disqus.