Many programmers have been doing what they do since they were in grade school. They're passionate about it and like creating things. It's not hard to motivate a really good developer, since he or she often spends plenty of time self-educating. It's also not hard to demotivate a really great developer. If you're starting to see a lack of productivity in your programmers or appear to be have an increasing employee turnover rate, it's very possible that you might be demotivating your development team.
Developers love to write code because it allows them to create amazing things and they are the types that enjoy a challenge. When a developer is frequently interrupted with side projects and has to juggle and manage them all, it increases the amount of time that a single project takes. This could mean that he or she is unable to see the endgame and may become discouraged. What to do? Allow them to reach a stopping point or complete a single project at a time in order to feel as though they're accomplishing something.
When your managers are breathing down your neck, it's easy to stand over your team to try and uncover holes in their productivity or identify poor coding skills. Micromanagement not only has an effect on your developer's motivation, but also their productivity and the company bottom line. You have to trust that your developers want to put out quality work, so trust in their skills.
If there's one thing developers hate, it's being pulled into strategy meetings, conference calls and completing other administrative functions. Developers aren't good at that stuff. They really just want to write code. It's your job to protect your team from high level meetings and all of the standard business stuff so that they can be as productive as possible.
Developers need tools and documentation in order to do their jobs effectively. If you're providing your team with outdated documentation or not giving them access to the most up to date tools, they're going to get frustrated.
A study of workplace training conducted by the University of Columbia found that workers would be happy to forgo as much as a 20% raise if it meant working at a job with more variety or one that required more skill. It's important to note that developers are hungry to learn as much as they can and they enjoy learning new programming languages and tools. Take the time to establish a budget or form a program that allows tuition reimbursement or group training for your developers. Not only do developers love to learn new skills, but also a widely skilled developer can be an asset to any organization.
Developers are problem solvers by nature. They love a challenge and rise to the occasion when they're offered one. But providing your developers the same types of projects day in and day out can be discouraging for them. Just look at the popularity of hackathons, which are a new technique that many Fortune 500's are using to motivate, unite departments and incentivize their developers to exact change in the organization. If your developers seem bored, it might be time to sit down with the executives and discuss how a hackathon could work towards the benefit of the company. Here's a great article on why companies run hackathons.
While hackathons are great for uniting departments, inter-department communication and teamwork can often be an issue in many larger organizations. Consider an environment that uses pair programming in a different way by uniting those with similar coding skills, but different strengths. This is a great way to help developers learn from one another and avoid the issue of having to "clean up" after less skilled coders.
Programmers are often late night people and enjoy taking on projects with tough deadlines. They thrive under pressure. However, when left to their own devices, this can quickly lead to burnout and unhappiness. Be sure to offer your developers vacation time and resources that allow them to achieve better work-life balance.
If you've been doing any of the things above for any period of time, you may have unintentionally demotivated your team. If you've lost some talent or are currently working with a team that appears to be demotivated, all is not lost. Take the time to embrace some of the suggestions in this blog, including offering a new training program, avoiding micromanagement and implementing new ideas like paired programming and hackathons.