How to improve software teams performance?

How to improve software teams performance?

Intro

Many software delivery or engineering managers as well as chief technology officers struggle with speeding up software delivery. Business needs outcomes, but teams are slow to deliver.

The apparent problems seem numerous:

  • developers do not care
  • developers are slow
  • code is bad quality or inefficient
  • there are too many bugs
  • people do not learn
  • we don't have enough people
  • it is hard to find good developers
  • and more...

It all sums up to the problem that the manager struggles with making his people proactive, to understand business needs, take ownership, make decisions, take action, communicate problems and suggest solutions.

This article is in no way a scientific work on the topic, but it is a sharing of my observations and suggestions as to approaches which seem to work and give good results once applied.

Problem: team organization

One interesting aspect that I personally noticed is the indecision of many managers about who should lead dev teams, if at all.

Some teams are so called "self-organizing", meaning, there is no team lead, maybe some tech leads, but definitely no one who is personally responsible for software delivery, un-sticking situations, helping others move forward, mentoring juniors, etc.

Similarly, some development departments are completely flat. There is one big boss, and other teams have no team leads. The boss decides on priorities, assigns tasks or let seniors decide who does what, and all the rest kind of fall in.

And all questions or problems come to that manager, making him very busy and a clear bottleneck, while others might even have a lot of free time on their hands but are not able to make their own choices.

Problem: internal communication

Another side of the problem is absent clarity on lower levels as to business goals, plans, priorities.

People might be aware of big projects and then simply get their tasks. But they are not able to make good decisions simply because they do not have access to key discussions, decisions, management criteria, and so on. And of course, at some point, quite soon after getting hired, they stop caring.

In the same key, when communication within teams and between teams is not clearly established and flowing, people feel disconnected, alone, not part of the group, and again, do not feel empowered to make their own decisions, unsure as to what is needed or wanted.

Problem: micro vs no management

And to take things to their extremes, I saw companies with two types of managerial approach: micromanagement and no management.

Micromanagement means that every small decision must go through the manager. Developers are not allowed and are not trusted to make their own on any meaningful level.

The manager is then clearly overwhelmed, people feel "consultants" or "contractors", do not own their work, sometimes are full of resentment or in apathy toward their managers and company in general.

No management means that people are kind of trusted to do whatever they want, or not to do anything. Big tasks are given and then developers are running around collecting the relevant data from the rest of the company, have a lot of meetings with no clear action items. And also they might easily do something which contradicts team practices, there are a lot of conflicts. Or, again, people might feel that if no one cares to lead them, then why should they lead themselves, and so - they stop making decisions, take little to no initiative, do the smallest possible work and ... complain.

Suggested ways forward

First of all, to whoever reads this and is in the position to implement changes, simply recall the group that you were part of, where you felt a true member, trusted, having the ability to make your own decisions in accord with the known and clear business goals, discuss it with your manager or the stakeholder whose approval you were seeking, with and colleagues who actually cared, listened and responded, and then you could act, receiving appreciation from others and from above, as the result.

I am sure that that particular group was relatively fast, with a good spirit, nice ongoing communication within, and with viable business outcomes. Even if in the end the business might not have succeeded, that was not due to bad software delivery, only possibly due to wrong direction and business priorities,

So, to list the suggested organization of the software delivery team:

  1. Clarity. Make business goals, roadmap, project plans, priorities, delivery expectation known, up-to-date, and clearly communicated periodically to all the teams down to each team member. The same known information creates similar conclusions and aligns purposes. It is powerful.
  2. Structure. Make organizational structure clear. People need leaders, need those whom they can consult and whose statements can be trusted. I do believe in team leads or scrum masters, together with clearly identifiable business analysts or product owners. When developers and testers have clear source of their tasks, both organizationally and content-wise, they feel safe to make their own decisions, be proactive, and deliver fast outcomes using most of their skills.
  3. Let, ask and thank. Don't forget to first clearly allow and then demand from people to learn about business, to make their own decisions, to share knowledge, to act, to bring results. And once people do what you expect them from, show appreciation. Simple "well done" or "thanks" go a long way.

Conclusion

Software developers indeed are frequently non-communicative, silent people. But these are smart people, who understand, are willing, and wish to be valuable and appreciated part of the company they work for.

It is a matter of giving them the opportunity, and then nicely pushing them along this path toward achievements of what you're after in your teams.

It is very similar to how successful kids are raised, and yes, inside, we are all children for the whole of our lives :)

Further reading

Here’s a list of some of the best books on improving software teams’ performance. These books offer a range of perspectives on leadership, team dynamics, and performance improvement in software development and not only:

1. Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations

This book provides scientific insights into what makes software teams perform better and includes data-driven recommendations.

2. The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win

A fictional story that highlights the challenges of IT management and the solutions found in DevOps and lean principles.

3. Team Topologies: Organizing Business and Technology Teams for Fast Flow

This book introduces a team-first approach to software delivery, helping you structure teams to improve communication, collaboration, and delivery speed.

4. Drive: The Surprising Truth About What Motivates Us

While not specifically about software teams, this book dives into motivation and what drives people to perform at their best—critical knowledge for team leaders.

5. Radical Candor: Be a Kick-Ass Boss Without Losing Your Humanity

This book focuses on leadership and communication strategies that help foster a high-performing, empowered team culture.

6. The Five Dysfunctions of a Team: A Leadership Fable

This book offers insights into why teams often struggle to work together effectively and how to overcome common challenges in team dynamics.

7. Scrum: The Art of Doing Twice the Work in Half the Time

Written by the co-creator of Scrum, this book provides valuable techniques and insights to boost team productivity and delivery speed.

8. Peopleware: Productive Projects and Teams

A classic that discusses the importance of team dynamics and the human side of software development.

9. Managing Humans: Biting and Humorous Tales of a Software Engineering Manager

An engaging and practical book on managing software teams, focusing on the real-life challenges of being a manager in tech.

10. Measure What Matters: OKRs: The Simple Idea that Drives 10x Growth

This book explains the Objectives and Key Results (OKR) framework, which can help in setting clear goals for teams and improving their performance.


Best wishes and success!

Alexander Stern,

Architect | CTO | Consultant


This article brings valuable insights into challenges that many Managers and Team Leads face, often unacknowledged. Addressing these issues openly can improve team alignment and cohesion. Open and clear communication is essential for getting everyone on the same page. Here are a few practical suggestions: 1. Clarify Goal Alignment : It’s crucial for every team member to understand the objectives for each sprint, epic, and larger project, as well as why the product is being developed. This clarity helps everyone see how their contributions tie into the big picture. 2. Encourage In-Office Collaboration : Working from the office at least two or three days a week helps strengthen relationships, improve real-time feedback, and boost collaboration. 3. Prioritize Employee Well-being : A team’s productivity isn’t driven by money alone. Prioritizing happiness and job satisfaction fosters a fulfilled and engaged team. 4. Reinforce Lessons in Retrospectives : Begin each retrospective by reviewing the last few action items to ensure valuable feedback is continuously applied. Implementing these steps can strengthen communication, boost collaboration, and ensure everyone works toward shared goals.

回复

要查看或添加评论,请登录

Alexander Stern的更多文章

社区洞察

其他会员也浏览了