Discussion about this post

User's avatar
Will Turman's avatar

Great article!

Error handling and exposure are challenging to even implement much less *get right* in a piece of software - especially recently as software increasingly exists as productivity increasing glue between applications and services.

(Perhaps overly?) Defensive programming with consistency in delivering actionable information to users at not only a level of understanding, but a level at which *they care* is crucial. If you’re maintaining cURL you’re probably going to want to expose corresponding HTTP error codes - if you’re building a website your users probably don’t care about an HTTP 401 or 403 - they should just be shepherded to a login page.

Microcopy is a term used to capture those small pieces of text that guide users through an application or software - including error messages. It’s hard to get right, and it’s great to think about them across the various levels of technical understanding of a piece of software.

I’ve tried to build software to a point where I don’t get phone calls - basically aiming to deliver decipherable predictable decently documented tools with an error implementation that makes them supportable by the people with an intermediate understanding of the space between users and myself.

Expand full comment
Ljubomir Josifovski's avatar

Very good - thanks for sharing this, like it.

This recalls to my mind "everyone should be treated the same, even if they are not the same." People are different - yet we should treat them all the same, as if they are the same.

Likewise in your case - we should explain to people as if they can understand, even if maybe they can't. I subscribe to this principle. For one thing, we may be surprised - one never knows. For another, how are we to learn new things, if we are only told as much as we already know, but not more.

Yes the teller runs the risk of being overly detailed and ultimately boring. For if the interlocutor doesn't understand, they may get bored and even frustrated. That's fine. My ego can take a hit, I'm fine risking it. When I notice I wrap quickly in a sentence and shut up. Not a biggie.

Amusingly, people find similar when teaching computers new things they have never seen before. (check Jeff Clune lectures, talks, podcasts interviews) Teaching them too easy things they already know how to solve - is a waste of time, they already know, so learn nothing new. Teaching them too hard things is a waste of time too, because they don't solve it fail to get to the solution. But we want them to learn to discover a solution on their own, independently. Not just memorise and in the future pattern match an answer they blurt out. The aim of their research is to teach the model how to learn on his own. Not just what's the right answer is, but to learn the process by which we humans find the answer.

There is a Goldilocks zone, where the system is at A, and we want it too get to B on its own. If B is about 20% away, 20% more difficult, but no more than that, then the model stands a non-trivial chance of discovering in its own, the stepping stones that allow it to get from A to B successfully. And discover that on its own. That part is crucial. They are training the model how to learn on its own. So them laying the stepping stones is no good, is counterproductive. The aim of the exercise is for the model to learn how to go on about discovering the stepping stones on its own.

Expand full comment
12 more comments...

No posts