Jun 20, 2024 3 min read

Every System Has a Bottleneck

whac-a-mole, courtsey of TPapi/Flickr

Software architects know that every system has a bottleneck. 
Imagine an analytics app where the slowest step is uploading massive data sets from remote devices… if we’re clever enough to unblock uploads, we’re going to discover that the slowest step is now parsing/cleaning incoming data... and speeding up parsing by 10x might only give us a 20% improvement, because re-indexing reports is where we’re now slowest.  When we fix the biggest bottleneck, the next reveals itself.  Whac-a-Mole. Performance engineers and architects and security analysts know that their work is a journey, not a destination.

 On the product side, we see something similar.  No matter how much I love my product, and how well it’s doing in the market, I’ll always have:

  • The most reported bug, which generates the highest volume of support calls
  • The #1 use case that my product doesn’t yet support, which would bring in a wheelbarrow of cash if we implemented it
  • A workflow that trips up more users than any other (found via good instrumentation)
  • One looming piece of technical debt that scares my team ahead of all others
  • A burning question for end users that needs to be at the top of our discovery calls

Fixing that most-reported bug is a huge relief, but the second-most-reported bug now graduates to first place.  Etc.  To-do lists and backlog don’t have a bottom.  My product will never satisfy everyone or do everything well or make enough money.  Right after this release, it’s time to start the next. Sigh. 

That can be an emotional challenge for product managers.  We’re deeply committed to our products, want the world to sing their praises, and can get defensive about critical/constructive feedback.  (“No, my little Johnny would never hit other kindergarteners.”)  For most of us, the incoming comment stream from customers and market-side folks is predominantly negative – pointing out imperfections that we’ve already spotted. 

So it’s important to have a thick skin.  But what else can we do to keep a positive frame of mind?  Lighten the emotional load?  

  • Recognize the pattern: excitement leading up to the next release, which fixes Big Issue #1 and Known Problem A… then a bit of the blues from continued legitimate criticisms. 
  • Celebrate the wins: relentlessly promote improvements and good work from your team.  Take 10 minutes each Friday to share some good news, positive messages, and customer wins through company channels.  (“Just pushed v5.4a, which opens up the Pharma market with our EHR connector!  And we fixed that pesky intermittent 2FA problem that so many of you reported…”)  
  • Try to put a little emotional distance between you and your product.  It’s OK to admit to some foibles and incomplete solutions.  (“you’re right, v6 isn’t perfect, but here’s what’s much better than v5.6…”)
  • When pushed for productivity, turn that into a people/resources discussion.  “I'm proud of how productive our team is: on average, we’re adding one major feature plus two minor capabilities plus 4-6 bug fixes each month.  If we had two more developers and our UXR/designer was full time rather than shared…”

And a game that I’ve played with my product folks when no one else is around:  It’s a feature, not a bug!  We take turns naming some horrible defect, and see who can invent the best reason why it’s really a feature.  (“Our users work too hard.  So our HR app shutting off all of their office lights at 6:30pm encourages them to leave the office on time.”)

Sound Byte

Every system has a bottleneck; every product has bugs and missing features and tech debt.  Playing Whac-a-Mole can be exhausting. We need to see the pattern, understand our own emotional responses, and locate some humor in the endless series of wants/needs/problems/critiques.  Find our moment of Zen. After all, folks who point out our product problems are trying to be helpful.


Photo credit: https://www.flickr.com/photos/tpapi/2765541278

Great! You’ve successfully signed up.
Welcome back! You've successfully signed in.
You've successfully subscribed to Rich Mironov's Product Bytes.
Your link has expired.
Success! Check your email for magic link to sign-in.
Success! Your billing info has been updated.
Your billing was not updated.