[Image from http://www.experteer-blog.de]
Motivating developers or rather keeping us motivated over a longer period of time is admittedly a hard job for our employers. That’s because, for most of us, developing software is more than a job – it’s a passion. This can mean that motivation or focusing on a task sometimes goes without saying: we just have to implement this certain feature, fix that other bug or meet some performance criteria. We are “in the zone” and can stay there for hours without eating, drinking or sleeping. Developers “in the zone” are working with a 100% dedication and commitment. This is the ultimate motivation possible and it’s usually triggered just by the nature of a task itself. It’s the challenge that makes it so interesting and almost irresistible. Having developers working with that kind of dedication is the biggest asset a software company can have.
The downside to this passion is that we also lose interest in trivial and routine tasks quite easily as soon as the hard problems are solved. Developers tend to look out for new challenges which seem more stimulating to our minds. The reason that so many software developers are working on open source projects in their spare time is that they need to vent their creative and intellectual energy. Fellow developers literally mentioned to me that:
“Being able to work on open source projects compensates for having to do boring day jobs.”
This is quite remarkable since we are talking about developing software in either case. This puts up the question if this is due to the actual projects they are working on or a matter of volunteer work versus mandatory work. In other words: Would they still prefer working on the open source projects if it became their day job and they had to do it or would they also lose interest?
However, taking into account these basic facts, it should be obvious that the question of how to motivate developers really is a tough one. We do not even have to go into motivational theories (like Herzberg’s) to agree on the fact that this kind of motivation and dedication cannot be triggered through simple rewards like salary increases or promotions – at least no in the mid or long term.
But how could this motivation happen then?
The good news is that, very often, developers who have reached a certain maturity should be able to (and usually do) take care of their motivation on their own. It’s just part of our nature and the jobs we do, that we seek new challenges and new opportunities. From time to time these new challenges and opportunities are in a new job at another company but more often probably we tend to seek these challenges at our current jobs (or also free time activities as we heard before). This does not mean though that our employers are off the hook here, because there are still many things that have positive effects on our motivation and increase our dedication and passion.
These are just a few ideas and though-provoking impulses.
I initially used “drama” for lack of a better word, but I think it describes quite well what I am going for here: Developers like drama. We like the idea of “having to save the day”. Give us a complicated problem to solve. Try to make our day jobs more challenging, more interesting, and we will turn out to be more motivated. It’s really that simple. Everyone likes the idea of being needed, developers for some reason tend to do even more so.
We like our hard work being appreciated. If that’s an email with our name in it, describing how we saved the day (again: Drama) or a round of applause during an all hand’s meeting - there’s hardly anything that could be more rewarding. Just keep in mind that we are spending a good amount of our job life sitting in front of a monitor our only award being fixed bugs or unit test running without errors, then you’ll realize the kind of motivational boost a plain “thank you for your awesome work” can have on us.
While this of course relates to material rewards, it still is an important factor. Never underestimate the effect an additional monitor or other – at first glance – unnecessary piece of hardware can have on a developer’s motivation. Most of us are geeks and we just dig cool new hardware and gadgets. Many of us bring their own keyboards, mice or other devices to work because we just like these pieces of hardware. An employer supporting that can make a big difference.
Training and conferences are probably the most important factor of motivation for two different reasons:
First, it helps us staying relevant. Technologies change so fast, it’s impossible to keep pace with all of them. It’s a no-brainer that constant learning and education is simply part of our job. Giving us the chance of actually doing so during our job makes us feel that these educational efforts are appreciated.
The second reason is the social factor and applies to conference visits. Being among representatives of our “species” outside our company is a really important experience. Usually developers inside a company tend to assimilate and conform after a certain amount of time, resulting in a technical and intellectual monoculture sooner or later. Exchanging ideas, views and knowledge face to face with other developers counteracts that.
I know this whole blog post is stereotypical and overgeneralizing, but I just speak for myself and the people I know and that’s how we roll.