Larry Tesler's claim is that every process has an amount of complexity that is simply the job, and that below a certain point you cannot take any more of it away. You can only decide who holds it. Simplifying an interface does not delete the difficulty. It moves the difficulty to the person, usually in the form of something they now have to know, look up or decide before they can start.
The parcel below is going from Hanoi to Lyon. Getting it out of the door needs nine decisions, and each one is worth a number of units — a rough weight for how much thinking it takes. Twenty-four units in all.
Two of those decisions can never reach the app. Only you have looked inside the box. Only you know which of the two saved addresses is the one your cousin lives at now, because both of them were true last year. Only you know whether anyone will be home on Thursday. That is seven units that will sit on your side of the line no matter how good the software gets. One decision can never reach you either: you cannot see which vans still have room, and no amount of patience will show you.
The other fourteen units move. Click a row and it changes sides. Watch the number at the bottom of the bar.
What the app is assuming on your behalf
- which courier takes it — the cheapest courier that still arrives by the date you gave
- which day it leaves — the first day with capacity, which is not always the first day you want
Nine units are on the app and fifteen are on you. The bar is twenty-four units long, which is what it was before you touched anything.
What the app is holding when it holds it
Move the customs value to the app and the app has to produce a customs value. It does not have one. What it has is the price you paid, a currency rate from this morning and a rule about which of those to use. That rule is an assumption, and it is now load-bearing. The four units did not disappear into the software. They turned into a guess that is right most of the time and expensive the rest of the time.
This is the part of the law that gets skipped. Absorbing complexity into the system is not free and it is not silent. It shows up later as a default that was wrong, a field that was pre-filled with something nobody checked, or a support conversation about why the box was the wrong size. The list under the bar is that bill, itemised.
Pushing complexity the other way is not free either. Every unit you hand back to the person is a thing they have to work out standing in a hallway with a parcel and a phone. The nine rows are the same nine rows either way. Nobody in this picture gets to skip a decision.
What it costs you
An interface that looks simple has usually moved work, not removed it. The screen with two fields on it is often the screen that assumed nine things. Whether that is good design depends entirely on whether the assumptions hold, and you cannot see the assumptions on the screen.
The floor is set by what only one party knows. Seven of the twenty-four units here are not a software problem. No feature reaches inside the box. Work out which of your decisions are like that before you start, because they are the ones no roadmap will ever clear.
Complexity you absorb has to be maintained. A guess about box sizes is a rule somebody now owns, and it will be wrong the first time the catalogue changes. The person who chose the box was doing that maintenance for free.
Watch for the version where both sides pay. A wizard that asks you nine questions and then still makes you check its answers has moved the complexity onto the app, kept it on you as well, and made the bar longer than it started.
The two extremes are the honest part of this. Push everything to the app and you are still holding seven units. Push everything back and the app is still holding three. There is no arrangement of these nine rows that gets either side to zero, and the kitchen scale by my front door exists because of row three.