Software Development Lifecycle Efficiency.
Efficiency isn’t just a core goal for software engineering teams—it also plainly matters to business stakeholders. In a digital world, every company is (or is becoming) a software company. This means engineering efficiency and business efficiency go hand-in-hand.
As engineers, we get this. We’re not dumb. In fact, for most of the last decade, we’ve invested in processes and tooling to speed the business of building software: ticket systems, repo systems, quality systems, DevOps, CI/CD, Value Stream Management, etc. etc. All of this aims to reduce friction in the software development lifecycle. Better collaboration, better automation, better product. This is all essential work.
But these things don’t tell us much about the efficiency of our software development lifecycle. They automate lots of manual tasks, allowing for faster delivery with fewer handoffs and bottlenecks, but they don’t tell us much about whether software engineering is at peak performance—and if not, where and how we might get better.
Put another way, these investments have helped to organize and automate the software factory. We’ve reduced siloed teams, siloed tools, and manual handoffs to create a more connected and fluid software development lifecycle. But if our factory is faster and better, it’s hard to say where and by how much. In a lot of ways, the software factory still operates in the dark: ideas arrive, software goes out, but what happens over the course of the development lifecycle is a mystery. Our tooling investments haven’t done much to help leaders answer the bigger, business questions that are second nature to most other departments:
- Is our way of working good?
- Where are we inefficient?
- What’s our case for more investment?
To really understand this, to make the software factory “smart,” we need sensors and machine learning. We call this Engineering Performance Management.
Software Development Lifecycle Efficiency in 3D
All those investments in tooling? They have another benefit. Each holds a wealth of data about the efficiency and performance of our software delivery lifecycle. By absorbing the raw activity data from these systems, then applying machine learning, Pinpoint can visualize engineering performance in ways not previously possible—all without asking busy teams to stop and report on what they’ve done, or to require an army of data crunchers to make sense of the results.
Engineering Performance Management operates along three axes:
The X axis represents the end-to-end process and systems involved in building software. Coding is a key component of course, but software involves more than just code. There’s the work and systems to capture requests and ideas, to prioritize the backlog, and to manage its delivery; there’s the work of vetting everything we’ve built; there’s deployment and optimization—the full software development lifecycle. For Engineering Performance Management to be worth the name, we harness the raw activity data from across all these efforts and systems.
The Y axis is the depth of performance intelligence derived, using machine learning, from the activity data harnessed. This starts with being able to compare, say, our efficiency across key metrics from this quarter to last, or to compare team performance to their labor cost. But ML gives the ability to do considerably more advanced performance analysis. For example, to predict the percent of engineers likely to leave within the next six months—and then to recommend ways to reduce that turnover.
The Z axis shows the people Pinpoint helps. We help technology executives better understand things like performance relative to cost; we help managers run teams more effectively; we help individual engineers better see and measure their contributions. Similar to the way that advanced analytics like Sabermetrics have transformed the work of GMs, coaches, and players, we see Engineering Performance Management helping every member of the organization unlock more efficient software lifecycles, and higher overall performance.
Machine intelligence matters
For Pinpoint, machine learning is more than just buzzword compliance. It’s key to helping technical leaders answer questions like:
- How well do we deliver work?
- Who are our best people?
- What work is at risk, and why?
- Which locations should we invest in?
- Are we getting better over time?
Machine learning is how we derive the metrics that produce actionable insights into performance. With it, a much deeper intelligence becomes available. This includes automated diagnostics, the ability to see where technical debt is accumulating and what the costs are, even to understand how effectively we onboard new engineers. Improving software lifecycle efficiency is one way of putting what Pinpoint does. We prefer a more plainspoken mission: to help people build software better.
Efficiency the business can see—and understand
Of course, making the software factory smart also means being able to show non-engineers what’s going on. The CEO isn’t likely to care about commit counts, or burndown charts. When asked how engineering is doing, we need to answer with data that shows how much we’ve gotten done, how fast we got it done, how good the work was, and what it all cost.
It’s time for engineering to earn a seat at e-staff and board meetings, which means matching other departments in being able to explain what we’ve done, how performance is trending, and where we’ve contributed to the bottomline. This is what Pinpoint exists to do.