Ask HN: What are your top tips for leading a software development team?

I am taking on a new role at my current place of work and have been given a team lead role - a team of 10 people - mix of permanent staff and contractors.

What are your top tips for leading a software development team - useful blogs, articles etc. Tips wanted for management style, team style (eg debate the code not the coder) and what development guidelines to suggest / use

  • Congrats on the team lead role!

    What's your management style like? What do you like and not like about your previous bosses?

    Here's a few questions to consider:

    How proactive are your reports? You might notice individuals on your team fall into two camps. One group will keep you updated at all times. That's good. The other won't say anything unless asked. They only do what they're told and stay under the radar. You'll have to figure out what works best for you to have an idea what everyone is up to.

    How do you listen to them? Not all my teammates speak English as their first language so initially I had a lot of trouble. I learned over time to just shut up and let them work out their thoughts.

    How do you grow your team? I encourage them to explore side projects and I ask what they want out of their careers. Not everyone is the same - some want to eventually run their own companies, others want to stay purely technical. Some just want to tag along. Doesn't matter if they're being 100% honest or not. Just go the distance and help them grow, whatever resources they need. I've always been pleasantly surprised when I genuinely invest in someone.

    How do you win over your team? I have never, ever been able to successfully drive an agenda long-term by twisting someone's arm. It's far easier for me to take the time and persuade rather than bark orders.

    For reading - Effective Executive and How to Win Friends and Influence People are two books that come to mind. One of my management mentors also recommended reading fiction as a way to understand motivations. Here's an article on this: http://www.npr.org/blogs/health/2013/10/04/229190837/want-to...

    I've only been managing for a few years. Maybe everything's still rosy. I see management as achieving results, not controlling people. Management is a way to multiply my effectiveness and accomplish more than a group of individuals.

    Let me know if you want to discuss anything else.

  • Don't hire "rockstar" developers. The ones I've worked with ended up being toxic to the team: withholding details from their peers/managers, acting passive/aggressive when asked what they were working on, etc. It's not worth it in the long run, as time progresses the effort need to manage them starts to outweigh the benefits.

  • http://randsinrepose.com, who wrote Managing Humans[http://www.amazon.com/gp/product/159059844X?ie=UTF8&tag=beig...] (not updated all that often but good content usually)

  • Read the SWEBOK guide https://computer.centraldesktop.com/home/viewfile?guid=49744... and over time, ask the team to focus on one of those areas and decide how to improve their game. In general, get the team to discuss issues and decide on solutions. For instance, Agile. If you read the Agile manifesto, a short text that emphasizes communication, you get a very different picture of how to do Agile than you get from any Agile books or consultants.

    Make sure that you have good controls in place, and in software that mainly means code reviews and QA. Usually QA is a specialist role but you may find it better to rotate people through a one or two month stint as QA people. You will likely see more automation of QA if a software developer is doing the job.