Recently, I've started reading this book named Designing For Emotion by Aarron Walter and I've made it a point to read it during my free time and so far I have completed three chapters of the book.

In the first chapter of the book, I found a really interesting sentence, written by the author:

Keep in mind that ignoring human needs is not a history we are doomed to repeat. Through our designs, we can see and connect with other human beings.

Do you think a good software builds strong connections with other human beings? Well, we have good examples like Facebook, Google, Netflix, and Microsoft are proof that they have a massive pool of audience who likes to use their products on a daily basis.

In this article, I will share some of my thoughts on how empathy can be used to build and design powerful applications.

User Interface Matters

To any user, whatever is displayed on the application matters the most, in this case, it's the User Interface of an application. If it doesn't allow a user to perform their desired task, it will end up in their Recycle Bin.

Fig. 1: Apple's Ping

There are many examples in the book and one of the examples is about Apple's Ping (refer to Fig. 1), which was an attempt in creating a social network on iTunes but it turned out to be unsuccessful as users learned that they weren't able to share songs on Facebook or Twitter and it lacked basic features. As a result, users didn't come back to it again.

In my opinion, a good user interface should be relatively easy to use and be more reliable in terms of pagespeed or simple and easy navigation for the user. I mean, think about it, if your user is able to complete their desired task and that puts a smile on their face, the user will share their experiences to their friends and you'll get more people to use your application, thus making your application more powerful.

A Universal Design

A door knob comes with multiple designs such as rotating knobs and levers but what matters the most to the people? The design or the functionality? I personally prefer a lever knob over a rotating knob as I find it quite annoying. Weird analogy but the point is, it should just open the door, nothing fancy.

Similarly, when we build our software, by following proper techniques, we can choose to make it beautiful but also choose to make it accessible and functional for everybody, at all costs.

Listen to your users

When building and designing a piece of code, it should and always be for the people that uses or will use your product. By understanding what's important to the users, it can help you get to the core of the problem and surpass technical challenges easily.

This can be achieved by gathering user requirements in the form of surveys, user feedback and A/B testing. Remember, software is just an expressive form of bringing your ideas to life and writing code is building on top of the idea to achieve a certain goal but empathy is the secret sauce to the success of your application.

UX is not UI

What's the first thing that comes to your mind when a friend of yours tells you: "Hey, I'm working as a UX Designer at UberCoolCorp!"? Does he build User Interfaces? Is he a Visual Graphics Designer? Neither, actually!

User Experience is not about how your application looks but how it feels and makes it simple and easier to interact with your users. I'd like to share an interesting quote from Usabilla's UX Expert, Erik Flowers:

UX is the intangible design of a strategy that brings us to a solution.

User Experience encompasses a lot of elements such as Information Architecture, Interaction Design, Usability, Product Design and so on. Below is a picture for your reference about why User Experience is not User Interface:

Fig. 2: How UX wants to be seen.

Although, it does have a lot of elements, UI is a huge part of the design process because strong visual aesthetics are still essential in UX, which is also one of the aspects of your user's interactions with the application.

Progressive Enhancement

A strategy that is known to take you on journey from simplicity to complexity. It's about starting off with a strong, practical foundation and then building on top of it. It's easier to maintain and make small yet incremental changes, renders the application to be more robust and it works for all users.


Well, I'm sure there a lot of elements to this topic but I thought of highlighting some of the most important parts of building and designing software with empathy. As engineers or developers, it is our job to ensure that our final product is usable and accessible to our end-user.

Hope you liked reading this article!

Stay tuned for more!