Ever wonder what it takes to motivate software developers to be highly productive and love their jobs? For some reason, managers quite frequently get this wrong. There are lots of reasons for this…but the biggest is that managers don’t take the time to understand their developers’ point of view. This can lead to high staff turn over and poor work culture. Here’s how you can stop making these mistakes and motivate your software developers.
Things that don’t motivate a software developer
Companies try all sorts of things to motivate their developers. Surprisingly, they often succeed in demotivating them. The fact is, we can see through the smoke and mirrors.
Here are some things that do very little to motivate developers.
Free snacks & food do little to motivate anyone in the long run
In recent years, some big companies have jumped on the idea of providing unlimited snacks and sometimes free meals.
Don’t get me wrong, free food is great! If it’s there I’ll definitely have some.
But it’s not something that would motivate me to join a company…or to stay at a company.
This practice encourages people to stay in the office longer. I also hate feeling like I’m in a gilded cage.
It can also create an irrational fear of losing this perk if one were to join another company. This is great for a company, but once a developer sees through it then the game is up.
The fact of the matter is that it is just a mental trick. No one gives away food for free. Companies aren’t losing money by feeding their staff. The money comes from their profits…that they could be passing onto their developers.
Why would a developer want to accept getting paid less in exchange for free food? I’d rather the extra money in my pocket and be able to choose how I spend my money.
Beanbags & Game rooms only motivate software developers to slack off
I love relaxing and having fun.
Just not at work.
My personal preference is to keep my work and recreation separate so I can focus on delivering great software to clients.
Because of this, I’ve never seen the point of having recreation rooms be a part of an office. I worry it would make me less productive in the long run.
Casual clothes don’t motivate software developers to get in the ‘zone’
A lot of developers are going to disagree with me on this one. That’s ok.
I’ve worked in offices in all sorts of clothes. From full suit and tie to casual friday every day.
Sure, I do find casual clothes to be more comfortable…but…
for some reason, I’ve found that I’m more productive in business attire. Weird, I know!
Your mileage may vary…but I can’t argue with my experience since I’ve learned this the hard way.
Now, when I work from home, I wear business clothes. I find it helps keep a clear boundary between work and relaxing.
Because this makes me far more productive, I find companies that promote a casual work environment unattractive. Could just me though.
Working beyond 45-50 hours per week reduces developers productivity
Work-life balance? You won’t often hear about how important this is. At best it is given lip service.
When I first got started in this industry, 45 – 60 hour work weeks were quite common…but I got wise to this game when I realised how unhealthy it was.
Sure, the occasional overtime is perfectly fine…especially when I’m getting paid good money…but, by and large, I now avoid this because it isn’t sustainable.
I prefer to work to live rather than live to work.
Besides, working more than 40 hours leads to less productivity. Because of this, I prefer to work in places that see the value of highly productive people rather than the number of hours worked.
Annual bonuses can be a great way to demotivate software developers
Annual bonuses sound good in theory. They give developers the impression that they will get to share in the profits of the business. This encourages them to work long hours to make sure they deliver on projects.
What could possibly go wrong?
Well, reality isn’t very gentle.
My experience has shown that things are not as they appear. Often politics ruin everything.
What typically happens is that something bad will inexplicably happen to cancel or reduce the bonus…or management will find some way to make the bonus proportionate to your performance review…and not tell you that they have a limited quota of high performer slots.
This gets old fast and I’ve seen it demoralize more developers in the long run than it motivates. It always ends up feeling like false hope.
My advice is don’t do it. Just pay your workers a realy good wage instead.
Social activities will not motivate introverted software developers
66% of people are extroverts that love to socialize.
I’m not one of them.
There are some developers that are extroverts but, in my experience, there are more introverted developers than the average population.
I do enjoy spending time with people…but by the end of the day, I need to go home and recharge.
Parties and social activities can be a great way to boost morale in a business. But they aren’t what motivates me. Having a team that enjoys working together is more important to me than hanging out after work.
Motivating software developers through unnecessary or constant pressure will have the opposite effect
Sometimes work just needs to get done that wasn’t planned for. No problem at all.
What bothers me is when companies create constant chaos to keep the pressure on their teams. If all your team does is fight unending fires they will go nowhere. Strategic planning can help to get your team on a better path.
Additionally, managers who use anger and fly off the handle at every little thing are toxic to teams. This tactic is used by managers who only think in the short term. In the long term, it craters team morale and all motivation can be lost.
Training that won’t make me competitive on the market is frustrating
I love training. Every developer is constantly looking to up their skills, gain an advantage, and deliver great value.
However, the name of the game is to have skills that will keep you employed for an entire career.
What software developers don’t like, is when companies send them on training that has no benefit outside of their current company. The worry is that they will become highly specialized within a company and that their technical skills won’t be transferable.
Some of this is unavoidable. Each business is unique and requires its developers to gain skills that will give the company an advantage.
I’d never tell any business owner to provide their staff with training that was unprofitable for their business.
Instead, I’d recommend developers work on two things:
- Self-directed learning.
Don’t rely on a company to keep your skills sharp. Take that responsibility on yourself.
Yes, this will mean studying in your own time. Learning because you want to is way more fun than learning because you have to. - Soft skills
Balance your technical skills by learning skills that complement your technical abilities. Becoming an expert in leadership, negotiation, conflict resolution can greatly increase your value.
Best of all, once learned, they are easily transferred between companies and rarely have an expiration date. In essence, they become a life long skill.
What it takes to really motivate software developers
Motivating development teams can be a struggle for any manager. They often try all sorts of gestures that come across as hollow. When developers see through the fluff, it can motivate them to leave.
Motivate software developers to stay with competitive pay
For me, providing the best life possible for my family is the most important thing in the world. However, doing that takes money.
For some reason, we all like to downplay how important money is…but for me, it is one of the most important things. Not so much for the money itself but for the life that it allows me to live.
Two reasons developers tend to move on are:
- No professional growth. If I can’t increase the value I deliver then it’s time to move on. This is especially true if staying at a company will decrease my employability.
- No income growth. For some reason, companies don’t value the staff they currently have by paying them what they are worth. Finding another company that values your skills is a good way to be compensated for the value you deliver.
Addressing these key areas can greatly reduce staff turnover.
Being flexible helps keep software developers motivated
Having a flexible schedule is key to a happy and productive life.
We all have a life…and it is very nice to be treated as an adult and allowed to live that life.
I’ve worked for people that have required me to ask for permission for everything that took me away from work. This sort of thing can be incredibly frustrating and demotivating.
Instead, developers very much appreciate being treated as an adult and being allowed to manage their own time.
For example, having the flexibility to alter my working hours as needed without having to beg for permission is key. As long as one’s performance and output continue to meet the needs of the team then there should be no problem.
A good team with friendly teammates is a huge motivator for any programmer
This is one of the most important thing that every developer needs.
In my career, I’ve worked in a wide variety of teams. Some have been toxic. Others stand out as some of the best and most rewarding experiences of my life.
All software development is a team sport. Having a good team to work with makes the whole experience incredibly fun.
These are some of the things I appreciate in a good team:
- No backstabbers – People who tear teammates down are the worst.
- Team players who are eager and willing to help each other.
- Good variety of technical and analytical skills.
- Friendly but not too friendly. I like a team that enjoys being around each other without getting in the way of work.
- Good and open communication throughout the team. This includes being able to professionally give and receive feedback.
- Management that helps to keep political rubbish from consuming the attention of the team.
Motivate software developers to think outside the box
Developers love solving problems. There is nothing worse than working on easy cookie-cutter solutions every single day. Challenges are what make software development fun.
I love being thrown into the deep end to sort out difficult problems. Sometimes they can be frustrating, but it feels amazing when the problem is solved.
If you want to motivate developers, allow them to sink their teeth into challenging problems and trust them to sort it out.
Encourage developers to grow their programming skills
Programmers love to learn new skills. We especially like learning skills that make us more valuable and enable us to solve bigger problems.
One of the best things the manager of a team can do is allow time for self-directed learning and improvement. This needs to be part of the team culture. Developers should feel free to spend time researching better programming techniques and technologies.
In the long term, people learn better when they choose what to learn. Sometimes management will need to dictate what teams learn. But that should be the exception.
Instead, take the time to help your team gain a vision for what skills are going to be valuable while allowing them a little room to play with fun technologies. Your developers will love you for it.
Motivate your software developers to say fresh by letting them play with new technologies
No developer likes to feel their skills are becoming out of date. It leads to feeling insecure and fears of being unemployed.
The best way to deal with that is to allow developers to work with the latest technology. If you don’t, at the first opportunity, they will jump to a company that does.
There is no way to fully avoid working with old technology since technology changes so quickly. Give something 5 to 10 years and it’s pretty much ancient.
On the other hand, it doesn’t make economical sense to continually churn the technology you work with. The best approach is to put a strategic plan in place that will allow technology to be upgraded gradually over time. The great thing about such a plan is that you’ll avoid getting trapped with systems that are difficult to learn and expensive to maintain.
Give your developers more control
Having control of one’s destiny is incredibly motivating. One of the quickest ways to demoralize a development team is to dictate every last detail of the solution they need to develop. If you want to go above and beyond, be sure to dismiss any suggestions for improvements in the design, architecture, and technologies used. You won’t have a good team very long if you do that.
Instead, the best thing to do is to give developers a bit of control over their work and integrate them into the entire process. Engage them early in the concept phase and allow them to see the project through to the end.
By giving them influence in the process from beginning to end, you’ll wind up with a far superior product as well as a team that is highly motivated.
Motivate programers to achieve peak performance by eliminating distractions
Distractions are a developer’s worst nightmare. They interrupt one’s flow and slow down progress.
There are several things that can be done to improve this.
Give developers some control over distractions. Ideally, this would involve giving them a private office with a door they can close to control interuptions. However, that isn’t always possible.
Here are some things that you can do:
- Develop a team culture of that minimizes interruptions.
- Allow developers to focus and tune out.
- Encourage team members to respect each other’s focus.
- Teach your team the importance of focusing. Eliminate notification distractions.
- Encourage timeboxing. Team members should focus on one thing at a time.
- Use noise cancellation headphones. They can have an amazing impact.
- Eliminate useless meetings or permit team members to skip some meetings.
Good management is the key to motivate software developers
The quality of management can make or break a team. Before trying to “fix” a broken team, be sure to take a close look at the team’s management. A good manager can bring out the best in a team and turn even average developers into highly productive team members.
Here is what a good manager looks like:
- Needs to be patient and able to control their emotions. Out of control outbursts can sink a team. Having good emotional intelligence is a key quality.
- Know what they are doing. Good managers know the boundaries of their role and that of those they manage. Micromanagement is never an effective way to run a team.
- Get out of the way of your team. Clear the obstacles that stand between your team and success….and don’t let yourself be one of those hurdles.
- Set the team up for success by providing them with clear directions and supporting them every step of the way.
- Be in the trenches and encouraging. There is nothing worse than managers that dictate from afar and criticise from the sidelines. A good manager works with their team in the trenches and shares in the ups and downs.
- Encourage attention to detail and quality. Make this less of a dictate from above and more of a team cultural practice.
- Defend your team and keep politics and damaging things from getting to the team. Development teams need to focus on being productive and profitable. The more time they spend doing what they are highly skilled at that more successful your team will be.
- Encourage people to time box and do one thing at a time rather than multi-task and do everything mediocre. There are few things worse than a manager that puts a team under the pump to get multiple high priority tasks done while harassing them every few minutes for a status update.
What have you found to be the best way to motivate software developers?
I’m very interested to hear your thoughts about motivating software developers.
Are you a manager of a team? What things have you found that motivates your teams? What have you found demotivates your team?
Are you a developer on a team? What motivate or demotivates you?
I’d love to hear about your expeience in the teams you’ve been in.