In the spirit of self-improvement, I’m striving to be a more effective manager of software developers. I’m reading the negatively titled book Managing the Unmanageable by Mickey W. Mantle and Ron Lichty. It’s a book focused on managing software developers which I find to be a great resource. The chapter on what motivates software engineers made a lot of sense to me, so I took that as inspiration and wrote my own list of things that motivate software engineers.
Solving Problems and Making a Difference
Software engineers like to create software that solves problems and makes people’s lives easier or better. Whether it’s a game in the Android store or software for the company’s accounting team, they want to feel like their software is making a difference in someone’s life. They want to feel like what they are doing actually matters. They need to know how the piece they are working on fits into the bigger picture and why they are building whatever it is they’re building in the first place.
Learning and Growing
Software developers do not want to get stuck in a rut doing the same thing day after day. They want to learn new technologies. They want to work on different products and different levels of the tech stack. They want to try new ways of doing things. Programmers are open to change and accustomed to learning and expect both.
Top Notch Tools
Developers want to be productive. They don’t want struggle with something when they know there is a piece of software that would completely simplify what they are trying to do. They don’t want to sit waiting for code to compile when a more powerful machine would cut the compile time in half. They don’t want multiple large monitors for fun but to improve their productivity.
People in general like to be recognized when they do something well and software developers are no different. Recognition or praise can be a completely free way of making a developer feel appreciated and motivated. Whether in private or in public, to an individual or to a team, praise works. But keep it real. Genuine and specific praise will have the most significant impact.
Software engineers are motivated by having some upside possibility. This can be monetary like bonuses, profit sharing, or raises. Or it can be stock options or other perks. It can also be company growth or success and being part of a winning team. They want to feel tied to the company’s success; if the company succeeds and flourishes, they succeed and flourish as well.
Generally, software development environments are fun and enjoyable. It’s weird to imagine a software development environment that is super serious and stuffy. A lot of developers are wearing flip flops for crying out loud! Or in some cases…Crocs! Managers should set the tone. Have fun. Work hard, play hard. Be excited about technology and the projects you are building.
Contribution and Pride
Developers want to make significant contributions to the team’s success and to the overall product. That means managers should be listening to developers’ ideas, giving honest feedback, and giving them the power to implement their solutions. Be open to input. Even more significantly, encourage and allow developers to build software in a clean and correct fashion. This will drive developer pride. Excessive rushing and promoting hacked together software will have severe negative effects, not the least of which is developer dissatisfaction.