There’s no way around it: software engineers are expensive. This is especially true if you’re looking for experience in the hot topics of today like full-stack web engineering, blockchain, augmented reality (AR), and artificial intelligence (AI). As a result, simply matching the market rate for an engineer is rarely enough to attract the best talent, let alone to retain folks that you’ve hired.
So what do most businesses do? One common approach, especially if the company is in a good financial position, is to offer salaries way above the market rate. Another tactic is to shower engineers with stock options, bonuses, and similar incentives. Yet another solution, common when money is tighter, is to offer other perks like gym memberships or free lunches that probably have little to do with the job itself.
I have seen all of these approaches implemented in one way or another. In all honesty, I can say that, sooner or later, they all fail miserably at staff retention. Sure, these strategies might initially attract some talent. In the long run, though, they’re not the primary reason why your team will stay with you.
If that weren’t enough, all of this “special treatment” towards engineers can create resentment throughout the rest of the company. Such negativity hurts performance and retention in other business units where employees might feel that they’re treated unfairly. Then, not only are you wasting money on failing to retain engineers, but you’re also hurting other parts of your organization as well.
I suspect that the root of this problem is a misunderstanding of the engineer’s character. Perhaps this is due to the esoteric nature of their work, which involves turning abstract concepts into interactive, shimmering pixels on a mobile or desktop screen. So what’s the average engineer really like? By looking at what makes them tick, we can begin to answer this question and have a much better understanding of software engineers. Consequently, operating from that place of understanding, you’ll likely have better luck attracting and retaining talent.


Let me start by saying that my opinion isn’t based purely on external observation. It’s the result of years talking the talk and walking the walk. I have been an engineer for a good part of the two decades I’ve been in the software industry, doing hands-on work like designing software, defining the architecture, and coding, before eventually moving into management.
As an engineer, I experienced firsthand the dual relationship most of us have with the rest of the business. One day you’re a hero for delivering something “magical,” then the next you’re a jerk for not delivering something “so simple” in a short amount of time, or refusing to make certain “easy” changes, even if those requests carry a hidden but critical risk of destabilizing the whole software. Negative perceptions like this often arise from the layperson’s lack of knowledge about how intricate engineering really is.
Because the field is so technical, other parts of a business may easily fail to realize that software engineering is a complex art. Intangible dependencies between invisible components can make or break an application. Some non-technical folks appreciate this, and some don’t. That’s likely why the best engineers often become as revered as they are despised, and their work is perceived as a necessary evil for the continuation of the business.
In reality, engineers are people like everyone else. Perhaps we have a tendency to be more introverted than most, but often that’s because of the nature of our work. Coding requires a great deal of focus and concentration, so it’s best done alone. It also requires a lot of study and practice, most of which is done in front of a computer in a quiet environment. There’s really nothing mystical about that journey. All it takes is unswerving dedication, a good dose of analytical acumen, curiosity, and strong problem-solving skills. Anyone who has  or is willing to develop  these qualities can become an engineer.
And if an engineer isn’t a supernatural being, you don’t need any magic to attract them or retain them once they’re on board. You just need to speak to their interests and target rewards accordingly. Maybe instead of offering free lunches on Fridays, you can provide funding to attend Apple’s Worldwide Developer Conference (WWDC, once that’s hosted in real life again) or a Coursera subscription. If you’re in the mobile apps space, you might offer to buy the newest iPhone or Android device for your engineers annually on a “yours to keep” basis. Not only is this a nice perk, but it also encourages experimentation with the latest and greatest technology.
Now, since these kinds of perks carry a significant cost, you might be tempted to ask: how about offering more money, or perhaps a higher bonus? If I’m spending more money anyway, why not put it directly into the engineers’ pockets? Is this not a valid retention strategy? To answer that, we need to look at the psychology behind associating performance with reward, especially for highly skilled workers. 


Rewarding better performance with money is such a common management axiom that, until as recently as the late 00s, it largely went unchallenged. Studies analyzing this relationship have started to pop up, though, and the conclusions are not what you might expect.
Large Stakes and Big Mistakes” is one such study. In it, the authors proved that, for the most part, tying monetary rewards to performance doesn’t lead to better output for highly skilled work that involves complex cognitive skills and creative thinking. In fact, tying money to performance results in the delivery of lower-quality work. The high reward at the end of the activity becomes a focal point for the entire job, and that structure leads to worse decisions overall along the way. 
Researchers working in this area have also analyzed whether more money leads to better motivation and higher overall job satisfaction. Results here were more mixed, as summarized in this HBR article, but generally indicated that money alone isn’t sufficient motivation for the highly skilled employee. 
The most comprehensive study, though, is Daniel H. Pink’s Drive, which is summarized in this animation from the RSA. Pink suggests that money isn’t the main driver for highly skilled workers who choose to stay in their jobs. Instead, he identifies a combination of three factors: the ability to be self-directed, getting better at the job, and having a purpose in one’s endeavors. In other words, once a person’s basic financial needs are met, money starts to become less and less relevant as a criterion for job satisfaction, especially compared to purpose, self-improvement, and self-direction.
Unsurprisingly, this conclusion mostly matches my own experience with engineers. Whether companies pay at the market level or 20%-30% above the market makes very little impact on staff retention. You might stretch retention slightly in the latter case, but the investment is often not worth the net result. Keeping your engineers engaged and motivated makes a much more substantial difference, so that’s what we’re going to look at next.


Although no two people are the same, the best engineers I’ve met through the years are curious, meticulous problem solvers. They like to flex their brain muscles and therefore enjoy a challenge and welcome the opportunity to make reality out of the seemingly impossible.
For some engineers, that’s expressed as a desire to optimize existing systems for better performance, while for others it may mean creating new software from scratch. Still, others thrive in creating automation  ensuring the seamless roll-out of new versions of a product, for instance  while some groups would most thrive by architecting complex multi-service solutions. Ultimately, though, the best engineers want to excel in their art, either by going narrow-and-deep into a specialization or by going shallow-and-wide across the various disciplines of software engineering.
For the manager, that means building a structure that facilitates learning and self-growth. Most importantly, it means respecting the art of software engineering, allowing for sensible timeframes for software development, and not skimping on quality.
Even if such a structure is in place, however, there’s no guarantee that the work at hand is going to be exciting for the team. A common example is that of a company that must maintain a legacy product while also developing the next great innovation. Most engineers will want to work on the newer product, yet the older one still needs attention as it’s the main moneymaker for the company. What can the manager do in such a situation?
She cannot categorically reject any work that the team doesn’t like doing. That’s unrealistic for any business. What she can do, however, is to strike a balance between less appealing work and more interesting tasks at hand. For instance, she can rotate engineers between the two projects every sprint or so, or, at the very least, ensure that the team who’s working on the legacy system participates in the design of the new one. Also, she can help the engineers working on the less interesting project to understand how the knowledge they’re gaining is beneficial to their career growth.
For this to work, the manager needs to have a thorough understanding of each team member’s goals and what makes them tick. In fact, if there’s only one tip to increase team retention, this is it: a manager’s understanding of the team specifically, and of software engineering in general, is what really makes the difference. 
If the work at hand really doesn’t offer any possibility to develop the team’s goals, perhaps a review of the operations model is in order. One option might be to introduce research projects that are self-directed and more open-ended. These projects would be targeted at generating innovative ideas that can then be incorporated into the company’s products at a later stage rather than short-term results.
Ultimately, the key takeaway here is that a good working environment is more important for retaining engineers than a crazy-high remuneration scheme. And “good” doesn’t just mean beanbags and ping-pong tables. It means a place where the engineers can grow and perfect their craft, flexing their brain muscle while keeping their natural curiosity satisfied.


Hiring and retaining engineers is less about beating the competition on salary and perks than it is about offering an environment that is engineering-positive.
When hiring engineers, you want to pitch the opportunities your company will offer them to learn and the uniqueness of your technology to perk their enthusiasm. By doing so, you’ll have a much easier discussion around salaries and benefits when closing the deal.
Once your star engineers are on board, make sure that they're able to realize these learning opportunities. When possible, allow them to choose what they work on. When that's not an option, make sure you're alternating personnel between run-of-the-mill tasks and more interesting work.
Of course, this strategy won’t eliminate competition for the best talent or guarantee perpetual retention. You're always going to have to compete for great employees, and turnover is an inevitable part of any business. But creating an engineering-positive company culture will ensure that your offers are based on a solid, positive foundation rather than random perks that might do more harm than good in the long run.