Happy Developers are Good Developers
Any developer can relate to writing depressing code. Our industry is known for long hours and the resulting burnout that follows. Corporate America is full of managers that like to see code written, without caring if the code will ever launch. This grinds on the inner-nerd of every developer and they suffer.
When a developer suffers, their code suffers.
The answer to this has become more money. If we only paid these folks even more cash, they will be happy again, and they will write better code. While this may be true for the short term, the end result is developers leaving corporate jobs in favor of small shops and startups, often times for less money, but more value within the organization. Do not get me wrong, I think we should be compensated nicely, we do hard work. But money is not everything.
Developers want to be happy. We want to write applications that people use. We do not want to be called rock stars or ninjas, we just want human beings to use our products.
A Guide to Happy Developers
As a developer, and an employer, I have learned a few things along my 20+ year journey in the computer and software industries. Here is my list of things that make me happy as a developer. There have been a few employers along the way that could have benefited from reading this list.
Devs love gear like Gollum loves the ring. Do not make us use last generation's ThinkPads, give us MacBook Pros, and do not skimp on the RAM or display. Developers spend their lives looking at these screens, make them good. Also, do not be afraid to throw a monitor next to that laptop. A few hundred bucks spent on a monitor can go a long way.
Devs deserve time off and vacation is only good if they are allowed to use it. Do not create a culture where 60+ hour work weeks and no vacations is a good thing. Respect days off, encourage employees to take their vacation, and reward the hard work of heavy sprints with some R&R. If they have been working 60+ hour weeks for the last month to hit the launch deadline, give them a few extra days vacation. Make the weekend a 4 day break. Developers are not machines.
Devs should be involved in planning the project, not just executing the development. Requirements that are crafted by people that are not creating the application often require several changes during the development cycle. Include members of the development team in the planning phase, and the number of issues that will arise after the specifications have been approved will be greatly reduced.
Devs enjoy learning about new technology and using new tools. Conferences, books, subscriptions to learning sites, and side projects are all ways to allow devs to play with new things and learn about new technologies. Encouraging side projects, internal apps, and other tools to be written using languages or databases that differ from your normal stack will excite your dev team.
There were times I would have been happy with a new laptop and an extra week vacation after some large project launches. I did not leave jobs because of the money, I left because I was not happy. Happy devs write good code, code we can be proud of.
Want to optimize your development team? Make them happy.