Here are some sundry thoughts I’ve had throughout my career as a developer and lately a team leader.
- Do not punish people who disagree with you. You’ll end up in a very homogeneous team agreeing with all you say. It is very flattering for your ego, but useless for the company.
- If people complain, they do it because they care. Beware if people stop complaining: they have probably lost interest and motivation. Thank them for helping you understand the problems.
- Listen to people. Be quiet and listen until they finish. Ask questions. More questions. Listen to answers.
- Praise your people. Even if they say you don’t have to. Especially if they say you don’t have to. Don’t take all credit for their work.
- Believe in them. Show it.
- It is important not to demotivate people. Figure out what demotivates them: unclear tasks? Missing out on promotions? Unfair treatment? Too many meetings? Unrealistic deadlines? Fix it.
- Protect your people. Don’t let upper management hurt them unconsciously. Stand up for them.
- Overcommunicate. Repeat yourself. Make sure they heard you and understood what you said.
- Make sure you treat people fairly. Educate yourself about biases. Make sure not to favor talkative people over quiet ones, boastful people over humble ones, people like you over different ones.
- Trust your people.
- Let them make mistakes. People learn from mistakes. Don’t micromanage and handhold too much.
- If they do things differently than you, it doesn’t automatically mean they’re wrong.
- Think about what you wouldn’t want your boss to do with you. Don’t do it with your team.
- Respect them. They are smart grown-ups. Treat them as such.
- Integrity is important.