Designing for the bad days of your users.
The real test of design is not how it works on a good day. It is whether it still holds when the user is stressed, interrupted, overwhelmed, or simply not okay.
If your design needs patience, focus, and politeness to work, it will fail the moment it meets reality.
Most products are designed for a good day. A day when the user is calm, the systems are working, and no one is rushing or panicking. Basically, the most ideal state as humans, and we know how often we actually have those days.
In reality, that’s not how products are used. On the ground, especially in complex services like healthcare, people come to products when something is already alarming. Someone is in pain or needs an instant solution. Someone needs to act fast, and a few seconds' delay is simply unacceptable.
Yet we continue to imagine workflows as if users are operating in isolation, in a vacuum, untouched by emotion, noise, or pressure of the outside world.
Over the years, this is what I’ve observed and typically keep in mind when designing human flows. Here are a few scenarios worth holding close while designing.
1. Design for the user who is not okay
I’ve rarely seen products used in calm, controlled conditions.

Most real usage happens when someone is tired, overwhelmed, or emotionally stretched. Especially in services like healthcare, people come to systems when something needs immediate attention and action.
Yet we keep designing as if users are emotionally neutral and fully present.
If your design needs patience, focus, and politeness to work, it will fail the moment it meets reality.
As designers, we must imagine the user who is overwhelmed, not the one who is cooperative.
2. Assume users will be interrupted, because they will be
Real life doesn’t respect flows.
People get interrupted mid-task. They leave the screen midway. They come back later, sometimes hours later, sometimes another day. When they return, they may not remember what they were doing or why.
Designs that expect clean, linear journeys are fragile.
If a flow breaks when the user steps away for two minutes, the problem isn’t the user. It’s the design that needs to be directional and forgiving.
Designing for interruption is one of the most human things we can do.
3. Reduce thinking where emotions are already high
On stressful days, people don’t want to “figure things out”. They want clarity.
They want to know:
- What is happening?
- What should I do next?
- Did I do this right?
An extra decision, an ambiguous label, a hidden action adds cognitive weight to an already heavy moment.
Good design steps in and carries some of that load.
If users have to stop and think hard at critical moments, we’ve already asked too much of them.
4. Test your designs in messy, imperfect conditions
Clean usability tests tell only half the story, or even less.

Real environments are noisy. People are multitasking. Systems are slow. Someone is always waiting for something else to load, be approved, or be responded to.
Some of the most important insights I have found didn’t come from what users say, but from what they struggle with silently.
If a design only works in a controlled setup, it’s not ready for the world. Simply observing people in their real environments often reveals far more about their reality and how the design truly performs.
As designers and researchers, we need to get comfortable observing discomfort.
5. Treat failure as normal human behaviour
People will make mistakes. Systems will fail. Instructions will be misunderstood.
This is not an edge case. It’s the default.
What matters is how the design responds when something goes wrong.
- Does it help the user recover, or does it make them feel stupid?
- Does it guide them forward, or abandon them when they need support?
Human-centred design is not about preventing all errors. It’s about making errors survivable.
What can we do instead?
Designing for reality doesn’t require grand frameworks or perfect research setups.
The bare minimum we can do as designers and researchers is :
- Imagine users on their worst day, not their best, and design workflows with real constraints.
- Design for interruptions and expect broken workflows by default.
- Remove thinking from emotionally heavy moments and make the design more intuitive.
- Observe designs in messy, real environments and get comfortable with users not understanding your design; that's where improvement lies.
- Guide users when things go wrong and design thoughtfully for errors.
Closing thought
Designing for humans means accepting that humans are messy, emotional, and distracted.
When we design only for ideal scenarios, we’re designing for a world that doesn’t exist.
The real test of a design is simple:
Does it still hold up when the user is not in a good state?
Thank you so much for reading! I genuinely believe the best insights come from shared discussion. If this article sparked a thought or reminded you of an experience, please do share. I’d love to hear from you.
And if you enjoyed the read, help others discover it and motivate me :)