Does your product backlog look like an ever-growing laundry list? Does your backlog grooming session feel like an exercise in futility? Follow this guide to see the product backlog in a new light, and hopefully pick up a few tricks that will help you organize the junk drawer of software development.
I often encourage first-time product owners to treat their product backlogs like their personal investment portfolios. Think of the backlog as a collection of objectives that we asked the development team to invest their time and energy into. Learn how to read and measure portfolio performance is key to maximize your return on investment!
What Are Your Asset Classes
Take a long, hard look at your product backlog. You will hopefully find that certain groups of product backlog items exhibit similar characteristics in terms of their cost, risk, or workflow.
Below is a simple list to get you started.
A new feature has a higher development cost and takes longer to see a return on investment, however, once a feature is delivered, it brings a whole new functionality to your product and adds immediate value to the customers.
Bugs are both frustrating to customers, and your developers who are interrupted in the middle of a sprint to address a customer complaint. Bugs often seem urgent. Resolving them can help you earn back trust from customers, and stop the team from bleeding valuable development time.
Upgrading, monitoring, alerting, deploying, disaster recovery testing—while maintenance tasks are often invisible to the customers, they are absolutly critical to keep the business running. Active maintenance could be costly, however, you can drive down the cost significantly by investing in automation.
Poor code design, low test coverage—a technical debt is the result of the team taking a shortcut at some point to deliver work that requires rework in the future.
Technical debts, like their monetary counterpart, will continue to incur interests in the form of added system complexity and raised technical hurdles to deliver new features.
Figure Out Your Asset Allocation
As the old saying goes, don't put all your eggs in one basket. A healthy product backlog needs more than just features. Determining how much development resource to allocate for each asset class can be hard, especially when you are not sure when a critical bug is going to jump out of nowhere to throw off your estimate!
One strategy to deal with uncertainty is to study the past.
Start by grouping past product backlog items by the asset classes you came up with. The historical data could give you a hint of how much effort the team typically spend in each class proportionally. It may look something like this:
|Asset Class||% Allocation|
On a side note, this may also help reveal the values and priorities of the team. A team that spends most of their time in fixing bugs may be a sign of the team lacking attention to detail. On the other hand, a team chooses to invest heavily in removing technical debts and automation shows long-term thinking.
Cost of Delay
Sometimes, you may want to further fine-tune the priority of projects within an asset class. One interesting metric to look at is the Cost of Delay, which quite literally means the cost of delaying a project.
Here is a quick example inspired by the SAFe City Simulation Game.
|Feature||Business Value||Time Criticality||Opportunity Enablement||Duration||CoD|
Supposed we are responsible for urban planning of a new city. There are three types of building we can build: a school, a hospital, or a factory. For each development project, we assign a relative value on their respective business value, time criticality, opportunity enablement, and estimated duration.
To calculate their Cost of Delay, we combine the first three values, and then divide it by the cost, which in this case is simply the estimated time it takes to finish building. The final result shows the value you lose when you delay investment by one unit of time.
Running this exercise through your product backlog may reveal what you are missing out on when you put off implementing a feature, or addressing a bug!
Plan for Retirement
At the end of the day, you want to build toward a stable product and a sustainable development pace so that you can have a peace of mind.
Share your objectives and priority with the team through a neat, and organized backlog. Listen carefully to your team for any technical debt that could cast a shadow over your financial outlook. And before you know it, you will be sitting on a beach sipping tropical cocktails!