I have had the question posed to me… what is your management style? I have been thinking about it a lot. I have been thinking about how the last 3 years has shaped how I do things now through managing programmers, non-programmers and consultants. My philosophy of management is four fold: Engaging, Equipping, Supporting and Directing.
Engage:
Leading a team requires strong engagement efforts with the people on that team, both professionally and personally. If you don’t know what your team wants or is capable of, how can you lead them efficiently? There is a time, of course, when you need to do things in ways they wouldn’t prefer, but I believe that if you have engaged them successfully, then you won’t have an issue explaining why things are going that way. This is all about building trust because you don’t have a team without trust, just underlings.
Equip:
A team must be equipped to do their jobs effectively. Firstly, it means technology like powerful computers and collaboration tools. Secondly, it means good training and ways to keep up with technology as well as growing in their profession (this is closely tied to Support). The first act I ever did as a manager was to get my team brand new top-of-the-line laptops with dual monitors and webcams so we could conference together effectively. I do not regret that decision.
Support:
No one who hasn’t been a programmer can really understand how a day solving problems goes. For example, my lovely wife often asks “When will you come home?” while I’m working on solving a problem at the end of a work day. It is possible that I might solve it in 2 minutes and head home immediately. It’s also possible (and more likely) that it’ll take much longer, but you never know until you actually solve it. That’s tough for dinner planning, but even tougher when it affects project timelines and blows estimates out of the water. It’s easy to say “estimate high” but that is tough on large scale projects for effective planning.
Support goes one step further, in my opinion. If your team is trustworthy, you need to have their back in all circumstances. If there is a mistake made by someone on my team, I will take the fall for it, and work to get the problem resolved. I will never let someone discipline or call out a member of my team from outside of it, that is my job as the manager and it does not need to be public (usually). My team understands that they are my priority and that I will support them as they get their job done and I expect that to be as efficient and correct as possible. Traveling that two way street has allowed me to accomplish some remarkable things in my current position and I am proud of that.
Direct:
This one is easy. How can I expect my team to take me somewhere if I don’t tell them where I want to go? Big picture direction and explaining how the smaller projects take us there incrementally is the final key. If they know that the dumb thing they have to do will move the needle even a little bit, then they will do it more quickly and with fewer issues. Likewise, on the large projects they need to see the big vision and can drive forward to it together. I have seen the power of good direction and I have languished without it.
All four of these things as legs make up the chair that I chose to sit in as a manager and it has served me well thus far. Enable your people to do what you need them to and get out of the way while they do awesome stuff!