"Software engineers ask for too much, and we will lower our salaries to line them up with the rest of the non-technical staff."
"That's a stupid decision."
"Why?"
"Software engineers are less replaceable than non-technical staff and are the most important people in your company."
"We do not share the belief that engineers are any less replaceable or more important than non-technical staff."
"Then you will not attract top talent."
"Top talent does not always chase the biggest paycheck. And we can do just fine without top talent."
"Top talent will go to your competitors instead."
"Top talent is overrated and will not give our competitors any meaningful edge. A team of ten average engineers can produce as much value as two self-claimed 'top engineers' for the same price."
"What makes you think that top talent is overrated?"
"Some engineers are better than others. We recognize that. But the top 20% of engineers is not that much better than the middle 60%. They do not produce significantly more code, or significantly better quality or scalable code. An average engineer can do almost anything a top engineer can, but for a much lower price. They cost-to-value ratio favors average engineers."
The top individuals can be extremely productive and worth every penny, but most companies don't need top talent (they write mundane software that requires plugging some custom code to a framework) and can't even identify top talent, because it takes top-talent to spot top-talent. The best they can hope is just avoiding hiring the worst developers.
> But the top 20% of engineers is not that much better than the middle 60%.
Wrong. But since companies wouldn't be able to tell a difference, you might as well think it's true and be better off.
> An average engineer can do almost anything a top engineer can, but for a much lower price.
I've seen things that the company struggles for years being solved in a couple of weeks by a dedicated top-talent individual. But they were hard things - involving distributed systems, hard performance and data requirements, complex architectures etc. Things that "medium 60%" simply can't solve. But 90% of work in a typical company is actually nothing like that. And if you give top-talent a task to write some mundane business logic they might produce somewhat better code, somewhat faster, but it will be 2x tops, and possibly even less than 1x, because they will just not be motivated.
So you have to know what kind of engineering your company is doing and hire matching developers.
Back in 2006 he wrote "Finding Great Developers", and in it he says: "The great software developers, indeed, the best people in every field, are quite simply never on the market."
This is as true as it gets. So, for most companies, they're not getting top talent. The best next thing is to get VERY, VERY CLEAR on the hiring end on what the job actually demands - and hire for that.
Separately, and you can see it a lot on HN, there's a competitive element around being "talented" or "good". As in, "Oh, she's super talented", or "I'd like to be as talented as they are". To be fair, it's not unique to those who code, you can find it in every STEM department in every college, but it's nonsense all the same.
Companies prize people who can get things done. And that ability is multi-faceted: it's not just about how good a developer someone is. How much they understand the domain, how much relevant experience they have, how good they are at mobilizing other people to work together on a solution, how capable they are at getting others around them unstuck, how well they can explain their ideas and discuss others' in a productive way...So much goes into this bucket of "getting things done".
By the time you have 100's of engineers, everything will be quite watered down. Anyone exceptional will get dragged down in bureaucracy, red tape, processes, procedures, enormous amount of useless meetings, etc. Maybe I've just been in the wrong companies. Having top talent is always better than not having it, but often it is wasted. You get promised the world and wind up spending half your days in Zoom meetings and waiting for PRs to be approved.
Also in my experience, what seems to matter a lot is experience. People who have failed and learned and who know good practices when they see them will just make more good decisions which won't come back to bite later.
I've found having some people with good experience and communication skills around can be great if they can be positioned to support less talented or experienced people. Finding a good balance and people with reasonable dispositions is important.
Small companies fear losing their top talent. Large companies prefer to have more easily interchangeable/replaced engineers for ease of project planning/staffing and often don't distinguish top talent from a typical senior level. Titles don't correlate well with top talent, rather tends to be a level of seniority 'how long have they been here and competent' label.
The biggest of companies like to hire top talent but don't make good use of them, often seeming like a game of 'keep away' so that they don't work at a competitor or start their own competing company.
My own experience is that there are many different forms of top talent and the only way to get efficient utilization is for the employee to themself actively put them on the projects or roles that best suit their skills, whether the manager or company recognizes this or not.
I think there's a fallacy here. An 'average engineer' hasn't got a much lower salary than a 'top engineer'.
My take is that it's worth paying above average in order to hire and retain above average engineers and above average technical managers.
Benefits can include smaller teams and better quality code, which leads to cost savings that compound over time.
Question is, how do you know? It's super subjective. A lot of "top-talent" probably thinks that they're better than average.
I would imagine the actual top-talent doesn't apply for jobs, I would kmagine that they are poached.
I was programming real-life assembly, I was in my early teen, and many other teens were doing the same.
But the second you have to do accurate and serious floating point computations, you need at least a college/uni master degree in applied math.
What's more, not everyone actually needs top talent - any top talent. There's a place for shops that just employ average engineers, because they don't really need anything more.
All that said... this manager sounds clueless as to what actual top talent can be and do. They also sound like someone who is going to blindly steer their organization into corporate collapse, caused by lack of actual engineering vision.
If you are doing things that the middle 60% are capable of, top talent might not be worth it to you.
If you are doing things that only top talent is capable of, then top talent is worth any price you can bear.
Have them watch some of for example Jonathan Blow's talks or coding streams and then ask if they still believe that.