There are two kinds of client applications: The first kind has a “refresh” or “reload” button to make sure your app’s in sync with its server’s view of the world. The second kind is broken.


Of late, I have to deal regularly with several apps, notably including an emailer and a car-sharing service, that lack such a button. I can imagine why — a customer-focused product manager said “Steve Jobs taught us that fewer controls are better and we should just take care of making sure we’re in sync with the cloud. So lose the button.”

Except for, it doesn’t work. Apparently nobody in the world is smart enough to arrange for flawlessly reliable hands-off client/cloud synchronization. There are times when you just know that what you’re seeing on the screen is wrong and if the stupid app would just take your word for it that its world-view is stale and ask for a brain transplant from its server, things would be OK.

The car-share app is particularly aggravating, showing me a map dotted with nearby vehicles when I know for sure that this time of day I’ll be lucky if there’s even one within walkable distance. Since it totally refuses to sync, I have to switch to the Android “recents” screen and kill it. When I re-open the app, it’s OK.

Why might this happen? Well, maybe switching from WiFi to cell data (or vice versa) left some layer confused about network truth. Possibly, because your app was written in a programming language with multiple threads and shared mutable state (silly, silly programmer), the cache is malfunctioning. Maybe that same thing happened on the server. Or in the CDN. Or maybe there’s an obscure hiccup in a distant node_modules dependency that you’re tickling.

Dear product managers: Show some humility. When a customer really thinks your app is wrong and they know how to fix it, don’t get in their way.


Comment feed for ongoing:Comments feed

From: Brian (Sep 28 2017, at 09:39)

I love that, "If they know how to fix it don't get in their way". How do we convince every tech company to go open-source?


From: AmigaRulez (Sep 28 2017, at 11:04)

@Brian: Maybe you will evade this, but the logical answer to your question is thus: develop business models for OSS that outperform what you can do with closed source software. That is the currency (ha!) that will convince them. It is also the proof of concept for an all-OSS world.


From: Paul Hoffman (Sep 28 2017, at 12:31)

1) Do not hide the refresh as "pull down on this non-obvious part of the top of the window until you see this non-obvious icon that shows you that you will now refresh". That makes refreshing seem like an advanced feature, and it is also impossible to describe on someone who you are supporting on the phone.

2) The lack of real refresh is a reason why I'm switching from the awful New York Times app to the Washington Post. The NYTimes app is hesitant to refresh; if you nuke it and start it again, you get real fresh news.


From: Matthew Krauss (Sep 28 2017, at 14:40)

@AmigaRulez: That is only "the proof of concept for an all-OSS world" if you have already assumed that the ability to acquire profit is the best criteria for how to structure our world. I have yet to see any evidence that this is the case.


From: Yawar (Sep 29 2017, at 10:26)

Re: the car share app, they use a well-known tactic of showing you that there are actually nearby cars even if there are none. It's an enticement.


From: Tim (but not THE Tim) (Sep 29 2017, at 21:45)

Maybe 'refresh' ought to be a built-in icon in the OS, that calls an API, the API would invoke the 'refresh' code in whatever app is 'on top'. Whenever an app starts, it registers its refresh entry point (OK old term but I don't know what you kids call it) and whenever the top-level window is that app, that is the refresh code that is invoked. If there's no refresh code then an error can be generated.

Simplifies the 'refresh' UX - but does not integrate the look with any app, I guess.


From: D. (Oct 02 2017, at 02:03)

The worst apps are the ones that do include the ability to refresh (either via button or swipe from top to bottom) but then get stuck in the sync process. Quickest way to get out of that is kill the app and hope it is able to sync the next time. Equally annoying to having no sync capabilities at all.


From: Arf (Oct 02 2017, at 20:43)

"You are false data."

(updated from 1970's)


author · Dad · software · colophon · rights

September 27, 2017
· Technology (87 fragments)
· · Web (393 more)

By .

The opinions expressed here
are my own, and no other party
necessarily agrees with them.

A full disclosure of my
professional interests is
on the author page.