13 Comments

> “I’m ready to throw my goddamn phone out the window. I spent an hour setting up a reservation & then the ‘server’ had an ‘error’ & I had to do it again.” I’ve been carefully watching non-geeks use computers & we are failing our users.

It's maddening. I wrote about the state of software back in 2019, and now it's even worse. GenAI is exasperating the problem. I suspect high quality software will become a unicorn in the coming years.

https://jeffbailey.us/blog/2019/11/09/death-by-1000-cuts/

Expand full comment

Open the pod bay doors Hal...

I generally agree with your point that there's a problem with UX. These days, most UXs are terrible. Poorly designed. But I think that's a failing of organizations/designers - their goal seems to be maximizing engagement rather than old school usability (enabling users to successfully complete tasks).

Perhaps an LLM could help. But only if the organization truly wants cares about UX rather than engagement. And then there's the problem of hallucinations...

Expand full comment

There is also this idea that software has to do more and more. Hey, maybe if we did this too, we could use this to-do list as a dating app! This confuses the idea of what problem are we solving.

Expand full comment

Implementation details 🤪

Expand full comment

Technology is broken. It's like Idiocracy IRL.

You should be telling your phone to turn off dark mode like Jean Luc Picard. "Phone (or whatever you told it to respond to), turn off dark mode" and have done with it. Likely, it would turn the lights on in the room you're in instead—provided you had a connected house.

But seriously, as a software engineer I understand how things can get so crazy. We have these general use frameworks as building blocks. Dependencies that aren't very dependable just because it's so complex. Networks of dependencies (on people and on technology). All these cells trying to communicate across subtly different or even wildly different contexts. Efficiency comes at a cost. Dare I say...a tradeoff!?

Expand full comment

> The mapping from Intention to Actions is hard

Harder yet -- as soon as one of your Actions runs through software maintained and updated on an arbitrary basis by a third party, you can't programmatically rely on consistent behavior. "Please listen closely, as our menu items have changed." Netflix's license to that show expired, now it's over on Hulu. Etc. and so forth. To make this idea work, the LLM training regime can never rest. Which maybe makes it a pay-for subscription service, I suppose? "LLM-powered personal media assistant"?

Expand full comment

I meant submenús are bad, not sometimes are bad.

Expand full comment

Makes more sense. They make it harder to navigate to an action. Are they better than really long menus? Maybe. What if you need that many actions?

Expand full comment

I think the problem is we think of our own internal concept of organization instead of customer needs. We end up putting things that are really commonly used into a deep submenu instead of right up front to satisfy our logical sense.

What we really need to do is understand how our software will be used. And maybe not try to grow it to do everything.

That said, I had the llm thought about my IDE. I don't want all these menus and toolbars. I just want to talk to my IDE and have it execute a clean and build, or do a refactor, or run tests or open a file. Leave my real estate for actual code.

Expand full comment

I took the concept of click path from Jef Raskin (see The Humane Interface). A better organizing principle (but still too mechanical) is to reduce the total number of user interface gestures. This leads you to have "shortcuts" at the top.

This ignores the feedback loops where if an action has a short click path, it's more likely to be used, further shortening the average number of gestures.

Expand full comment

I am not 100% convinced that sometimes are bad. But it reminds me of organizing assembly line workstations.

The most commonly used items are in front of the worker. The sometimes used items are in a drawer, organized. The only occasionally used items belong in a box under the workstation.

I think we as programmers try to apply a logic to our menus and submenús that is about kind of action and end up putting common things in a box under the workstation somewhere.

Expand full comment

> The mapping from Intention to Actions is hard

I wonder if agency is a valuable way to think about the cost of more actions. Products with fewer available actions offer the user less agency. More offered actions equals more user agency. What if we asked, ”how many actions should we offer?” and instead asked “what is the right amount of agency?” What if instead of thinking of different app designs having different feature sets, we instead thought about them giving users different agency experiences?

Or maybe actions are language (language being another way for agency to express intent). Simple softwares few few actions only offer a simple conversation to the user. But when more actions are added, the space of possible conversation explodes and new problems become possible; problems that simply couldn't exist in the smaller language space. Now the question is about the right language.

Expand full comment

More actions adds to agency for a particular person only if that person:

* Learns about the existence of the action

* Remembers the action

* Can navigate to the action

* Understands the interaction of the action with other actions (if any)

* Understand the interaction of settings with the action

More commonly I see additional actions *reducing* agency because users lose confidence in themselves & their computers.

As programmers we want as many actions as possible with as many interesting interactions as possible (see also The Unix Way). Not everybody is like us. And they're drowning out there.

Expand full comment