Why does it seem so hard to manage engineers, especially software engineers? In my years, I've seen a lot of unproductive situations. I've worked for and with some amazing people. I've also had the pleasure and privilege of managing some of the finest engineers. In general, I found the secret to managing a development team comes down to a few simple rules.
- What are we working toward? Note, this is not an individual goal. This is the team goal.
- What are the rules or parameters? Is there a necessary platform or set of design patterns. You need some rules, but don't go overboard and be so restrictive that it stifles creativity.
- GET OUT OF THE WAY! This is the most important one. In theory, you hired some smart, creative people. Let them do what you hired them for.
I came up with these rules when I thought about what made me the most productive as an engineer. It was always when I knew what to build, the restrictions, and was given the freedom to solve the problem. This is probably why the Agile Development process feels so natural to me. To have user stories that describe the desired result without specifying exactly how to do it lets me solve the problem far better.
Another thing that doesn't hurt is to get your hands dirty once in a while. No matter what level I am at, I always make it a point to understand as many details as possible, and often I jump in to help with coding.