Before talking about what motivates developers, I want to talk about money. Money is the universal token of success and everybody seeks it as a means of validation. However, I see money as something that, if I don’t have it, I may want try to find it somewhere else, rather than something that’s going to actually drive me to pour my soul into a problem and get it solved.
This is what actually drives developers:
Many organizations cultivate a “we’re all responsible” culture and it sure has its merits. But make sure that every step in the development process, every project and sub-project has a responsible. Everything should have a clear person to blame in case things go under, but that’s also the person to give credit to, in case of success. Developers will have a stronger feeling of importance and give the best of themselves if they feel accountable. Also, it’s common for organizations to centralize decisions to an extent that will discourage developers to even come up with solutions. Don’t do it. Encourage decision making, encourage developers to feel like if they spend the night thinking on the solution of a problem, that they’ll be heard and be rewarded.
Developers have chosen this career path because they’re passionate about it, at least the best ones. The best developers will always be driven by curiosity and drawn to an environment where they can explore and learn new technologies. They don’t want to be forever stuck in the past.
“But we can’t keep changing the front-end libraries every three years, that’s insane”. Correct, but you can do that at least outside the “core product”. There’re always new libraries, tools and small side-projects being developed, where the risk is low. Use these as an opportunity to allow the developers to explore with their favorite languages and frameworks.
Encourage a laboratory and it will eventually pay off. Developers are twice as productive when they’re doing it the way they want and with the tools they’ve chosen.
I can hardly think of anything worse for productivity than disbelief, and it spreads like a disease. Disbelief occurs normally towards the decision-making teams, and it’s quite common when it’s not clear why things are being done the way they are. Are there cases in which the decision makers are actually incompetent? Yes, but I bet in most of the cases it’s just a communication breakdown (It’s always the same). Here’s what you can do:
Open-offices are trendy now in the developed world and it has always been that way in the developing world, because of cost. Well, that sucks and should be avoided. But if you can’t afford a different office layout, there’s still something you can do: Cultivate a culture of silence. Encourage people to avoid hallway talks, make more use of meeting rooms and ultimately keep their voices down. You don’t solve a complex algorithm with someone talking out-loud in the phone right next to you. I actually think this can be detrimental to your mental health. Coding is a labor of concentration. Let’s keep it quiet.
Last but not least, let the developers have some privacy. Don’t make them feel like they’re been eavesdropped all the time. Give them fresh air and a sentiment of trust.
People are talking about User Experience all around but there’s also something called Developer Experience. Codebases get clunky over time, full of workarounds and difficult to work with and maintain. In order to keep your source code pleasant to work with, make sure part of the capacity is always dedicated to fix technical debt. You’ll not only contain the constant appreciation of story-points, but you’ll also improve the morale of the developers.
I love it when the tools I use get an update. I’m an avid “release notes” reader and I love exploring what I can do now that I couldn’t before. Developers are like kids, give them the “toys” they want and they’ll be more productive. Also, make sure their hardware can handle the load. Often it pays off to give developers the best tools money can buy.
I’ve never seen a better example of self-organization and dedication as I’ve seen in hackathons. Developers often know of better and more modern ways of solving some problems but they aren’t always able to do it because “it’s not in the roadmap”. Hackathons are the best way for them to explore their creativity and do what they want, the way they want. It’s also an opportunity for developers to show their true potential and stand out. The results are often great and the business team will often be like “Great idea, why didn’t we think of it before?”. If you don’t promote hackathons already, it’s time to start.
Most organizations are often too concerned about their intellectual property to even consider open-sourcing. They are wrong. Here are some benefits:
I’m not saying you should open-source everything, especially your core business. That would be insane. That’s what pays the bills. Here’s a small framework to help you decide what to open-source:
In order to make developers productive, it’s important to understand what they want and what makes them happy. I hope this article helped shedding some light on the topic. Also, be sure to read The Joel Test: 12 Steps to better code. Awesome read.
Happy hacking!
To learn more about me, please visit http://andrerpena.me