If you’re an engineering manager and you haven’t been asked lately about your team’s productivity, consider yourself lucky: optimizing the value created by an engineering organization seems to be on everyone’s minds since layoffs started hitting the tech industry in force in 2022.
If, on the other hand, you’re having to answer questions about improving your team’s productivity, ChatGPT might tell you (I asked) to consider whether you’re just under-resourced or need to do more up-front planning, and I can assure you the answer to both is “no.”
In this blog post, I discuss some of the typical bottlenecks engineering teams face, common fallacies to avoid, and what your team can do to keep productivity improvements on track.
To uncover the real issues that are causing your team’s productivity to dwindle (or to be perceived as dwindling, also not good!), we’ve seen time and again that when teams focus on improving just a few key areas, the payoff comes quickly:
Let’s look at each of them in more detail.
Workflow bottlenecks can manifest as consistent delays in task completion or certain types of tasks frequently getting stuck.
Assess the entire work process from start (for example, when work starts on a ticket) to finish (for example, when the code is in production). Identify where the hold-ups occur and why: are code changes waiting for review for days? Is one team member working alone on a project that only makes progress when they’re not fighting fires?
Implement ideas to streamline these areas, whether it involves redefining processes, improving communication, or utilizing better project management tools. Encouraging a culture of regular feedback and continuous improvement can also significantly enhance workflow.
Without clear priorities and manageable work-in-progress (WIP) limits, teams can become overwhelmed, decreasing focus and productivity.
Clearly define and communicate team priorities. Implement WIP limits to ensure that team members are not overburdened with tasks and that the team isn’t working on too many things at once — always a number that is less than the number of people dedicated to your team. Regularly review and adjust these priorities and limits to maintain alignment with overall project goals and team capacity.
Importantly, never aim for 100% utilization of your engineers: 75-85% is more correct for preserving a team’s productivity.
A high burden of KTLO activities, such as maintenance and dealing with technical debt, can detract from new development and innovation. You can employ a few approaches if a team is swamped with KTLO work.
Related to KTLO, manual, repetitive tasks can consume a significant amount of time and are prone to human error, slowing development.
Identify tasks that can be automated, such as testing, deployments, rollbacks, configuration changes, customer support requests, and the like. Invest in automation tools and practices to streamline these processes. Regularly review your workflow to find new areas where automation can be applied.
When centralized outside the immediate team, decision-making can lead to delays and dependencies that slow or straight-up block progress.
Move decision-making as close to the team as you can. Establish clear boundaries for decisions that can be made internally and provide the necessary information and authority for teams to make informed decisions. For decisions that must be made externally, establish faster and more efficient communication channels with the decision-makers.
Addressing these bottlenecks enhances the team’s productivity and contributes to a more empowered and engaged workforce. Regularly revisiting and adjusting your approach to these challenges ensures that your team remains agile and capable of adapting to changing demands and circumstances.
As I mentioned above, some organizations may find themselves initially allergic to these ideas because they contradict a well-established culture. And yet research, math, and observation all show us that they work.
Teams need to have control over their work. This includes autonomy in decision-making, particularly for decisions that directly impact their workflow. By empowering teams to make decisions internally, you reduce dependencies on external approvals, speeding up the development process.
Whether addressing workflow bottlenecks, managing WIP limits, or automating manual tasks, the focus is consistently on making processes more efficient. This involves identifying inefficiencies in the current workflow and implementing tactics to streamline these areas. Automation is crucial here, especially in reducing manual work and toil.
Be explicit about the outcomes the team should try to drive, leaving room for the team to decide how best to achieve those outcomes. Never over-index on outputs or activity metrics.
Across each of these themes, there’s an underlying focus on optimizing the value created by the team. This means moving away from just being busy to being actually productive.
Certain fallacies tend to come up whenever you’re talking about bottlenecks. In the course of your conversations, it will be tempting for you or for someone to say things like:
Detailed up-front requirements are not just unnecessary; they can be detrimental when they restrict a team’s ability to adapt and evolve as projects progress. In reality, the most successful projects are those that embrace evolving requirements, allowing for innovation and responsive changes along the way. Adhering too rigidly to initial specifications typically results in inefficiency and can stifle creative solutions.
The notion that insufficient staffing is a primary bottleneck overlooks the underlying issue of work-in-progress (WIP) limits. Simply adding more staff to a project does not solve productivity problems; it often exacerbates them due to onboarding costs and increased coordination challenges. Productivity stems from managing and optimizing the workload and capabilities of the existing team rather than indiscriminately increasing team size.
Extensive planning is often mistakenly idolized as the key to successful project execution, but over-planning can bind a team to a trajectory that may become irrelevant as project dynamics evolve. Effective planning requires balance — it provides direction, but not so much that it impedes flexibility and rapid response to change.
Perhaps when you hear this, you’ll have stumbled upon the exact problem, but it’s not one you can solve with code or perhaps even within your team. Culture change might be needed to embrace all of these recommendations, and culture change is scary and hard.
Generally, be especially wary of claims that more processes will make things go faster. Be skeptical when someone suggests a headcount fix — unless they’re suggesting forming a platform team. Remember that any proposed fix that changes a team’s size, shape, or remit can hurt productivity for months or more.
There’s no switch you can flip to make things better one day. Improving productivity has to be a sustained practice, not an occasional fire drill. Within your team, there are a few things you can do to keep an improvement effort on track over time.
Encourage your team to experiment with new methods, tools, and processes. WIP limits are especially interesting to experiment with if you haven’t before. Create an environment where experimentation is allowed and part of the team’s culture. Whether it’s adopting new software tools or implementing automation, these experiments can lead to significant enhancements in productivity.
Continuous improvement should be embedded in your team’s routine. Regularly discuss topics like workflow, priority management, and automation opportunities. This keeps the team focused on productivity and encourages a culture of ongoing improvement. Use these discussions not only to identify areas for improvement but also to plan and commit to specific actions. Keep the focus on the team’s way of working, not on any individual.
Involve business stakeholders in your improvement initiatives. Their understanding and support can be pivotal, especially when changes impact timelines or require resources. Be transparent about the benefits of proposed changes and their alignment with business goals, and lean on the business to support you with time, tooling, and training.
Implement metrics that accurately reflect the team’s improvement over time. This could include tracking DORA, SPACE, or other relevant metrics. Regularly review these metrics to assess whether your changes are working. This data-driven approach not only helps fine-tune your approach but also provides tangible evidence of improvement, which can be motivating for the team and reassuring for your stakeholders.
This post was heavily influenced by The Principles of Product Development Flow: Second Generation Lean Product Development by Donald G. Reinertsen. It does an incredible job laying out the math and research that suggests that if you really want to maximize the productivity of your software team, there really is no other way.
It’s no coincidence that Swarmia provides several ways to enable the approach I explained in this post. You can read about them further:
Subscribe to our newsletter
Get the latest product updates and #goodreads delivered to your inbox once a month.