10. Good requirements
Developers like to know what they are building and why. Good requirements are critical to this and are essential for getting developers started right. Also, good requirements are essential for reducing rework.
9. Not being micromanaged
Good developers don’t want someone watching each keystroke. They want feedback and guidance, but they also want to run for stretches without being interrupted.
8. Getting help when needed
This is harder to achieve than you might think. Everyone is busy, so providing quick responses can be difficult. But remember, every minute a developer can’t make forward progress is expensive.
7. Good plans
People like to know where they are going. I think this is pretty natural. Providing guidance for a project helps developers to understand what is around the corner.
6. Well-documented technology
Most good developers don’t love jumping into new technologies that have little or no documentation. These situations usually grind forward progress to a halt.
5. Maker’s schedules
This aligns well with not being micromanaged and getting help when needed. Developers need time to dive deep into problems. If developers can’t get a solid four hours of uninterrupted work time each day, they won’t be super productive.
4. Working and running code
Developers like to work on running systems. If running the system is a struggle each day, developers are not going to have happy days.
3. Build processes that don’t require any maintenance
Setting up or fixing build processes isn’t fun. But working processes lead to a much happier developer team. If builds just work, everyone is happier (and more productive).
2. Writing automated tests
One of the most satisfying types of programming is writing automated tests. Nothing quite beats the feeling of seeing those green checkmarks when running tests.