61 comments

[ 3.0 ms ] story [ 110 ms ] thread
Author here: I am often extremely frustrated with certain ux decisions and write about it but this is - in my opinion - a good example of how hard even what looks like simple ux can be.
The treating of users as idiots is one of the big pitfalls of modern UX. The problem is many lusers even demand it, but it's so easy to do it wrong: Like dynamic hiding of content, which raises unexpected surprises instead of providing a consistently learnable interface. Or failing to resist adding an annoying popup.
It is the biggest thing I resent about Bamboo. It’s a development tool written to all of the standards of consumer software and thus is continuously lying to me about the capabilities of the system.

If you hide all the features how do I even know they are there or what to ask for? The normal users get sticks and rocks to try to build a CI process (or at least an understanding of it) with.

I can heartily recommend Teamcity for anything CI. Comes fully baked (i.e. no plugin hell), has nice handling of inheritence and exposes all the options in a still manageable UI.
For reasons, the things at work that could be changed but that I personally cannot are amongst the ones that bother me the most.

First CI system that I maintained (rather than deputizing to someone else) was TeamCity 1.0, and it has kinda felt downhill since. I sometimes want to take the 4 nicest features from each CI system I've used and make a new, minimalist one but I don't want to have to maintain it.

I do occasionally do a mental exercise of "how much of a CI system could I build today with off the shelf parts?". The last cycle of this was just recently when I saw an ad about someone integrating k8s into their CI tool, and I thought, "man how much administration code did that just deprecate?"

> If you hide all the features how do I even know they are there or what to ask for?

Here's a modern software development plot twist:

1. Hide all the interesting power features.

2. Analyze reports from the pretty invasive telemetry you put in your software.

3. Note the telemetry saying nobody is using interesting power features.

4. Remove these features in the next version, like a good data-driven company.

I remember when I learned about greedy algorithms in college that I tsked and promised myself that I'd try to avoid doing something so obviously dumb.

And now A/B testing is sophisticated, despite being a poster child for hill-climbing.

Agree, also this is reinforces itself in a vicious cycle:

Dumb everything down and you get users who cannot use anything but dumb software. As more companies go this way we lose common ground like the knowledge of right clicks / context menus, ordinary menus, what to expect, search operators etc etc.

I can't rememeber where I read it but the right frame of mind is to treat the user as if they're very smart, but also very busy, and they don't have time to deal with your software's nonsense.
This is an issue I had to tackle with in the past...

We offer a toggle option for a search item and if you select multiple makes of something you can always add makes, but when you remove enough makes that the toggle no longer applies the user gets a scary 'Your search is no longer valid'.

I was surprised by this menu but I ended up hunting down the answer since the management did not want any pages showing zero results... the reason: "makes it look like we have smaller inventory than we do"

I think the fact that out of stock items aren't shown isn't a UX improvement. If an item isn't in stock and you can't see that it is normally stocked then you will probably shift your business elsewhere and not come back. But even that wasn't the root cause of the issue here, the root cause was not making the user aware of the following logical fallacy: "if a single part exists for the vehicle only 1 part is shown" is not the same as "if 1 part is shown there only exists a single part for the vehicle".
Root cause is complexity and inconsistency, though could be unintentional as well.
> I think the fact that out of stock items aren't shown isn't a UX improvement.

I see your point but I'd say it can be for certain items. A stupid example: if I was shopping for air fresheners (I'm not;-) I'd rather not see my search results in the webshop polluted by every discontinued version of Wunderbaum they ever had in stock.

Yes it is still advantageous to demote out of stock items in the search results. But if the store knows a certain Wunderbaum flavor is really popular but not in stock right now it should probably show up fairly highly in the search results.

And there is a difference between being temporarily out of stock and discontinued.

Just order them by availability.

In stock first, out of stock second.

and if you don't make that clear, I scroll through a bunch of useless results. I can't remember a single time when I wanted out of stock items shown by default.
In addition to this, mark them clearly as out-of-stock - fade out the preview image and prepend [out of stock] to the item description.
Ideally make it a choice - I don't like it when I order by price and it's overriden to (availability, price) - maybe it's out of stock because the price is that good, and I'm willing to wait.
Some shops also have an expected delivery delay indicator in addition of their out-of-stock indicator, so if I want to buy a Moog Subharmonicon it will say _out of stock: order now and receive it in about 5 weeks._ Which is a really nice piece of UX in my opinion.

[0]: https://www.bax-shop.nl/synthesizer?o=product_cdate

> I see your point but [...] I'd rather not see my search results in the webshop polluted

There's three issues with this:

1. In UX, hiding things is a lazy solution to not being able to effectively differentiate items by relevance. There isn't an easy one-size-fits-all answer to doing the latter, which is why you need good, experienced UX people. Hiding things is what the inexperienced/lazy/bad ones do instead.

2. "Polluted" is also a codeword for "not of the clean, white, zero-inbox aesthetic I desire", and in certain situations this excuse is overused to enormously degrade UX in favour of a contrived sense of visual "cleanliness". A functional UI shouldn't be "clean", it should contain all the information you need to see (in a clear, differentiable, non-confusing way).

3. This is a stretch, but I think ideal system would differentiate between "currently out of stock" and "discontinued", and filtering out the latter is slightly less of a glaring issue.

There is still a difference between "out of stock" and "discontinued", one is a superset of the other and one implies it will never go out of the state "out of stock" again.
Discontinued products should be delisted.
If the shop in the original story only hid "discontinued" parts, the author could have still run into this problem if the correct parts were no longer made.
I would use the checkbox on the left side (that many stores have) for in stock products.
I can easily imagine a manager saying "don't show out-of-stock items as it reflects badly on us".

Some bad managers don't think beyond the "awful badge" visuals.

I used to work for major US ecommerce site that catered to a more, wizened, population due to previous reputation and longevity in the brick and mortar realm. We would get feedback all the time about the fact that out of stock items were shown on the site. Their expectation of a website was like a physical store: that if it was out of stock, they shouldn't be able to see it there at all. If they saw an item in the search results, they assumed that meant it had to be in stock, or it wouldn't be able to show up on the website. When they clicked the product page and then found out it was out of stock, they were super pissed.

It was a completely different mental model driven by a lifetime of shopping in brick and mortar stores and a fundamental misunderstanding of how websites and databases work, which is of course not really their problem nor concern.

For some folks showing out of stock items is a degradation of the experience, for others it's an improvement. Know your audience, or at least pick one to target.

... or just have a prominent switch on your search result page.

  [ ] Show out-of-stock items.
Unchecked by default, to cater for majority use case.
It's that simple! Why didn't we think of that!?

Of course that existed. It didn't matter because the initial state did not meet their mental model of how it worked. We probably could have made it the biggest thing on the page and they still would have ignored it because they were not looking for it.

For unrelated reasons we were not hiding out of stock items by default. Wasn't my call.

> It's that simple! Why didn't we think of that!?

Many did.

I fail to see what's difficult here. You can simultaneously achieve the following:

- Provide aforementioned filtering switch.

- Sort in-stock results first, or split the results into two groups (in/out stock).

- Mark the out-of-stock results clearly on the search result page, e.g. by overlaying a big "OUT OF STOCK" label on top of the item picture.

At the risk of sounding smug, I think all this requires is thinking about what your users need to make a decision that's in their best interest. The "clicked the product page and then found out it was out of stock" should never, ever happen; that information needs to be available on the search results page.

EDIT:

From your edit I understand that the problem boiled down to these items being shown by default, which was unexpected by the audience. That's truly the kind of issue that may become apparent only after deploying and getting feedback from people. That said, were the out-of-stock items clearly marked on the results page? Personally, I'd be super-pissed if they weren't.

Everything was there, they didn't believe it I suppose. They had a very rigid expectation that didn't mesh with otherwise common e-commerce practices. They believed that of an item was shown on the results page, it had to be in stock. As if there was a pressure sensitive pad on the warehouse shelves where the item goes to determine if it shows up in the results or not.

We could have designed for this audience, but at the expense of more numerous, savvy users.

Believe me, we had many very smart people working there, we had a good handle on the situation. There's plenty I left out here to make a point regarding out of stock items and certain expectations regarding them.

>>We could have designed for this audience, but at the expense of more numerous, savvy users.

Of course, that could be interpreted as snide. Very snide. Pardon me, I feel I must respond from a perhaps cynical perspective, but in the spirit of HN, this should not be interpreted as a personal attack, please consider it as a form of customer feedback resulting from real-world experience...:

Lets imagine your unsophisticated user wants to buy something. Your team has made sure the desired product is splashed on all the relevant search results with vim and vigor, nay, it hunts them down with delightfully appealing charm. Then the not-so-savvy target follows the trail, most assuredly identifying themselves as an eager customer, providing all sorts of delightful self-identifying information so that future marketing will surely be able to follow up with grander offerings specifically targeted to their needs! Sadly, the little "in-stock only[ ]" checkbox was ancillary to the much more important (as determined by high-quality tests run by the best consulting firms or maybe just lower-cost magical thinking) page features like "buy this immediately" button and "most popular choice" banner. Thus the user guided by top-notch design immediately launched into the purchase process and enters payment and shipping information as prompted, then clicks the final checkout button only to be informed by pop-up the item is out of stock! To add insult to injury your site actually authorizes the payment and says the item is backordered and thus delivery may be delayed N+1 weeks, where N is the limit of what any reasonable person would expect and WTF didn't it tell them before it went down this rathole.

At which point my spouse/parent/adult child comes to me and asks me why they found this thing to buy but they can't seem to get it...to which I reply, this is a scam, cancel payment if you made it and don't fall for it again. You gave them your email address, so they'll be sending you scammy emails trying to get you buy more non-existent stuff that looks perfectly wonderful to you because they know something about you, like a con artist would pitch you. Make sure you block them. If anyone tells you otherwise, it's a high probability they're either misinformed or getting paid to hook you into another round of pointless web-surfing for nothing...except maybe glittering eye-candy.

Of course, capitalism is wonderfully insensitive to your morals and remarkably efficient (capitalism is just an observation, not a theology) and even if you build your business on a tower of socially tolerable deceptive and user-disdaining practice, well "there's a sucker born every minute" so you may likely still develop enough margin to succeed in your enterprise, and may thus afford to disdain those less savvy users...

It wasn't snide, it was the decision that those in charge made.

You couldn't purchase out of stock items. This is why this whole debate is silly to begin with. I shared an interesting anecdote with minimal relevant details and I get told how we did it all wrong. That's the side of HN I don't come here for, the Monday morning quarterbacking from something over six years ago.

>>I shared an interesting anecdote with minimal relevant details and I get told how we did it all wrong.

No, didn't really mean it personally despite my exasperated tone and abuse of pronouns. Sorry. You put it out there and I assumed it was intended as relevant for discussion. It triggered my perception of...Snide. Meta-discussion on this topic would be contrary to HN guidelines, I think.

But what I wrote, I wrote from the heart.

yes we have a major local eCommerce store that shows out of stock items in results, only to have an error page when you click on it or add to cart.

so many complains about it on their social media.

I used to own a very-minor worldwide e-commerce site where I sold software and had a bunch of people say that I should hide all the software that wouldn't work on your device (most often due to operating system version requirements) from searches. I did that, and then had even more people contacting me saying that they knew I sold X but they couldn't find it; my conclusion is that the people who think you should not show out of stock items are annoyed because they think their experience could have been faster, but they are merely filing feature requests as they know exactly what happened and simply disagree: the people who were confused because the item did not show up at all--even though their friend told them it would be, they saw it in an ad, or they installed it on another device--are filing bugs, and this actually incurs costs handling the customer service complaints that result as you have to explain to them what happened and then defend why you thought it was a good idea. I thereby changed back to showing everything, now content with ignoring the feedback that I continued to get for the next decade that some people would prefer the other behavior.

I'll also note: when I go to a store and something is out of stock, I find an empty shelf where the item would go that usually has a little tag dedicating that space for that item and telling what its price would have been were it in stock. If I don't find that empty shelf, I end up wandering the store thinking it must just be in a different section and eventually ask someone who works there where to find it, because I am confused, and I am now costing the store money for a sale they aren't even going to get (as the item is out of stock). I thereby don't even agree that the physical metaphor of going to a brick and mortar store makes any sense as an argument for hiding out of stock search results, as brick and mortar stores actually do return placeholder hits for items that are out of stock, both when you ask an employee "where might I find X" (who probably doesn't know if they are out of stock) and when you go to the right section and scan for "what items exist that are similar to X".

Isn't this just an illustration of the potential pitfall of the tendency to simplify UX to cover just the 80%?

Here, the design seems to be following the idea that an owner of the standard edition of the car doesn't need to be made aware of the existence of a heavy duty version of the car. But a person who owns the heavy duty version and is not aware of it is not guided to this knowledge because the UX hides it from them. It is difficult to say that this is what happened, maybe the author was presented with the choice of standard edition or heavy duty edition and genuinely selected the wrong one. Unclear from the description, but yeah, if I have to type in the car model and there is some sub-type, that sub-type should probably be required.

It sounds (to me) like this is a case where someone decided to hide the essential complexity of the choice and made the choice accidentally simpler than it actually is.

I think it's slightly different. Usually they would show parts for the standard & heavy duty editions - but they only show parts in stock, so they only displayed one of the options.

In reality, the same outcome would have happened if the store decided to only stock the part for the standard.

Correct, you caught the small but important difference.
More than once in my career I've wished for a read-only connection to the data store and a copy of the schema.

Let me figure out my own UX, thank'ee.

Which sounds cool until said schema takes up a wall in an 8-point font.

Reading these comments shows how much misconception there is about UX. It's worrying. Good UX is so much more than dumbing things down and making things simple.
Like what else? I feel like simplifying is the imperative.
Good UX relies on understanding user needs.

Meeting user needs doesn't always require simplification: adding friction and complexity can sometimes help.

> As someone who doesn't have much training or experience from the field this felt great.

Oh boy, someone without experience is messing with the brakes of their car. What could go wrong? UX problems might turn out to be not the most important ones here.

Have you went to a repair shop? A lot of places are not much better than someone figuring it out on the spot or watching a YouTube tutorial.

And besides, the demonstrated UX is terrible even for the knowledgeable field specialist because it hides the heavy-duty version parts completely if they are momentarily unavailable.

Relax, I'm also a farmer (kind of) and I also had help the first time I did it, so even if I haven't done it too many times before I'm not totally inexperienced, I just wasn't aware that 1.) my car was the heavy duty edition 2.) none of the part selectors on any webshop that I am aware of was able to differentiate between heavy duty or not based on plate number. Plus it isn't too hard, with my background the only hard part is knowing where to apply the elbow grease and where to be careful ;-)

Plus I have a brother who's an actual licensed car technician and I make sure to always be very easy to ask if he has computer problems, or - more likely lately - is stuck with some bigger equations.

PS: Seems like you are getting downvoted, it wasn't me but based on the tone and the assumptions you make it wasn't completely unexpected around here.

Car brakes are very simple (all brakes really). Anyone can change out a part so long as they understand the basics of assembling things.

Pretty much any part on a car the wears or is part of a system that wears can be swapped out by an amateur.

Since when do you order parts based on plate number?

If you're using OEM parts rather use the VIN (or the make/model/year/variant) to look up the manufacturer part numbers for the parts you need. This is the only semi-fool proof way.

There are systems to look up VIN, which gets you make/model/year/trim, by something other than the VIN. In the U.S., the state you live in can find the VIN by plate number. They make expose this information via third parties. Additionally, you can even do things like look up all cars by something like driver's license # or maybe even just name/address.

Auto insurers have been using those systems for years to simplify the quoting process. Enter your driver's license # and magically all your cars show up to choose from.

A funny aside to this on how poorly integrated these things can be:

My state has a random proof of insurance system where licensed drivers with registered vehicles will be randomly selected and be forced to provide proof of insurance for their registered vehicle. I got one of these a few years ago for a car that I had sold at least several months prior to the date they wanted me to show insurance proof for.

Boy was that an unexpectedly difficult situation to navigate. It turns out the state uses a private company to run this program and the state just dumps them information a few times a year. Of course the private company runs under the guise of a state agency even though it isn't. Talking with the private company led nowhere since my logic of "you literally have access to the State DMV. Call them up and find out when that VIN was titled to someone else" didn't land. I ultimately needed to deal with the State DMV directly, all while under the countdown clock of my license being automatically suspended for failure to provide proof.

Isn't it a privacy problem if all this data (including property listing of a driver) is available publicly on Internet? Just asking as an European guy used with a minimum of privacy.
In the US, lots of things that involve licensing are publicly available even if they aren’t available online.

For example, if you own land, your name is listed in a register along with the purchase date and price. The floor plan for your house is also listed, as is the condition of your utilities.

You should make things as simple as possible, but not simpler.

This is an example of where they tried to make it simpler.

It turns out making things simple is hard.

Making things simple in an elegant way is difficult. It's one of the hardest challenges in UX. You can take a knife to things and make a lot of well-intentioned mistakes.

There are also domain-specific challenges you need to consider and every domain is going to have a completely different set of user needs, challenges, etc. This is where understanding your customer and understanding the variety of ways they shop is critical.

In this case, it's an auto parts shop. I've bought auto parts enough to know my shopping behaviors and needs:

1) I know exactly what part I want and what to see what options are available for that part

2) I know roughly what I'm looking for but am not sure the exact part

3) I'm always going to buy for a specific car. Parts for other cars are irrelevant to me

With these considerations, this site clearly made a few mistakes:

1) It didn't get the right car make, which is a critical flaw

2) By hiding out of stock items, they eliminated the ability to discover the product you actually need if you're only loosely aware of what you need (my #2 point above)

3) Only showing one relevant part is quite bad for auto parts. Brake pads come in different materials and I may want to choose. Rotor quality can vary a lot. Maybe I want painted instead of unpainted calipers.

All this boils down to a case of not considering the actual customer. Good UX is aligning experiences with needs and behaviors and what's good UX in one application might be terrible in another. It seems like that is what happened here.

> I saw a notice saying that unlike many auto parts webshops they would try to only show me the one relevant part if they knew which part I needed.

If I saw that I'd close the tab and go to a different vendor that has a proper search interface. I get anxiety just reading that. Perhaps it's the result of experience, but I don't trust devices that hide what they're doing. This applies to everything from digital FM radios (I assume they don't work until I can tune in to few stations I know at correct frequencies), to "helpful" Windows troubleshooters (my mental model of those is that they sleep for a random number of seconds and report they're done, because I've never seen one fix anything, or even change anything in the system).

I won't trust your inventory search until I can see a dedicated search results page, where I can see and tweak the filters to double-check that your search system isn't making some mistaken assumptions. Because, all too often, it is, and I have to manually correct this to get what I need. This story is just another evidence that you shouldn't trust technology that tries to keep you in the dark.

(And then comes the business-related cynicism of mine: "show me the one relevant part if they knew which part I needed" is an open door to market segmentation; take the user to the most expensive matching part directly, and let the cheaper ones be bought by those who know how to query for them directly.)

Yep. Anyone that claims to have the one true answer, or the one part you need is full of crap. Google isnt even that good, there's no way an auto parts store gets it that right.
Exactly. And here's the thing: I would love to use a system that could tell me which part is best for me - as long as it showed me the work. I.e. what exact criteria led to the system determining this given part is one I'm looking for. This is the way to build trust in the relationship with the user.
This was my mistake, as an IT person I though the license plate -> model lookup was precise enough to account for differences like this one.

In hindsight it seems kind of related to Gell Mann Amnesia: I know things are bad on my side of the fence but expect it to be OK in the more traditional disciplines like mechanical engineering etc.

I'd say it's safe to assume the opposite - software developed "by devs, for devs" can get pretty ugly UX-wise, but usually is still intensively dogfooded, so there's a pressure for it to be effective. Software developed for other disciplines usually has couple of layers of middlemen in between the dev team and the end-users, and some of those middlemen may not have user's best interest at heart. Common examples:

- B2B procurement often involves optimizing software for ticking compliance checkboxes and satisfying the whims of the purchasing manager, at the expense of people three levels down in corporate hierarchy who will actually be using it.

- E-commerce isn't optimizing for customer's ability to make the best purchasing decision, but for site owner's ability to maximize revenue. Hence you should never use an e-commerce store as a product recommendation or product discovery engine.

I fail to see what are the UX improvements; none of the 2 count as an improvement, but a dumb-down features.