How to make useful, friendly software for real people.
One of the things I love about making software is that it’s a deeply mental exercise, chock full of heady processes, abstractions, and interconnected pathways.
You can fill your brain with the practical nuts and bolts side of it—research, strategy, prototyping, programming, UI, operations, and more. Lots more.
And if that’s not enough? Indulge yourself in metrics and performance. Every last detail can be tested, quantified and optimized to the fullest. Get high on KPIs and keep your eyes on your ROI!
The problem is…with so much to think about, and so many logistics to obsess over, it’s easy to forget the reason you’re doing any of this in the first place:
🚨️ YOUR SOFTWARE EXISTS TO HELP PEOPLE! 🚨
Designers usually call this notion User Experience or Empathy. I think those names stink. They’re buzzwordy and vague enough to mean different things in different contexts.
I think we should call it what it really is: Designing With Heart.
This isn’t something that’s the responsibility of one specific team in your company, or one step in a process that you can check off. It’s a core value that informs every decision you make.
Here’s what that means in practice.
At the other end of all your strategy and metrics and tech, there are real people. Living, breathing people — who are busy dealing with their weird life, arguing with their kids, trying to figure out what’s for dinner.
When you build software, you’re painstakingly inventing a machine that stands in your place, feigns sentience, and interacts with these people on your behalf so they can accomplish something meaningful.
Your software is not just a bunch of code and UI you smushed together. It’s also a compilation of your best ideas, your best intentions, your desire to help others, your compassion, your feelings, your soul.
Your software is YOU.
(That is, if you believe in the art of it. And you should, if you give a damn about doing it right.)
When you see things in this light, you’ll notice that a lot of software is dull and lifeless.
Consider your bank’s website, or your insurance company’s billing system. They’re probably cold and impersonal. That’s because the designers treated their job as a mechanical sequence: they took a set of requirements, invented imaginary personas, wrote user stories, and sprinted their way through the work until the requirements were met. All head, no heart.
Now, you might think it’s fine for a bank site to be plain and transactional. After all, banking is literally a set of transactions.
But compare that to the experience you’d have with a nice bank teller (if you can still remember what that was like.) The teller smiles at you, asks how your day is going, double-checks that your math is right, offers to help with something you might have forgotten, and gives you a lollipop! 🍭
That’s a transaction with a bit of heart.
OK, so let’s say we want our software to take the place of the bank teller. That means it should ideally provide the same humane, helpful service that they did. But how?
One option is to anthropomorphize the interface and stick some personality into it, which results in UI that’s funny, folksy, clever, sarcastic, or cartoonish.
I think this only works in small doses, because humans have a low tolerance for bullshit. Unless you’re really good at it, jokey and cutesy stuff gets irritating quickly. That’s even worse than just being mechanical, because it’s a waste of time. It’s usually better to cut to the chase.
So if mechanical is bad, and excess personality is also bad…Then what’s good?
The sweet spot is right in the middle. Good software is friendly, casual, approachable — but also serious, gracious, and respectful. Just like a pleasant real-life experience you’d have at a local business.
Achieving this sounds difficult (it is) but there’s an easy trick that helps a lot.
When you’re designing something, imagine you’re sitting in a room, helping a real person with the task at hand. What would you say to them? How would you explain this screen or feature? What advice would you give? What would you tell them to do next?
Say the answers out loud, and then write down what you said. Now you’re 80% of the way there!
If you were helping someone in person, you wouldn’t be austere or formal. You wouldn’t use buzzwords or jargon or business-speak. You also wouldn’t drop HOT SARCASTIC JOKE BOMBS on them and distract them with goofy asides. You’d watch what they do, see where they get stuck, and walk them through it. You’d speak from the heart.
This common sense technique helps you see the forest for the trees. If you struggle to explain something out loud, it’s probably not clear enough. That insight leads you to ask questions like…
- Can we make this interface simpler or more direct?
- Can we reduce or eliminate the choices someone has to make?
- Are we using natural, casual language to explain things fully?
- Is this design respectful of a person’s time and attention?
- Is this something I would personally enjoy using?
- Did we take any shortcuts that benefit US instead of THEM?
- Did we make any incorrect assumptions?
Now your design will inevitably end up clearer and friendlier. That makes your customers happier and more efficient, so they can stop fiddling with software and get back to dinner with their argumentative kids.
That should be the underlying motivation for your work. Not tech, not styling, not stats, and not money. Helping people comes first. The rest follows.
Designing With Heart doesn’t just apply to making a product, either. It can also guide your marketing, advertising, and sales work.
For example, let’s say you want to increase the number of paying customers for your product. (Who doesn’t?) That’s a business-first problem, not a people-first problem.
If you only think business-first, you might blast out canned promotional emails, or show “BUY NOW” callouts all over the place, or interrupt key workflows with interstitial popup ads.
These techniques may well be useful for increasing raw business performance, but they can be annoying and smarmy to customers. That’s the opposite of what we want. So how do we reconcile the difference?
Easy: think about people again!
There’s nothing inherently bad about clearly communicating the value of your product, making it easier to buy it, spreading your message to new audiences, or even asking for referrals or reviews — as long as you do so in a way that’s considerate, honest, and at the right moment.
Don’t interrupt people when they’re in the middle of something, nag them incessantly, or hard-sell them into doing what you want. If you ask for a favor, make it worth their time by thoughtfully explaining why you need their help, and perhaps offering an incentive in trade.
Follow this approach and your promotional efforts won’t just benefit you, they’ll benefit people too.
There’s one more thing you can do to Design With Heart: don’t be afraid to reveal yourself.
People develop emotional connections to other people—not machines.
When your customers can see who’s behind the curtain, and when you speak to them with honesty and authenticity, they’ll be more likely to identify with your message and approach.
If you built something because you fundamentally care about helping people, and you intend to have their back…say it! Put your name on it, tell your story, show your face, and stand behind your work. Share your real personality rather than trying to graft a fake one onto an inanimate program.
Your customers will respond in kind — and that’s the most rewarding thing of all. 💞