For a couple of years now I've noted down things that annoy me in my day-to-day life. Once you start doing this you realize there's a lot of friction that you just ignore because (a) it's common, and (b) there's not much you can do about it so you adapt to it. Sometimes the reason for this friction makes sense, it's hard to build new things and can be prohibitively expensive to fix them. But a lot of the time solvable problems persist because no one took the time to solve them. Here are three such problems I've encountered recently.
Maps Don't Load As Smoothly as Games Do
Go play a game like Europa Universalis IV. The UI is basically a souped up version of Google Maps. But it feels so much better. Zooming in and out doesn't cause blank tiles to appear while the application waits for them to load, neither does panning. More subtly, the zoom and pan controls just feel better. Why can't maps be more like games? Once users know what region of the map they're looking at, they mostly are going to keep looking at that region. Why can't the mapping software preload adjacent tiles? Then zooming or moving around the map won't require hitting the network (in a way that is visible to the user) unless he zooms way out and focuses on another part of the map.
I track my workouts with paper and pencil. Despite all the apps for workout tracking out there they all are worse than paper for the simple reason that hunching over your phone while you're at the gym is annoying. I want to be away from technology while at the gym, not actively engaged with it. But now that lots of people have smart watches it should be easy to track your workouts unobtrusively.
When I go into the gym I know exactly what exercises I'm going to do, how many sets, and how much weight. The reps will sometimes vary depending on how tired I am or where I am in a training cycle. Maybe the weight is variable too if I fail a set. It should be possible to track this in 1-2 seconds using gestures on an Apple Watch app.
Simple Application Architectures are Hard to Configure in Cloud Providers
Let's say you're building some sort of web app or web service. Since you don't need huge levels of scale yet your architecture looks like this: a load balancer sitting in front of two servers (two instead of one so that you can do zero-downtime deployments), with those servers connected to a database (replicated to some backup DB somewhere else) and maybe a Redis cache too. While it's not particularly hard to set this up using a cloud provider, it is tedious, time consuming, and you will probably make at least one configuration mistake unless you've done this sort of setup frequently. This is probably the modal web app architecture. It's used all over the place and is probably what most services start with. It should be dead simple to setup. Visual GUI configuration tools get a bad rap but they're perfectly suited for this problem. All the user cares about is that his servers and databases can (a) talk to each other securely and (b) handle the expected load. A well designed visual interface could reduce the time to do this configuration to just a few minutes and make it easily inspectable for the case when something is misbehaving.