This document summarizes learnings from product management that we would like to apply in the developer-facing Arch and SRE teams. It also includes a standardized set of practices that we propose to externalize our work.
An outcome is a measurable change in user behavior.
The goal of any user-facing feature/deliverable is to change the user’s behavior in a measurable and positive way. What matters is whether the deliverables are impacting user behavior, which in turn impacts product indicators, which in turn impacts business indicators.
User behavior <A> changes from <x> to <y> over timeframe <t>.
A hierarchy of outcomes allows a team to connect their team’s outcomes to an overall business impact: business outcome, product outcomes, traction metrics.
A. Business outcome: reduce time-to-market, via developer efficiency
The average amount of time for a developer to start a task to merge the changes into version control is reduced from 10h to 7h (by 30%). (Developer value stream prior to SRE’s Accelerate metrics.)
B. Product outcome: reduce developer context-switching while working on a developer task
The average number of times that a developer context-switches to another task on a daily basis is reduced from 60 to 42 (by 30%).
C. Traction metrics: feature usage and performance
The 95% duration that a developer waits on the most frequently used command in their local development is reduced from 60mns to 30mns (by 50%).
When developers have a question on local development, they discover the answer within 2mns instead of 20mns (10x faster).
Developers run (3x more) local development commands in a week.
Developers post 3x less frequently in the devstack-questions slack channel.
connects to the business outcome
connects to the human behavioral change, and to a moment in time of the user’s journey
a metric that the team is able to move on their own
is negotiated with the leader - is it aggressive enough?
Anti-pattern: Feature Factory
If you ship a feature, and it doesn’t have the desired outcome, did you succeed?
Many software teams struggle to deliver value to users. More often than not, it’s because:
product and engineering teams stopped talking to users
they don’t measure whether what they delivered (features) had the desired impact
they don’t measure at all
they measure the wrong thing
They are stuck in a feature factory, just “building stuff” and churning out features — and hoping that someone will use it.
Shipping a feature does not equal success. Changing users’ behavior in measurable and positive ways is what leads to success.
To foster an outcomes-based flow of value, teams need to move away from thinking about delivering projects, to instead having long-term user-centric:
ownership of a product or
support of a platform as a service.
Anti-pattern: Push Adoption of unneeded solutions
“If I had an hour to solve a problem, I’d spend 55mns thinking about the problem and 5mns thinking about solutions.” - Einstein
By emphasizing the prioritization of problems instead of the prioritization of technical solutions, teams can focus energy on continual learning of the user’s problem space. This shift in mindset from delivering solutions to solving problems enables the team to discover users' needs, desires, and delights, which can also evolve over time.
This is different from a solutions-first approach, where a solution is chosen before fully understanding the problem space, and then pushed to be adopted by users.
Anti-pattern: Metrics that don’t connect to business outcomes
The following measures, by themselves, tell us little about the business impact of the work. They need to be connected to the higher-level business outcome.
Feature metrics: Performance of a feature (How many people are using it? Is it quicker or easier for a user to do X now than it was before?)
Product metrics: Performance of specific product objectives (Because of feature X, more people are using functionality Y)
Team metrics: How many story points/features were launched at the end of the month/quarter? (This will only lead to — at best — success theatre, and at worse, the wrong behaviors from all parties)
A more business-centric way to build and manage a product is by measuring our efforts in terms of outcomes, not output. When we measure outcomes, we measure the impact the new features had on the activity of the users AND the success of the company.
Continuous Learning via User-centricity & User-first
Using data that is regularly gathered from users, we build user insights, which inform our hypotheses.
Being user-first, we ask questions and actively listen in order to form hypotheses, without making assumptions and jumping to conclusions/solutions on behalf of our users.
Being user-centric, we keep the voice and perspective of the user in mind as we prioritize, design, develop, validate → and continuously learn and iterate.
Opportunity trees and Product Katas (see below) are tools to enable continuous learning and refining of the user-problem space. We continue to discover opportunities through regular user touchpoints.
To ensure user-centricity, opportunities are phrased from the user’s point of view. Tie the opportunity to a specific moment in time.
Opportunities = user needs, user pain points, user desires, or user questions, at a moment in time.
Opportunity Tree Example
Process & Externalizing Work
We will externalize our work as part of the following organization-standard rituals:
In addition to the above org-wide rituals, work with your engineering director to establish a cadence of regular review of the squad’s process and artifacts. For example, the director may request a weekly touchpoint to review the squad’s WIP and artifacts from steps 3-5 below.
Process & Artifacts
This section lists standard ways for our teams to explore the problem space, prioritize, externalize, and iterate.
While the following steps are listed linearly, they are intended to be developed and updated continuously with deeper customer insights through each iteration.
1. MAP: User Journey
Starting with the user journey gives a high-level understanding of our user’s needs and a user-centric perspective of the high-level touchpoints with the products and services that we provide.
Have an ideation and affinity-mapping (to group into high-level categories) exercise with members of the squad. If possible, invite stakeholders to the session.
Remind attendees to ideate on a “moment of time” in the user’s journey and to keep it technology-agnostic and not solution-oriented.
Note: Of all the above, observations are likely the most reliable since what people do differs from what they say and remember.
However, while observations provide more accurate information on what is happening, “going deep” with user interviews can explain why it is happening.
Find and analyze pre-existing channels of activity that can provide any useful information. For example, analyzing user-generated tickets and user-generated questions in slack (example).
Initial data gathering
A few members of the squad can timebox an exercise to gather and analyze data from existing resources. There will always be some initial data that can form a basis for hypotheses.
Remind attendees to focus on the problem space and not ideate on solutions, just yet (that’s step 3).
See step 5 below on continuously learning with every sprint.
3. IDEATE: Opportunity Tree
Here are some benefits to using an opportunity tree to explore the problem space:
Visualizes the team’s mental model of the problem space
Promotes the idea of many bets or multi-tracking towards business outcomes
Binds solutions in groupings (opportunities) that are themed, contextual and most importantly, aligned to the outcome
The trees can also be used in reverse; if you have a lot of ideas (or a backlog you’ve just taken over), you can work backward to the outcome and discard ideas that don’t align
Allows measuring at many levels — business outcome, opportunities, solutions, experiments
Ensures opportunities are exposed through generative research (like the Kata Table)
Note: we need to find a standard way to link opportunities to user insights.
Idea: The top-level depth of the opportunity tree can be taken from the developer journey described above. This allows the team to ideate against the desired outcome across each part of the developer journey.
Any time a problem needs to be explored:
Start of a new epic
Start of a new quarter
Start of a new fiscal year
Emerging new user insights
Members of the squad, along with stakeholders (if possible).
Remind attendees to first focus on going wide with opportunities before zeroing-in on solutions.
Remind attendees to phrase opportunities from the user perspective, to ensure user-centricity: user needs, user pain points, user desires, or user questions, at a moment in time.
In order to prioritize amongst the various opportunities ideated, we use a structured template to further define and calculate the value and cost of each opportunity under consideration. The template has the following components:
“The process is about progressively solving problems, identifying the next step, and expanding understanding. Once there is sufficient understanding to anchor knowledge and take the next step, do so. Step and repeat. This framework will deepen your user knowledge and expose a host of opportunities and solutions to impact the business objective.” [reference]
The squad’s assumed product manager and engineering manager can determine who and how this is maintained.
See how this team went from 85% of users not activating to 38% of users not activating, via iterations of learning. This is well externalized via this “Product Kata” table.
6. SET EXPECTATIONS: Roadmap
Provide a concise way to externalize the team’s roadmap. Rather than focusing on the date of delivery, include the following:
Columns: Places in the User Journey OR Business outcomes (see examples below)
Rows: Recent, Now, Next, Future
The squad’s assumed product manager can take the lead of creating and maintaining the roadmap visualization. Assuming the squad participates in the steps above, the roadmap would not be a surprise for them since it would be a result of continuously learning (step 5), ideating (step 3), and understanding user insights (step 2).
Mobile squad's roadmap: aligns efforts to business outcomes, which makes it easier to understand themes of investment across outcomes.