← Back
[W] Writing

What makes software feel resolved

My homepage says I work on the small details that make software feel resolved. I wrote that sentence a while ago and never explained it, so here is what I mean.

Software feels resolved when it answers your question before you finish asking it.

You click something and wonder if it worked. You open a menu and wonder where it went. You see a number and wonder if you can trust it. Each of these is a tiny open question, and a good product closes them so quickly that you never notice you asked.

The screen is the small part

A mockup shows one moment. The product has to survive all the others.

Here is a single button. Most designs show the first one, and the rest get decided later, often by whoever happens to be building it that day.

SaveThe mockup
SaveHover
SaveKeyboard focus
SavePressed
Saving…Pending
SaveDisabled
Try againFailed
One button, seven states. Only one of them usually gets designed.

None of those states is a nice extra. A person will meet every one of them eventually, and each is a chance to leave a question open.

Timing is part of the answer

The clearest example I have is a switch in HextaUI.

You flip a setting and it has to save to a server. The obvious design shows a spinner while it saves. On a fast connection that spinner appears for a moment and vanishes, so a simple action now has a flicker in it.

So the switch flips right away, and the spinner only shows if saving takes longer than 400ms.

Spinner every time, fast save
…On
400ms rule, fast save
On, straight away
400ms rule, slow save
OnOn, with spinner
0400ms1s
What's on screen after you tap. The save times are examples. The 400ms threshold is the real one.

If it fails, it flips back. Ikiform's dashboard switches do the same: they flip right away and only revert on failure.

Nobody will ever compliment this. That's fine. They just won't have a reason to doubt the switch.

What this looks like in practice

Going back through my own changelogs, almost every detail I care about turned out to be the answer to a specific question.

The question The answer I shipped
Is this thing broken? HextaUI shows a loading state behind block previews instead of a white frame.
Did the app freeze? Diskzy's scan screen shows its labels at once instead of a blank screen.
Where did that popup go? HextaUI's HoverCard keeps the side it first opened on instead of flipping.
Where am I? Focus rings stay visible inside scrolling Tabs and Tables.
Can I tap this? Small HextaUI buttons get larger touch areas without looking any different.
Why did you leave this one out? Diskzy says so, right on the row.

That last one is my favourite, so here it is.

Diskzy's Clean up screen. Two DeviceSupport folders are ticked. A third, iOS 26.0 DeviceSupport, is unticked with the note: one of the two newest, kept.
Look at the third row under Developer junk. It's unticked, and it tells you why: "One of the two newest, kept."

Without those five words, an unticked row in a cleanup app makes you wonder if it's a bug. With them, you know the app thought about it. It's probably the highest trust per word in the whole product.

Resolved isn't the same as polished

Polish is easy to confuse with this, because the two often use the same tools. Motion, shadows and blur can all answer a question. They can also just be there to look expensive.

I use one test now. If I removed this detail, what would the person no longer know? If the answer is nothing, it's decoration. Sometimes decoration is good, and I like it on a landing page. I just don't count it as finishing the work.

The opposite is also true. Plenty of software with no visual flair at all feels completely resolved, because it never leaves you wondering.

How to find the open questions

You can't find these by looking at a design file. You find them by using the real thing, slowly, on a bad connection, with a keyboard, with the longest name in your database.

Every time you hesitate, write down what you were wondering. That list is the work.

The goal is a product where you never have to stop and wonder, and that's what I mean by resolved.

Next