Rewarding your software developers is one of the most important boss ceremonies. Change my mind! It motivates them to do a better job, inspires loyalty, increases productivity, and gives them a great deal of satisfaction. It also helps you keep them on the payroll, and that is something crucial considering that software developers are in huge demand nowadays.
Here’s another interesting point: because of the way our minds work, you should reward more often than discipline. Disciplining feels like punishment and is psychologically lasting. The feeling of embarrassment or humiliation gets coded in our brains and remains there. In some cases, for a very long time. You can even see for yourself and try to recall the last time you got disciplined and the last time you got rewarded. You probably remember the moment of getting disciplined more, right?
In this post, we’re going to dive headfirst into the complex world of rewarding. But first, here are the different ways you can reward your hard-working software engineers.
Ways To Reward Your Software Developers
Rewarding With Time
Technological change happens so quickly that we often can’t keep up. That’s why rewarding your developers with free time to experiment and learn something new can help them stay ahead of the game. It can also help companies enhance productivity and innovation.
For example, learning a framework and applying it to a side project is a good way to gain up-to-date knowledge. This could be a few hours of investment time every Friday. It’s actually what we practice at our software company.
Rewarding With Things
Some developers prefer to get things as a reward 💸 Having something tangible in their hands is expressive of your appreciation for them.
A huge reward for me was when I left Big Pharma and started working at a startup — I was finally able to work on my very first MacBook and use IntelliJ to code!
Other ways of rewarding with things include giving a bonus, sending your developer on a trip, or covering expenses. You can also improve their workspace with a new chair or monitor. A salary raise works, but keep in mind that it’s not the best way when it comes to keeping your engineers motivated and engaged in the long term.
Rewarding With Recognition
Ideally, showing your developers that they have a huge impact on company success should be done more often than on Employee Appreciation Day. No gesture is too small.
One way that has worked wonders at our small-but-cozy software company is to give personalized feedback or make appreciation public. You might not believe it, but a simple “thank you” — what we call a “kudos” — goes a long way when it’s expressed publicly, in a weekly meeting, a company email, or in a newsletter.
We often do this on our kudos Slack channel. Most of the time the kudos are for outstanding work like helping out on a task outside the scope or for having taken initiative on something.
Rewarding With Mentoring
Developers — your most important asset — need to grow, self-assess, and find ways to get themselves professionally to where they want to be.
One great way to help them on this journey is through mentoring. At my software agency, we pair up junior and even more experienced developers with a principal engineer. The initiative has been so successful that many developers feel that the opportunity to learn from a mentor is a reward in and of itself.
The key here is to have a developer who is motivated enough and a principal engineer who also loves to teach and share their knowledge. If your company might not have good candidates for mentoring, a few hours a week to review code together or participate in a small workshop could be another option.
Rewarding With Connection
People who find the time to connect with each other are happier, more engaged, and in most cases, better at staving off burnout. When managers make time for their developers, they build an emotional and psychological bond that gets their developers to invest more in their work and the company. Even the little things matter, like asking about family members or participating in company outings together.
A Note on Building a Culture of Appreciation
None of the above will work unless the building blocks have been set. I’m talking about creating a culture of appreciation at your workplace.
As an engineering manager, you’re responsible for retaining your best engineers and encouraging them to work effectively. You also need to regularly show your engineers that they are valued at the company. This couldn’t be more true with millennial and Gen Z developers, who often feel entitled to recognition and are difficult to please.
Building a workplace culture of appreciation is a good solution. It’s a simple way of engaging your developers and rewarding them for a job well done. A well-designed rewarding program can improve morale and stop your best coders from leaving.
A Note on Rewarding in the Post-Covid Era
We’ve talked about mentoring in the post-covid era, but it’s also important to mention rewarding in the post-covid era.
The IT world has gone through many changes in the last few years. With covid and fears of a recession, many developers have been forced to ask themselves what they want out of life, if their company reflects their values, and if their current position helps them contribute to a better world.
This re-examination of one’s personal and professional priorities was so brilliantly captured in the Great Resignation, a book that helps managers understand how employees have changed over time and how employers must adapt too.
As an engineering manager, the way you handle your developers’ priorities will ultimately determine whether they stay at the company or leave at the next opportunity.
Many years ago, I worked for a pharmaceutical corporation. I had a great salary and an awesome team of engineers who reported to me, but I found myself unhappy and burnt out. We worked so hard but it didn’t seem like our efforts were really appreciated by the higher-ups. People were just there for the money and because it was a huge corporation. Nobody felt they could have a real impact on the company or the world.
I then joined a small startup as a Technical Team Leader, and I made it my mission to help my developers not only be better at their jobs but better people. I wish I had an engineering manager during my time at Big Pharma like the one I became later on working for a small startup.
That’s why the role of an engineering manager is so important. It’s in your selfish interests to find a balance between creating growth opportunities for your best talent and the company’s success.
As you could learn from my example, it’s not always about money. It’s about rewarding your developers in a way that suits their needs, passions, and their personality types.
A Note on Rewarding According to Your Developers’ Needs and Interests
Anybody can give an expensive gift whose only value is found in its price. The idea is to make your developers happy with a reward that satisfies their needs or is tailored to their uniqueness.
For this to work, you need to dig around to learn what your developers do in their free time. For example, does your QA tester play the guitar in a jazz band? How about a concert ticket to Snarky Puppy? Does your junior developer love Japanese food? How about a sushi masterclass?
Most of the time your developers won’t be moved by the material value of the reward, but they will be impressed because you took the trouble to learn more about their needs, difficulties, passions, interests, and ambitions.
“Thank you,” “I appreciate your work,” “I’m grateful for your contribution to the company.”
Many bosses who don’t have the means to reward their developers are often hesitant to say the above phrases. That’s because they’re afraid of their developers saying, “That’s not enough” or “That doesn’t put food on the table.”
But the truth is, putting your thanks into words via a face-to-face conversation is an invaluable way to show appreciation.
I once worked for a software house where it seemed that the only role of the CEO was to go around and share positive and personalized words about his developers’ work. But do you know what happened when that CEO left? The dev teams missed his warmth and openness and even wrote emails to try to get him back. Understandably, the handshake itself wasn’t what kept the company together, but the gesture created an atmosphere that kept people’s spirits high and focused on the project.
The Biggest Challenges to Rewarding Your Software Developers
- Offering generic rewards that do not fit in with individual developers.
- Not using tools and technology to reward. Lack of digitalization.
- A reward program that isn’t systematic and regular.
- What achievements deserve rewarding? Problem with setting up a baseline.
- Rewarding needs to be for all teams, for all developers, and for all employees.
- Difficult to know if rewards are improving morale and company growth.
Problems With Rewarding
Unfortunately, when it comes to appreciating your developers, engineering managers often don’t know what to say. Many engineering managers actually feel weird or awkward when praising a developer. When feeling embarrassed, a lot of bad things can go wrong. Here are some examples:
The BOSS says: “I have to reward you.”
Why you shouldn’t say this: Praise has to come from a good place; it has to be meaningful and give the receiver the feeling that he or she earned it. But when praise is forced or obliged by a higher-up, it breaks down morale and simply makes the receiver of this praise unhappy.
The BOSS says: “I would like to see you in my office right away!”
Why you shouldn’t say this: This feels tense, right? The receiver of the praise has no clue that he or she will be called into the office to be rewarded. In my experience, the intention needs to be identified right away in the initial communication to avoid any worries.
The DEVELOPER says: “Thank you. I didn’t expect a raise.”
And the BOSS’s response is: “I didn’t either,” and laughs.
Why you shouldn’t say this: The joke could embarrass the developer. The developer could leave the boss’s office feeling bad that his or her hard work wasn’t taken seriously.
The BOSS says: “Don’t let the raise get to your head.”
Why you shouldn’t say this: He’s taking away the developer's satisfaction by making an unnecessary comment.
The BOSS says: “I’m sure next quarter you’ll achieve even better results because the bar goes up every month.”
Why you shouldn’t say this: He announced increased expectations and requirements in the future. This could make the developer feel stressed, worried, or even hopeless.
The BOSS says: “I won’t keep you any longer. Get back to work”
Why you shouldn’t say this: He didn't give the developer an opportunity to talk about his successes. He basically kicked him out of the office.
Tips on Rewarding
Rewarding should be a pleasant experience. To make it memorable and to really highlight its importance, I recommend rewarding when out for dinner or a coffee, or in a one-to-one meeting.
Places where you shouldn’t reward are at the water cooler, in the elevator, or even while talking to your developer on the phone. Don’t show praise in passing or in the corridor. Find a time when you’re not in a hurry. Mark this moment in a calendar.
I’ve had the pleasure of working for some really fantastic bosses. But the truth is, I place very few of them up on a pedestal - I can't seem to praise them for how they praised me in the past!
The ones that did leave a mark on me were truly exceptional. They selected the right place and succeeded in building just the right atmosphere when rewarding. You know something good is going to happen when the boss greets you at his office door with a smiling face, shakes your hand, and invites you to sit down in a comfortable chair. Once I was even offered a cigar. I thought we were celebrating the birth of his child, but it was just the birth of a great idea - a partnership!
An Algorithm of Appreciative Conversation
Our software developers and engineering managers really love a good algorithm 😂 So, if you feel that you have trouble rewarding your developers during your one-to-one meetings, we suggest you test out our algorithm of appreciative conversation. Here it goes:
1. Show positive emotion about the praise and identify the purpose of the meeting.
2. Let your developer know exactly what they’re being rewarded for.
3. Let your developer know how the company has gained because of his or her hard work.
4. Identify the object of the praise i.e., a thank-you note, cash bonus, or concert tickets.
5. Let your developer comment on the source of this accomplishment.
6. Announce the possibility of further rewards if the developer keeps up the good work.
7. End the 1:1 meeting in a way that everyone is happy.
A Conversation Conducted According to Our Rewards Algorithm
The conversation is between Toby, the engineering manager, and Max, a Software Developer. Toby, who is smiling, greets Max at the door with a handshake.
Toby: “Hi Max, please have a seat. I have some great news. I invited you here today because I wanted to reward you for a fantastic job.
Max: “Wow! Really?”
Toby: “I really appreciate how quickly you got that feature out! I particularly appreciate the fact that you did a great job collaborating with the other stakeholders from the e-Commerce company. I heard many flattering words about you from Monica, and I was very pleased that she was so impressed with your knowledge of the codebase. Thank you, Max. I am especially grateful because your work has landed us another contract with a major company. Words spread fast, and in the IT world, that is important!”
Max: “Thank you for the kind words, Toby.”
Toby: “Max, I remember that you recently had problems with your car, so I’ve decided that starting next week you can use our company car for private use. Does that suit you? We’ll take care of the expenses and gas.”
Max: “Thank you so much, Toby. I did not expect such a gesture from the company. I am really very pleased.”
Toby: “I’d like to know how you feel about this. And also, please tell me about how we can improve our processes and workflows. Would you like some coffee?”
Max: “Sounds great! I would like a coffee. So, about velocity…”
Ending the conversation:
Toby: “Max, I wanted to assure you that I will continue to appreciate and reward such great work. Thank you again! Developers like you give me a lot of satisfaction and make my job easier.”
Toby, who is still smiling after a great conversation, walks Max to the door of his office and wishes him a great day.
A Note on The Personality Types of Software Engineers
To really know how to reward, you should know the personality type of your software developers.
Software engineers tend to be pragmatic, reliable, and very organized. They don’t rush to make decisions and may take a long time to research and analyze data before starting their work.
According to the DISC Personality Profile, software developers are: conscientious.
That means their main attributes tend to be:
When rewarding a conscientious software developer it is important to know that he or she:
- May not want to talk too much about the reward.
- May want to talk about processes and how to improve production, velocity, and deliverability (Listen to their ideas!).
- May not be very good at expressing their feelings about the reward.
- May show a lot of interest in receiving praise through technology.
- May show enthusiasm for upskilling and growth opportunities.
- May appreciate rewards in the form of productivity-enhancing gifts (technology, subscription services, office furniture, headphones, etc.).
- May really appreciate that you respect his/her knowledge and skills by asking for input.
Rewarding is super important! When given at the right time, the reward can have immense effects on your developers’ engagement, happiness, productivity, and work output.
If you set up a regular rewards program at your workplace, I guarantee you that your developers will become more focused, success-oriented, and invested in the company 🦾