After eight years of working in the software development field as both a developer and a manager, I offer what I feel are 10 things managers can do to create a positive programming environment:
1. Listen. To borrow from management guru Stephen Covey: “Seek first to understand, then to be understood.” Programmers face myriad difficulties in developing software. Before they can be given answers, the problems they are facing must be understood, which leads me to #2.
2. Lead with Questions, Not Answers. Don’t blurt out answers without making sure you understand what the problem is or what the programmer is asking. I’ve found that before answering or even further discussing solutions it helps to ask something like “So just to make sure I understand, you’re saying the problem is x?”
3. Respond to feedback. This one is so simple, I am amazed when managers don’t do it. Responding to feedback doesn’t mean you have to do what was suggested. It does mean that you consider the feedback given, honestly evaluate it and either make changes as needed or explain why you feel no change is necessary. I’ve found that even in the latter case, programmers appreciate that they are being listened to and will continue to give valuable feedback in future instances.
4. Don’t say negative things behind the backs of programmers. If there is an issue with a programmer, talk to them directly about it. As a manager, if you bad mouth one programmer in the presence of another, the one you are with WILL assume that you are also saying bad things about him when he is not there.
5. Admit when you don’t know something. Just because you’re a manager doesn’t mean you will always have the answer. Don’t be ashamed to bring someone else in for a second or third opinion. It doesn’t hurt to do this even when you feel you are right.
6. Treat programmers as they can become, not as they are. See the potential in people. Find what they are best at and encourage their strengths. I’ve found that when people feel respected and valued, they tend to improve and give you more than you expected.
7. Check your ego at the door. Use your expertise as needed. Share experiences when applicable. Demonstrate your knowledge as needed. But be very careful about being a “know it all”, as this can cause programmers to actually not want to talk you, as they may feel either intimidated by you or they may be turned off by what they perceive as smugness. Take extra care on this one, as you may not be aware that you have an ego problem. If you have friends on the team that give honest feedback, ask them to keep you in check here.
8. Create a system in which programmers are accountable on a daily basis. Although some programmers will resist this, if done in a positive way it’s a fabulous avenue for keeping the lines of communication open. The system you use isn’t as important as the manner in which you approach it. Give special care to make sure that you don’t make programmers feel as if you don’t trust them. The daily accountability should be seen more as a communication mechanism.
9. Give programmers space. In order to be creative, programmers need time alone to evaluate, ponder and consider solutions. There will be times during the day when they need to be working and discussing and interacting with other people. Make sure they also have time to think.
10. Have fun. We’re all just trying to get by. If your programmers are working hard, allow them to have fun as well.