Anticipating & Preemptively Addressing User Needs at Costco & Inside Safari [Good UX]

Product Background

  • Good products are similar to good teachers - they know the subject material so well that they anticipate where students/users will face challenges and provide guidance at exactly the right time.

  • Acting on this principle is often difficult for product teams because they understand the product so well, it is challenging to determine where a basic user might stumble or take an action that is sub-optimal.

  • If we as product managers can find those moments, they are often moments that surprise and delight users.

User Experience

Two great examples of this, one from Costco, and one from Safari on MacOS:

  • Costco Gasoline Pump Open / Busy Indicator

    • Forgive the blurry picture, but at a Costco in San Diego, an Open/Busy LED illustrates to cars waiting in line which pumps are open or busy.

    • This is often difficult for a car not in the next position to determine for their line or the lines adjacent to theirs.

    • In theory, this proactively answers the question of whether the car two pumps ahead of mine has just pulled out, speeding up the process of gas buyers filling the next available pump station.

    • This is the first and only Costco, let alone gas station, where I have seen this indicator.

  • Safari User Prompt When Bookmarking Google

    • If as a user I try to create a bookmark for Google, Safari prompts the user that they can already search Google via the address bar without adding a bookmark.

    • This is interesting in a couple respects:

      • It is contextually aware of the goal that the user is trying to accomplish with the bookmark (searching), not just the content of the bookmark (Google).

      • It recommends the faster way of achieving the goal (searching) via the address bar.

      • And still allows the user to create the bookmark if they so choose.

    • Google appears to be the only search engine where this occurs (Yahoo, Bing, Yelp all did not trigger the prompt). This could actually be due to Safari obtaining a referral fee for searches from the address bar to Google whereas they do not receive any fee if it is from a Google address.

The Value of Product Management


  • At a certain point, every Product team will need to justify its existence, whether there is a new CEO that views Product as a cost center or product lines are deprioritized, it is important to both understand and be able to articulate the value product management provides.

  • At its simplest, a Product team (inclusive of Product Management, User Research, UI/UX, Design, Product Marketing) ensures:

    • Product / User Research - That the right problems are identified

    • Product - The right solutions are built to solve those problems

    • Design & UI/UX - That those solutions are designed in such a way that they are readily accessible

    • Product Marketing - That those solutions are marketed in such a way as to be perceived to solve the problems they are designed to solve

  • While we will explore each of the above separately, the value of product management specifically is in ensuring that the right problems are identified and the right solutions are built to solve those problems.

Detailed Discussion

First, let’s examine the value in identifying the right problem and define what the “right problem” means.

  • Right Problem Definition - Right problem in the context of product management means that the underlying user need, not simply the need the user superficially volunteers, has been identified to the greatest extent possible.

    • A famous, albeit likely falsely attributed, example is Henry Ford’s quote when referring to the creation of the Model T “If I had asked people what they wanted, they would have said faster horses.”

    • Regardless of the accuracy of the quote, it perfectly encapsulates the identification of the user’s superficial problem (that the existing mobility solution could be faster/better/cheaper) versus the identification of the user’s underlying need (improving a users ability to move independent of the method in which they are transported).

    • More simply, users didn’t want a faster horse, they wanted a faster method of transportation. The right solution to each of these problems is quite different.

    • This can also be seen as thinking through the problem from a first principles perspective.

  • Value in Identifying the Right Problem

    • While it might appear obvious why identifying the right problem is valuable, it is also important to be able to articulate the reasoning to stakeholders that may not be aware of product management methodology.

    • If your product team does not identify the right problem, there is a close to zero chance that the product team will derive the right solution by chance. This is the same fundamental reason that existing companies often fail to identify up and coming competitors and disruptors - they are focused on solving the right problem for a prior time period and have not adjusted for new technological/societal/preferential catalysts.

    • Identifying the right problem is even more valuable than identifying the right solution, because if you have identified the right problem, your product team will likely ultimately be able to pivot to the right solution via trial and error. If you have identified the wrong problem, your product team will be unable to create the maximum value possible because it will be attempting to figure out different ways to make a horse faster, not invent an entirely new method.

    • Finally, identifying the right problem can provide opportunities in markets that appear to be saturated with solutions, but upon closer inspection, are saturated with wrong solutions to the wrong problems.

Second, let’s understand what the right solution looks like and what the “right solution” means.

  • Right Solution Definition - Right solution in the context of product management means that the underlying user need, not just the need the user has identified, has been satisfied to the greatest extent possible, inclusive of the tradeoffs that the product team has identified in providing that solution relative to other stakeholders.

  • Value in Identifying the Right Solution

    • At its core, providing the right solution is about allowing your company to capture the greatest amount of value from your customers.

    • Providing the right solution to each customer is the root cause behind increases in customer lifetime value, Net Promoter Score, loyalty/retention and every metric that product teams seek to optimize.

    • In contrast to the criticality in identifying the right problem initially, it isn’t critical to identify the most optimal right solution at first, but only to produce a right solution based on the correct factors that influence the most optimal solution. If those factors are identified, and the cost of iteration can be minimized, iteration/trial and error is likely a more optimal path than upfront effort.

    • More simply, if the right solution to air travel is an airplane versus an airship, the optimal number of seats, their materials, and the ticket prices are all variables that can be iterated upon after the fact, while the choice of utilizing an airplane versus an airship is costly.


The examples below will explore instances where the right problem / right solution were identified/built (Good PM), as well as cases where the right problem/wrong solution, the wrong problem / right solution, and wrong problem / wrong solution were identified/built (Bad PM).

It is important to note that PM discussion/case studies are always in hindsight - it is much more difficult to identify these issues in real time, but without a Product team, there is a zero percent chance that those issues will ever be identified. When I refer to Bad PM, I specifically mean that these are examples where the right problem or right solution was not identified, not that those Product teams are of poor quality or low skill.

In addition, it is difficult to identify Wrong Problem/Wrong Solution and Wrong Problem/Right Solution examples because those companies have either ceased operations or pivoted to a new business model entirely.

A Note on Pivots (Wrong Problem, Right Solution) - It could be argued that some of the most successful technology companies have been the result of pivots, and that product teams should follow the adage of throwing things at the wall to see what sticks. This approach fails to consider the value that attempting to identify the right problem first can provide in terms of time and cost savings while overweighting a product team’s skill at identifying the right solution they have developed is misapplied. This scenario most likely results in total failure rather than a pivot to a successful product.

Build Trust First, Ask Permission Later [Bad UX]

Product Background

  • This post looks at several examples where permissions are asked for in a poorly structured way (Google Calendar on Web, Android Clock, WhatsApp on Android) or disregarded/not asked for entirely (IvyExec).

    • IvyExec is an online platform claiming to connect professionals with high end job opportunities and career advice

  • This post is less about any individual product and more about how and when permissions are asked of the user.

UX Issue

  • While the increasing amount of user data that products gather is helpful in ultimately building better products, there is a cost to obtaining that data, particularly if users feel as though their data is being harvested to exploit them or without asking their permission.

  • This cost is exacted not just on the products that behave badly, but across the entire ecosystem of digital products and services when users can no longer differentiate between good/bad actors or good/bad consumers of their data. Queue GDPR and it’s anti-data harvesting sentiment.

  • Unlike the remedy in this case, most applications either ask for permission to use user’s data first or don’t ask at all and simply abuse whatever data the user was required to give the application in order to sign up.

  • This is unlikely to be a successful strategy going forward in building a positive relationship with an application’s users due to the historic and continued abuse of user’s information.

  • While there are a potentially unlimited number of ways in which applications abuse user’s trust and data, there are several that are fairly common.

Email Abuse

  • Every individual that has an email address suffers from email abuse by the organizations to which they have given their email.

  • The best actors at this point don’t subscribe you by default, but if they do, they allow an opt out with one click.

  • The worst offenders are like IvyExec below, which do not give you the option to opt out, and instead sign you up for every category of content they possibly send. In this case, I was signed up for 11 separate email notification streams by default!

  • In this case, I immediately lost trust in the entire application and would never use it again because it lost my initial trust.

Android Permissions

  • Android permissions have progressed markedly over time, becoming more granular and forcing applications to ask user’s for their explicit permission when granting access to particularly sensitive data.

  • Unfortunately, as these requests have become more granular, they have also become harder to decipher what exactly is being requested, why it is being requested, and if denying it will impact the application.

  • In this example below with Spotify and the Android Clock application, I needed to grant The Clock app access to my Spotify account data (Note - Which data isn’t detailed here by default, you have to tap to see the data requested.)

  • Have we reached the point where I need to grant the Clock app permission to access my Spotify account just so I can use a song as an alarm?

    • I understand technically that Spotify and the Clock app are simply operating within the Android Permission Framework, but at a certain point, we need to admit it is broken.

Android WhatsApp Permissions

  • In this case, I already have zero trust in any Facebook ecosystem application, but due to several groups I belong to, need to download WhatsApp to stay up to date.

  • Because I have no trust, I am by default unlikely to accept any request of the application. This is a dangerous paradigm to have for a company that depends on harvesting consumer data to sell for a profit.

  • WhatsApp is filled with dark patterns, from constant attempts to hijack your address book to the below example, where I am unable to view images in chats unless I give WhatsApp access to my devices storage. This is unnecessary and hostile to the user.

Google Account Permissions

  • Google does as good of a job as it can in notifying users when an application needs to access information or you are about to connect an application to your profile.

  • However, it is hard to tell exactly what data is being requested, how it is being used, whether this will change in the future, and how, if at all, I will be notified of these changes.

  • In this example, when I simply wanted to add a conference invite from Zoom to my calendar, I needed to grant it permission to “Manage My Calendar". I understand why it might need that permission technically, but is this really necessary? It could also offer to spin out an ICS file for me to import, no connection required and much more user friendly.

Potential Remedy

  • TLDR -> Build trust first!

  • Building trust first allows you to to accomplish two objectives key to product development:

    • Gather the data you need to continue building great products without resorting to dark patterns or tricks.

    • Encourage users to link and contribute data to your product that enhance the product’s functionality, because they trust that you will take only what is necessary for that aspect to function.

  • One way to build trust is to engineer your application to request as little from the user as required while providing as much value as possible to them.

    • Give your users more than you take, especially at first as the user is forming a relationship with your product.

    • Continue to do this little by little, bit by bit, as the relationship with your user grows over time.

  • In addition, another way to build trust is to ensure your ask of the user is proportional to the value you provide to them or will provide.

    • For example, is it worth it for me to give WhatsApp access to my entire address book just to see an image? Unlikely - I’ll continue to use it without seeing the images which reduces the value of the product because the UX is poor. I doubt this was a conscious decision on behalf of the WhatsApp team.

    • Another example, is it worth it for me to stay subscribed to every piece of content from Ivy Exec when I know nothing about what that content is or how valuable it will be? Unlikely, because I just signed up for the service.

    • In both cases, the value the product was providing or would provide wasn’t proportional to the ask of me (the user), resulting a poor experience.

  • Building trust with your users, particularly as users become further disenchanted from bad experiences within the digital ecosystem, will be key to keeping those users from churning over the long term.

Product Elements as Moving Targets [Bad UX]

Product Background

  • You have likely first encountered “moving target product elements” at online retailers as the practice of exit intent pop-ups has become more common.

  • This practice started several years ago as savvy e-commerce software providers realized that they could measure mouse movement to predict when a customer is about to leave a given e-commerce site, and serve that consumer with a pop-up with a discount code as a last ditch method of getting the consumer to click the buy button.

  • Two examples from Uniqlo and Forever 21. Both Uniqlo and Forever 21 are on the more aggressive end of the spectrum as they take over the entire browser window.

    • The side issue here is that, just as with coupon codes, retailers are now training consumers that they just need to attempt to navigate away from the page to get a retention offer. The slippery slope of e-commerce retargeting is another post entirely.

  • Unfortunately, an analogous problem has started to crop up in the design of products that incorporate browser/UI elements where the content is dynamic / can be dynamically altered with the combination of algorithmic / machine learning suggestions.

    • This issue can be particular obvious to the user if their connection/device is slow in receiving/processing additional updates.

UX Issue

Let’s walk through two particularly egregious examples:

  • LinkedIn - People You May Know

    • LinkedIn has a feature called People You May Know, which you can find at or by clicking on the My Network tab at the top of the screen.

    • The issue here is that if the user clicks connect on Person C, every person element after that will switch positions. For example, if I click Connect on Person C, Person D will move to Person C’s location, while Person E will move to Person D’s prior location.

    • This is problematic for two reasons:

      • First - As a user, I’d prefer a longer indication that my click on Connect actually did something aside from a popup notification in the lower left corner that disappears after several seconds.

      • Second - If I so desired to connect right after that with Person E, it requires me to remember their photo or their name, instead of just the position of the tile on the page.

        • This is particularly acute in this situation because Person E may be someone I just met or might easily forget the name of, and given that the goal of this tool is to connect me to people that I might know, the design is totally opposed to the actual goal of the product.

        • In addition, this example is constrained to 5 people for simplicity. On the actual website, a user might be presented with several dozen individuals at a time due to the dynamic addition of tiles as the user scrolls down, adding to the already cognitive burden of the feature.

People You May Know (PYMK) Upon Page Load

PYMK Tiles Movement Upon Clicking Person C

PYMK Tiles After Clicking Person C

  • Android - Content Sharing Chooser

    • Update 11/9/2018

      • Apparently I’m not the only one - on 11/9/2018, Dave Burke, the VP of Engineering on Android says a fix is in the works! Hopefully they work on the moving target issue.

      • Tweet Link, Image Link

    • Original Content Below

    • This example is based on Android Pie Version 9 October 5th, 2018 Update on a Pixel 2.

    • As Google incorporates additional AI/ML into their various pieces of technology, one of the primary objectives is to surface the most relevant content to the user at the most relevant moment.

    • While this is an admirable goal, it can also create interface situations where the user needs to possess an exceptional memory to achieve their objective.

    • The image on the left is the Android Chooser, Android’s standard interface for sharing a piece of content throughout the operating system. It is also what appears the 1st time that I click to share the current site I am currently visiting in Chrome.

      • Side Note - Having a system wide chooser is actually a fantastic UX choice as it minimizes the chance that each individual application will hijack the sharing experience for very little UX gain.

    • The image on the right is the same Android Chooser, except it is the Chooser that appears 5 seconds later when I tapped “Share” one more time. I promise this isn’t a spot the differences game, so let’s run through what has changed:

      • You’ll notice that there are over 11 element shifts, where the position of elements has changed.

      • You’ll also notice that there is one element addition (Save to Drive) and one element subtraction (Yelp Friends).

      • In both scenarios, the top row of icons only appears after several seconds of the bottom 3 rows being visible, which is another moving element to add to the list.

    • The significant movement of elements in this example eliminates any chance the user might have of memorizing the physical positioning of the option they want to select.

    • It requires the user to review each option, in full, each time this screen is generated.

      • To put this in perspective, imagine if the same scenario occurred for your smartphone homescreen and ~75% of the app icon locations were randomized each time.

      • If that sounds like a nightmare from a UX standpoint, why is it acceptable here?

Android Chooser - Time (T) = 0, 1st Open

Chooser - T+5 Seconds, 2nd Open, 11 Elements Shifted out of 16

Potential Remedy

  • The potential remedy here is simple - don’t have dynamically refreshed and moving elements that require significant cognitive effort on the part of the user.

  • This can get more complicated and interesting when AI/ML are involved and can conceivably make recommendations that they believe to be more relevant than the current set.

    • The balance of recommending the best option to the user versus the most consistent option to the user should at least be considered, as it might provide a better UX overall.

  • In general, dynamically moving elements without a page refresh, or without some notification to the user that the content should change, are very difficult to pull off because they require the user to remember too much about the application state.