Building a Productive Team: themes from a Leeds roundtable discussion

Prefer listening over reading? Press play and enjoy

Building a Productive Team: themes from a Leeds roundtable discussion
7:13

On Wednesday 4th September, Codurance hosted a roundtable discussion with leaders from a range of industries, to explore the topic of productivity for software delivery and product teams.

We enjoyed a lively and engaging discussion, drawing on the vast experience of our guests and colleagues attending from Codurance, 

In the realm of software development, productivity is a multifaceted concept that goes significantly beyond writing code and deploying new product features. It encompasses how effectively teams deliver value, adapt to changes, and continuously improve their processes. 

As organisations scale, maintaining high performance becomes increasingly complex. This blog is a snapshot of the group’s discussion on what productivity means in software delivery, why it’s important to measure, how to measure it, and how to maintain high-performing teams while scaling.

What Does Productivity in Software Mean?

Productivity in software development is essentially the value that can be derived from the investment that is being made. What do we mean by “value”? It can mean all of the things below, depending on your perspective and all are valid considerations:

Business: revenue, profitability, business agility, customer satisfaction and market share

Organisation: people, culture, alignment, satisfaction, talent and development

Team: throughput / stability of change and systems, cost of experiments, effective feedback

The ultimate goal is to create software that meets user needs and business objectives effectively. Although this is a simple concept, the group reflected on how easy it is to deviate from this way of thinking, during challenging periods.

Why is it Important to Measure Productivity?

The group recognised the risks and problems that can be introduced by measuring individual team member productivity. However, measuring (and therefore having an objective way of assessing improvements) productivity was also viewed as essential for a number of reasons.

Alignment with business goals: Ensures that the team’s efforts align with business objectives and deliver meaningful results.

Identifying Bottlenecks: Helps in pinpointing inefficiencies and areas needing improvement.

Team Health: If you’re not focused on productivity, it can lead to slow and ineffective change initiatives, which can be de-motivating and demoralising. Most teams want to reflect and  improve, and to be able to measure and assess how they’re improving.

Strategic Planning: Long-term productivity trends can inform strategic decisions, such as hiring needs, investment in training, or changes in product direction or technology stack.

How Do You Measure Productivity?

There was a very broad discussion around this topic, with a number of common themes emerging.

Essentially, the group reflected on the idea that productivity measurement in software development involves several key metrics and practices:

Focus on Outcomes: Measure how well the delivered software aligns with business objectives. This includes assessing user satisfaction, feature utilisation, and the impact on business metrics.

Flow Efficiency: Evaluate the percentage of time work is actively being worked on versus waiting. Tools like Kanban boards and value stream mapping can help visualise and optimise this flow.

Cycle Time and Lead Time: Track how long it takes to complete a task from start to finish (cycle time) and the time from the initial request to delivery (lead time). 

Code Quality Metrics: Assess factors like defect rates, code review feedback, and test coverage to ensure that productivity doesn’t come at the cost of quality.

Maintaining High-Performing Teams as You Scale

The group recognised that this can be a significant challenge. What works for small, nimble organisations is unlikely to work for large, multinational organisations.

Ultimately, the group felt that scaling an organisation while maintaining high performance requires a strategic approach:

Focus on Outcomes: Ensure that as teams grow, they remain focused on delivering value that aligns with business goals.

Set KPIs: Establish key performance indicators that reflect the impact of delivered software, rather than just activity levels.

Invest in good engineering practices and automation: Automate repetitive tasks: Invest in continuous integration/continuous deployment (CI/CD) pipelines, automated testing, and other DevOps practices to eliminate bottlenecks and reduce human error. Make sure your infrastructure (cloud services, tools, databases) can scale as your team and product grow, minimising the need for manual intervention. Don’t compromise on technical standards for short-term gains. This will save time and headaches down the road.

Establish Clear Processes and Documentation: Create standardised processes for development, testing, and deployment. This helps maintain consistency and quality as more people join the team. Review these processes on a regular basis to ensure they remain fit for purpose as the organisation grows.

Keep Technical Debt in Check: Prioritise refactoring and maintenance: As teams scale, tech debt can pile up if it’s not addressed regularly. Prioritise paying down technical debt to ensure your codebase remains scalable, maintainable, and clean.

Empower decision-making: Trust teams to make decisions and hold them accountable for outcomes. Autonomy fosters innovation, motivation, and responsibility.

How do you improve Productivity?

The group discussion highlighted a number of key themes:

Business agility: Increase business agility by aligning strategic organisational and technical improvements to business needs

State-of-the-art engineering: Incrementally modernise strategic systems to leverage state-of-the-art technology

Delivery efficiency: Increase delivery efficiency by adopting effective processes and practices

Innovation: Promote innovation by establishing a culture of experimentation, easy-to-change systems, and systemic knowledge sharing

Product and Craftsmanship mindset: Create a product and engineering culture focused on excellence, and pragmatism

Talent attraction and retention: Create a modern and forward-thinking environment for great professionals

Summary

The group discussion on this topic was varied and incredibly insightful. There was a broad consensus around the idea that understanding and enhancing productivity in software development is a dynamic process that involves more than just measuring output. By focusing on outcomes, optimising flow efficiency, fostering psychological safety, integrating sound engineering and agile practices across the organisation, and leveraging small iterative steps, businesses can maintain high performance and scale effectively.

Interested in discussing how to improve productivity and overcome challenges in software delivery? Get in touch with us to explore tailored solutions.

Dive deeper into strategies for enhancing team productivity in our Productivity Guide