Is work only about money? And if it’s only about money, what makes developers quit their jobs? Practice shows that the most common reason for leaving a good-paid software development job is lack of motivation.
And here are 5 things that make developers’ motivation reduce quickly no matter how much money they are offered:
1. Bad management
Good management is an indispensable motivation factor for both people and projects. The qualities of an excellent manager include quick decision making, avoiding micro-managing, encouraging independent thinking, awareness of the process of building quality software as well as willingness to come to the defense of their team when needed. With such a manager, a development team will be ready to work at nights for good results as they will be trying to return that favor and be loyal to the manager. In the result the developers will be highly motivated and the software they’re building will be even better.
2. Lack of challenge
As behavioral research indicates, people are always happy to learn some new skills and challenge old ones. By the way, this learning and challenge factor matters greatly when the compensation is negotiated. Thus, people tend to accept less payment if the work is interesting and teaches some new skills. By letting developers to play with some flashy new technologies that challenge them at work, it’s possible to gain impressive productivity levels.
Besides satisfying the urge for learning, it’s important to give developers some challenging technical tasks demanding creative approach. Without such challenges programmers get bored quickly and you can often find them surfing the Internet instead of working. On the other hand, if you hit their need for problem solving, chances are they are going to work as long as it’ll take them to solve that problem. The wrong “challenge” for developers, however, is the task to correct somebody’s mistakes in the code. This is really no fun at all.
Since developers are the ones who’s in the trenches, they are always the first to know that a process or system is not working. That’s why it’s important to listen to them because their work problems are much the same as project problems. Having no voice is a common reason for many developers losing motivation at work. Often bosses ignore the necessity to get more RAM or buy some new technology and by this they create worse working conditions for developers, reduce their employees’ motivation and of course affect the quality of the developed products.
4. Lack of recognition
Everybody wants to be recognized for their hard work. In the first place we want to work so that we can impress ourselves and somebody else. Even if a manager doesn’t understand what a hard task it is to build a Perl compiler on Vic 20, it doesn’t release him from an occasional praise developers need so badly. While it is certainly fun to build something great, it’s fun even more if you see your efforts are justified and not just taken for granted. Even if you are one of those few people who don’t need praise for what they do, it will boost your motivation at work at the same.
5. Useless work
One way of doing useless work is working on the projects that are doomed from the beginning due to some organizational reasons.
Unrealistic deadlines account for a huge number of projects which are set to fail. Developers want to create software which would not only work, but also would be maintainable and something worth to be be proud of. And meeting the deadline with a crappy project is always far worse to a good developer than coming up with something worthy behind the schedule. That’s why when the time is tight, the first priorities of the project should be quality and maintainability.
Among other reasons the project, a developer is working on, is doomed are cheap tools, incompetent colleague, changing scope and, too often, unspoken expectations.
In other cases an idea of the project or given task is just absurd and thus useless. Everybody wants to believe they are making this world a little better with their work. That’s why writing a new interface for a buggy API which is going to be used no more than 20 times in total doesn’t make any sense to developers. And doesn’t make them want to work more either.
I have no doubt, if every boss corrected these mistakes and followed the right motivational tips, their developers could write a MIDI sequencer in Assembler and even build an artificial neural network in C!
What other reasons made you lose motivation at your previous job?