Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Here's a short case study.

I am the maintainer of Red Moon, a FLOSS screen filter app for Android. Over a period of several years, the location of the toggle has moved from a switch at the top, to a switch and a floating action button (FAB), back to just a switch, and will soon move to just a FAB.

I can provide more detail later if someone would like, but the short of it is:

1) As other features changed (permission prompts and moving the growing number of settings to their own screen), one location or the other made more sense.

2) I thought I would like the single top switch better than a single FAB, but after using it for a while, I think the switch feels more confusing than fresh (the action bar is a nonstandard location for a switch).

Overall, I would say it's because design is really hard. But not like that! It's hard because when you spend so much time close to a system, you start to overthink things, and then second-guess yourself. So you can't trust your intuition, you need to listen to users with fresh eyes. But they're also telling you 5 different, conflicting things, and if you listen to everyone you'll have a settings section 9 miles long. You can try to rely on data, but that's mostly good for reaching a local maximum, not staying cohesive. The best designers are able to keep their "fresh eyes" even after working with the system for a long time.



> I thought I would like the single top switch better than a single FAB, but after using it for a while, I think the switch feels more confusing than fresh (the action bar is a nonstandard location for a switch).

This seems to be addressed by one of my complaints. Was this feature not tested before pushed out to users?

I get that design is difficult. Anyone saying otherwise is biased. But it seems like a big problem is just trying something out first. Design can take months of use to realize something is bad. It seems like what should be done is: create new UI; use internally and push to everyone's version, use for a few weeks to a month; push to beta and get user feedback and pay attention to web traffic like HN and Reddit complaints about the new design; then decide if it should be pushed or not. I've seen apps that seem to follow this but just push despite bad user feedback and bad internal feedback. Going through the motions isn't enough, it has to be used as iterations.

> So you can't trust your intuition, you need to listen to users with fresh eyes. But they're also telling you 5 different, conflicting things, and if you listen to everyone you'll have a settings section 9 miles long.

A good piece of advice I heard was "listen to users for problems. Don't listen to users for solutions." Because people are actually really good at identifying problems. But most people are really terrible at solving problems (I mean if they were good at it we wouldn't have 90% of the problems we do). The addendum is to only take solution advice from experts that understand more of the nuance of what you're doing, but then to still be careful.


The problem with your approach though is that there is no such thing as 'a user'. There are so many different cohorts of users. In your testing workflow it seems you are only using hardcore users for it. People obsessed with your software (internal or beta users) before pushing it out to the masses.

How do you avoid leaving the other cohorts behind?


> How do you avoid leaving the other cohorts behind?

Time, larger testing sizes, A/B testing in the main product, and not rushing things out.


What is wrong with having a lot of settings? I absolutely hate that Twitter does not let me turn off their "features", but rather only lets me say "see less often" (which of course does nothing because I told Twitter not to track my preferences etc, but probably doesn't do anything for anyone anyway, except maybe provide a datapoint for some poorly thought out ML algorithm they put in place).


I was using OSMAnd the other day. Wanted to change a setting that I knew exists, since I looked through them all at one point (don't remember which one off hand, sorry). Spent 2 or 3 minutes looking for it before I ran out of time and gave up. Not the first time this has happened (second or third, I think).

On the developer side, too many interrelated settings can increase the complexity of the code, making it less maintainable.

My favorite compromise is to use settings for the most common functionality tweaks, and then add script hooks to allow extensive customization of behavior. The Android app Simpletask[1] does a great job of this, imo. (There are many places where it could use polish, but it nails the overall approach).

[1]: https://github.com/mpcjanssen/simpletask-android


The more settings you have, the more settings you won't care about. It's easy to get settings fatigue. And every setting you introduce adds complexity to both the code and the testing.


Maybe this is a problem with a specific type of UI? Something like git feels like it has a million settings, yet they do not bother most people. When you need something, you can often search the manual and find out how to set it up.


> The more settings you have, the more settings you won't care about.

Not me.


I like a lot of settings but I'm also okay with them being buried a bit. Advanced users tend to not care about going 5 layers deep to get what they want.


Exactly. They can be buried, and in many cases should be, but they still need to be there somewhere. Spotify seems to lose one or two useful features per calendar quarter. They're not hidden, but lost altogether.

If you really want your blood pressure pumped up, try the Spotify mobile app under CarPlay sometime. At this point, it lets you do basically nothing. A 1980s-era cassette deck gave you more control over the listening experience, just because its fast-forward and rewind buttons worked.


For CarPly they are very limited in what they can allow you to do relatively safely.

So it's basically radio+cassette player


I'm pretty sure they could implement the same transport controls that my cassette deck had in 1989. They could also enable additional features when the vehicle isn't moving, if they cared enough to do so.

What's not safe is providing an app that's so frustrating to use that it encourages the driver to touch and grope and scroll and drag all kinds of different things, looking for a commonplace UI affordance that, surely, has got to be there someplace, yet somehow isn't.

Or (worse) providing an app that frequently (but not always) fails to return to the same screen and playback state that was active when the engine was last shut off. That's the #1 unforgivable sin in any autosound system, and... yup... they somehow managed to pull it off.

It's as if the Spotify dev team is managed by B. F. Skinner himself, and they think we're all a bunch of lab rats.


Honestly every car app I've used is just terrible. VLC locks out half your artists (it does unlock when you're stopped). Maps blocks limits the keyboard and forces you to use voice.

I'm frequently disconnecting my phone, doing what I want, and then reconnecting it. This defeats the entire purpose of car play other than that my GPS is displayed in a place that is visible to me. I'm sure the play engineers have thought long and hard about how to prevent certain behaviors. But I am not confident they watched people use them in the real world. People are very good at finding ways around limitations. It's impossible to think your way through this without actually observing people. I'm not so sure it is Skinner and lab rats but "we're smart and thought about everything." I'm sure you're smart, but no one can think of everything. Thinking that makes you not smart.

Worse, there's no passenger mode for these apps and most of them don't lift restrictions when you're stopped. The lack of these features adds to people not stopping and just doing more dangerous things.


But I am not confident they watched people use them in the real world.

Oh, rest assured, they do. Time spent screwing around trying to get the app to do what you want is considered "engagement," and treated as a target for optimization.


Yep, I'm frustrated by the same issues myself :)


Honestly the controls are so limited that it makes me end up picking up my phone, disconnecting it, selecting the song I want, and then reconnecting it. This is a much more dangerous behavior.

The problems here are that it is SO limited that it is very difficult to accomplish a task. Beyond that, even a passenger can't navigate the app easily. You can't do anything when parked either. Even maps has this problem where it essentially forces you to use voice command but that doesn't work well so you say the same thing 5 times trying to get it right or do the above thing where you disconnect.

Car Play is one of those things where it seems like the developers thought long and hard about how to do things but didn't actually look at how people use the system in the real world.


I've found that the best programs are the ones under the control of a single benevolent dictator. They can maintain their focus and consistency much better than any other structure.


I Concur. Even though i am still not a fan, since his psrsonality was really offputting to me, Steve Jobs way able to do that. And he even was able to put it into words: "Stay hungry". Complacency begets Mediocrity at best (or worse).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: