|
I’m finding very little resource on this topic. However, it is paramount to follow it as a team grows or a company grows - I’ve known many companies whose developers effectively stopped developing anything of value, being burdened by bugs, bureaucracy, or poor relationships.
To be precise, productivity is the measure of outputs over inputs. In the engineering world, outputs are usually value increments (the definition of which varies according to each team’s mission and expertise. They could be user stories for devs, models for data scientists, terraform changes for ops), and input is time. I would note that I don’t know whether to count maintenance tasks in or out (such as keeping versions up to date) or the output definition. However, anything that does not bring obvious value (bug fixing, refactoring) should be counted out of output in terms of productivity - don’t get me wrong, refactoring is useful and important, because when done well it will improve future productivity.
The term “team” deserves some definition too. A team in my question has two attributes:
- a common mission
- size between 2 and 7 people I’m looking for testimonies and knowledge:
- how is productivity measured in your team if you’re an engineer? In different teams if you’re at a management level? Conversely, is it not measured and do you know why?
- how is productivity measured in companies you know, either through firsthand experience or well-documented sources? (Company articles, books)
- are you aware of research in this area? On a last side note, I would count research displayed in Accelerate out of the productivity question. The DORA metrics don’t delve into the complex details of “what is value for my team” and focus on the release level. The books and research are great, but arguably not about engineering productivity. |
Well, specifically, you can measure onboarding, which is a proxy:
How quickly can someone get started on a feature and ship it to production? How obvious is it for them to follow your teams procedures, guardrails, tests, review processes, etc and go?
Maximizing this means maximizing the available colleagues that can work on your codebase and sets up a positive culture of enablement. It means maintaining your code is not an inscrutable mess.