Problems, not solutions
As engineers (or just about any other technical profession), we’re trained to think about solutions (what features to build, how to make them, subsequent improvements, etc.). Still, given a sufficiently defined problem, the solution is often the easy part (even if the implementation itself may be technically complex). The real challenge lies in understanding customers’ actual needs (not just their stated ones), defining and prioritizing user problems, and evaluating potential solutions to determine the right one (and where your efforts can have the most significant impact).
Jobs to be done
Ultimately, customers hire products to do a job. Imagine a customer comes to you asking for a 1/4” drill (a solution). Their stated problem may be the need for a 1/4” hole, but what they’re after is the ability to hang a picture (which could be accomplished several ways - a hammer and nail, 3M Command strips, etc.). Going further, the underlying customer problem may be the desire to remember milestones or essential people in their lives, which an app may best serve on their phone or a digital picture frame that avoids the need to hang something altogether. You can build the world’s best drill, but it may be the right solution to the wrong problem.
Are holes in the wall a concern? The need to also purchase a hammer and nail? Potentially hitting their finger as they hang it? Is the photo being hung crooked? Positioning on the wall? The ability to move the picture without damage? Which do they value more? How often do they hang pictures? How many photos are they hanging? How heavy are the frames? The list of potential variables, and thus customer concerns (or unexpected consequences of the wrong solution), is often endless.
As a Product Manager, even when customers come to you with desired solutions (or you intuitively have one in mind), it pays to start by explicitly enumerating the problems you’re trying to solve (and the customers you’re trying to solve them for). You’d be surprised how many different ways the same issue (s) can be solved or how the right solution can solve multiple problems for the customer (or the wrong one can create even more).
Worse yet, you may be implementing an intellectually engaging solution in search of a problem. If you’re building a product for your users, everything you do should stem from a user need.
Why over What
The other way to think about talking in terms of problems instead of solutions is that you should spend more time talking about the “why” than you spend talking about the “what,” or at least translating between the two.
If your team agrees its goal is to do X, it’s natural that you’ll spend more time discussing and tracking what you need to do to get to X than what X does. While managing work may be part of a PM’s role, your language must constantly frame things through a lens of end user value. Put another way, throughout the development process, you should serve as the user’s voice, advocating for their needs at every step.
Focus on low-effort, high (user) impact
If you spend months refactoring an app to make it “right,” to use an exciting new technology, or to make it easier to maintain internally, it’s easy to talk about all the work you’re doing, but if at the end, the only user-facing change is a minor bugfix, slightly better uptime, or marginally faster responses,1 it’s hard to describe the “why,” other than “this is better,” especially in terms of the effort expended and other potential features foregone. On the flip side, if a one- or two-line change can have immense user impact, it’s boring to talk about the “what,” but you could talk about the “why” for hours.
As a Product Manager, your job is to optimize for those (ideally dull) low-effort, high-impact initiatives that improve user experience and give you the best value in time and effort. The easiest way to do that is to focus on why you’re doing things and who you’re doing them for, counterbalanced by the effort required, not the other way around.
What problem are we solving?
As cliché as it may be in some circles, one of the most important questions you can ask as a Product Manager (of yourself or others) is, “What problem are we trying to solve?”. I can’t tell you the number of times the answer is, alarmingly, “That’s a good question…” even among projects that were well underway. If you don’t know what user problem you’re solving — what jobs you’re doing for the user — and by extension, what end-user-value you’re seeking to deliver — then you’re just doing work for the sake of doing work, and not to better your product or the customer experience.
As technologists, the solutions are the fun part. Many of us got into the field because we love building things or overcoming complex technical challenges. Great PMs don’t spend time on solutions. Despite the most visible or tangible artifact being what we ultimately ship, the most valuable contribution a product manager can make is appropriately framing the problem at the onset to ensure we deliver the right solution to the right customer at the right time.
Conclusion
When developing software, your job is to optimize for low-effort, high-impact initiatives that improve user experience and give you the best value in time and effort. The easiest way to do that is to focus on why you’re doing things and who you’re doing them for, counterbalanced by the effort required, not the other way around. As a Product Manager, your job is to optimize for those (ideally dull) low-effort, high-impact initiatives that improve user experience and give you the best value in time and effort. The most valuable contribution a product manager can make is appropriately framing the problem at the onset to ensure we deliver the right solution to the right customer at the right time.
-
Performance, uptime, quality, and reliability should be seen as features. As such, they should be prioritized like any other feature and evaluated through the lens of user impact. ↩
If you enjoyed this post, you might also enjoy:
- Why open source
- Speak like a human: 12 ways tech companies can write less-corporate blog posts
- Twelve things a product manager does
- Twelve tips for growing communities around your open source project
- How to make a product great
- 19 reasons why technologists don't want to work at your government agency
- Five best practices in open source: external engagement
- The seven things a corporate Chief of Staff does
- 15 rules for communicating at GitHub
- Leaders show their work
- Removing a feature is a feature
Ben Balter is the Director of Hubber Enablement within the Office of the COO at GitHub, the world’s largest software development platform, ensuring all Hubbers can do their best (remote) work. Previously, he served as the Director of Technical Business Operations, and as Chief of Staff for Security, he managed the office of the Chief Security Officer, improving overall business effectiveness of the Security organization through portfolio management, strategy, planning, culture, and values. As a Staff Technical Program manager for Enterprise and Compliance, Ben managed GitHub’s on-premises and SaaS enterprise offerings, and as the Senior Product Manager overseeing the platform’s Trust and Safety efforts, Ben shipped more than 500 features in support of community management, privacy, compliance, content moderation, product security, platform health, and open source workflows to ensure the GitHub community and platform remained safe, secure, and welcoming for all software developers. Before joining GitHub’s Product team, Ben served as GitHub’s Government Evangelist, leading the efforts to encourage more than 2,000 government organizations across 75 countries to adopt open source philosophies for code, data, and policy development. More about the author →
This page is open source. Please help improve it.
Edit