Engineering productivity governance and improvement in software delivery

Introduce the framework

It is important to make your people aware of the reasons why you want to govern and improve engineering productivity when delivering a project. You can use the following two questions to start with the conversation:

  • How do you differentiate yourselves from other competitors when delivering a project?
  • What can you do to retain your values, make it sustainable, and even add more value to your clients when delivering a project?

The framework

Overview

The purpose

A powerful approach of articulating the ‘why’ is to align with your organization’s purpose. At Thoughtworks, our purpose is:

The ultimate goal

Our ultimate goal is to generate impact to our clients, which could be achieved from the following two perspectives:

  • Business value — what we deliver should aim to create relevant business values. Objectives and key results (OKRs) could be a way of articulating business values.
  • Engineering excellence and culture — we should influence our clients through a continued pursuit of engineering excellence and developing engineering culture

The North Star

While creating business values, we use the following North Star goals as a direction to guide our delivery lifecycle:

  • Right values
  • Less waste
  • Faster feedback
  • High quality

The Golden Triangle

Based on those North Star goals, we believe the following three elements of the golden triangle could help us improve engineering productivity and delivery efficiency:

  • Sensible Default Practices — These are our best practices and core IP, which is why we call it ‘default’, i.e. those practices are the practices being used by default in our delivery projects. The practices here are not only for the developer role, but also include best practices for other roles, e.g. BA, QA, UX, PM and more. You may have different best practices based on your context, the importance is to be aware, adapt and improve.
  • Measurement — You need to find a way of measuring the success, in order to assess engineering productivity, identify problems and areas for improvement. You need to use both quantitative and qualitative ways to measure the success from the outcome of delivery, practices, capabilities, security, team morale and other perspectives.
  • Capability — Capability here not only refers to technical capability, but also includes non-technical capability, for example tasking, estimation, communication, etc..

How to implement the framework

A big question you may ask is about how to implement this framework. The value map below could be used to demonstrate what the ‘excellence’ looks like, in order to identify the gap between the current situation and the ‘excellence’. Once the gap is identified, you can then aim to continuously improve engineering productivity via the five principles of problem solving in Ray Dalio’s book “Principles”.

Measures of success

How to assure you are doing right things and doing things right? Although delivering values might be your ultimate goal and measuring delivered client values could help you understand whether or not the goal is achieved, you should consider other measurements to evaluate the improvement of engineering productivity, including but not limited to:

  • Outcome of North Star goals — you need to find relevant metrics to measure the quality, speed of delivery and feedback, waste of cost, resources and processes, in order to ensure you are doing right things.
  • Capability improvement — you can use radar chart to represent desired and current capabilities, which can easily tell how successful you are and where to improve.
  • Team engagement — you can use a combination of quantitative and qualitative questions to assess team’s engagement which is an important part of engineering productivity.
  • Maturity of sensible default practices — you need to understand the team’s awareness of default practices, how well they are being adopted and whether the adoption is consistent over time, the ability of continuous improvement, etc.
  • Outcome of leading/lagging metrics — monitoring and analyzing the outcome of leading/lagging metrics is important to understand the effectiveness and productivity of the delivery, which could inform further actions.
  • Innovative ideas — while following standards or defaults, each team should be encouraged to think about what else they could do to improve, is there any innovative pattern, capability or metric that can be assessed, experimented and adopted

Summary

We hope this framework can support you to have a level of consensus on the improvement and governance of engineering productivity in Agile delivery, more importantly finding a practical way of implementing this framework and forming relevant governance programs. Although distributed Agile delivery creates more challenges than Agile delivery in general, this framework offers you some ideas that you could leverage to overcome those challenges based on our experience.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Thoughtworks

Thoughtworks

A community of passionate individuals whose purpose is to revolutionize software design, creation and delivery, while advocating for positive social change.