Ensuring a happy, engaged and productive development team is essential to every software company’s growth and success. Therefore, managing software teams successfully will have a direct impact on business success.
While there is not just one way to successful team management in software development – the specific needs of the team will vary depending on the stage of maturity of your business and industry – there are best practices to get inspired by, and common mistakes to watch out for.
This article is derived from the extensive research put into the Developer Diaries E-book which was written by Juan Carrey, a senior software engineer. We also gathered feedback from our engineering leads and put together our learnings from running a high-growth, remote-first software consulting business across 10+ countries.
How to Manage a Software Team – DOs & DON’Ts
We picked the brains of some of Zartis’s top developers, who told us what works and what doesn’t — all based on their real-life experiences working in extended development teams. We then distilled their key insights into a handful of simple, actionable steps that you can start implementing today to radically transform your business for the better.
Let’s take a look at the most important findings.
1- Have Inclusive Decision-Making on the Product Roadmap
While you can’t afford to disregard business considerations, be sure to always seek the input of your technical department when brainstorming ideas for new products and features or setting time-to-market deadlines. Design discussions and whiteboarding must be key aspects of the decision-making process and must involve the engineering teams.
In addition, the sales and marketing departments should work closely with the engineering teams, sharing their insight into what the customer wants and where the market is headed. This way, everyone will be on the same page, and you will end up with a product that customers love.
And don’t forget your Product Managers, either. Remember: engineers and marketers speak what can be very different languages. You therefore need people who are both business- and tech-savvy to help bridge the gap between your devs and sales departments — and that is precisely what a great Product Manager is supposed to do. So, make sure you have at least one highly skilled Product Manager to drive the product roadmap in a way that benefits sales and is also realistic from an engineering perspective
Things to watch out for:
- It is the sales and marketing departments that decide what new features should be built and set hard — and often unreasonable — deadlines for the engineering team.
- The requests for new features rarely take into account non-functional requirements such as performance, scalability, or testing coverage.
- Developers are expected to churn out additional features one right after the other, leaving no time for discussing different solutions and approaches.
2- Encourage Input and Discussions
It’s lovely when everyone on your team gets along and is on the same page. However, the problem is that it’s almost… too lovely. As a manager, you may notice that sometimes you are surrounded by yes-people. Not only does that stifle healthy debate and constructive criticism, but it also cuts the line of communication between you and your developers.
Maintain an open-door policy. Make sure that everyone on the development team knows you are always available to answer questions or discuss any concerns they may have, in person or online. Don’t forget to also actively request their input when making key technical decisions.
Things to watch out for:
- Middle management seems to always agree with you and does not raise concerns flagged by the technical teams.
- Middle managers may take credit for positive developments while blaming the engineering team for mistakes and failures.
“People actually matter in this company. They are inclusive, smart, nice people to work with. Even the CEO is a very approachable person! No matter how long you’ve been in the company or what your position is, if you want the chance to make the company grow, evolve, improve… if you put yourself to it, you can get it. There’s room for you to shine.”
— Current Zartis employee in Madrid
3- Root Out Any Blame Culture
A blame culture creates a toxic environment where your engineers avoid taking creative risks and suggesting changes out of fear that the slightest mistake might get them in trouble. Teams will be content with having less responsibility to keep the margin of error as small as possible. As a result, innovation will stall, and your company will lose its competitive edge.
Don’t point your finger at people — and get everyone else in the company to do so, too. Aim to transform every mistake or so-called failure into a learning opportunity and a chance to gain a fresh perspective. Organize training on how to fix common issues and encourage your engineers and other team members to share information on errors they made and how they fixed them.
Last but not least, have the company’s KPI measurements focus on outcomes rather than outputs. That would make the whole vertical company responsible for undesirable outcomes. One way to do that is by implementing an OKR system — a tool used by numerous tech leaders, including Google, Facebook, Netflix, Eventbrite, and many others.
Things to watch out for:
- When mistakes are encountered, the focus is on finding the responsible party and having them fix the problem.
- Teams tend to cover up their mistakes, fail to address problems upfront, and do not share troubleshooting know-how with their colleagues.
4- Delegate and Avoid Micromanagement
Take a deep breath and let your developers do their job. You hired them for a reason. Your role as a manager is not to control but to enable, coach, and support your software development team. Most of the time, managing software teams to succeed requires delegation. Delegating responsibilities will empower your engineers and motivate them to take charge and prove themselves as much as possible.
At Zartis, we don’t believe in micromanagement. What we do believe in is building a work environment that is supportive and inclusive but also encourages our engineers to continuously develop new skills and grow as professionals.
“They say ‘If you want to go fast, go alone. If you want to go far, go together.’ Our work as managers is to build trust, provide a proper environment, and help our team achieve their goals. The reality is we can’t be everywhere, but the company culture can.”
— Angel Benito, CTO of Zartis
Things to watch out for:
- Managers work with detailed spreadsheets that track time and the use of other resources way too closely.
- Engineering teams are treated as a resource rather than creative thinkers.
- Managers do not trust their engineering teams and demand to know what everyone is doing and how much time is spent on tasks.
5- Balance your Senior and Junior Developer Headcount
There is nothing wrong with hiring fresh talent. However, junior developers require continuous mentoring and coaching. So, if you have less experienced engineers on your team, be sure to allocate enough resources to guarantee a thorough onboarding process and ongoing follow-up training.
The challenge here is to find the delicate balance between guiding new hires and micromanaging them to death (or not investing in their professional development at all).
Once the initial onboarding and training process is over, give out tasks that tell engineers what to do rather than how to do it. That is not managing software teams is about. Encourage independent research and continuous learning and consider implementing a mentorship program to pair young developers with experienced engineers.
Things to watch out for:
- Too many junior developers on the team that seem to neither evolve nor learn.
- Engineers are content with relatively straightforward tasks that leave no room for innovation.
- Tasks are assigned with detailed how-to instructions that don’t encourage developers to do independent research and think critically.
- Junior engineers have limited or no opportunities to seek guidance and mentoring from more experienced coworkers.
6- Implement Agile Culture Correctly
Agile has taken the world by storm. It has revolutionized the way software companies are structured, the way they develop software, and adapt to changing markets and customer requirements through a fast-paced process of continuous improvement.
Becoming agile comes with a specific mindset that changes the way you think about software development.
Take the time to implement agile processes properly and in a way that is best suited to the needs of your team. Plan and lead meetings in a productive way. Put more focus on retrospective results and always outline exactly what actions need to be taken next — and by whom.
Furthermore, be open to revising old practices if certain meetings or standups become redundant. The goal is to become agile, not to create more processes to ‘ensure’ agility. A vertical agile process and a software-centric approach are also crucial.
Here is how we implement agile in our internal processes – from Ignacio Lopez, Team Lead at Zartis:
There are four pillars to a good agile process:
- Team agreements. Make sure the whole team is aligned.
- Collaboration. Offer your help to others.
- Trust. Without micromanagement, be honest and raise your issues as soon as possible.
- Any failure is an opportunity to improve. The retrospective is probably the key piece of agile.
Things to watch out for:
- Useless standups.
- There is no time for retrospectives, and not everyone jumps in.
- Retrospective results are ignored from one session to the next, and no follow-up action is taken.
- Useless software grooming and refinement with no real whiteboarding or design solutions.
- The agile process is not vertical, which leads to prioritizing sales and marketing rather than delivering great software and customer collaboration.
Hire a Remote Software Development Team Now
Need Help Building a Happy Remote Development Team from Scratch? We can help.
Do you want to:
Retain technical talent?
Develop best-selling software products?
Keep your engineers and, by extension, your customers and investors happy?
Build a positive corporate culture that encourages growth, innovation, and excellence while maintaining a healthy work-life balance?
Zartis specializes in assembling high-performing remote development teams for clients across Europe and the United States. Reach out now!