Your users don't understand formulas
You've probably noticed that the heart icon on Twitter and Instagram represents the same action: indicating that you like something. This is an example of Jakob's Law, a principle based on the idea that, since users spend most of their time using other applications, they expect your application to behave the same way.
Using these patterns helps improve the experience, making products easier to use and reducing the learning curve.
That's why it can be tempting to directly replicate interaction patterns in any product, hoping that familiarity alone will be enough to guarantee usability. But like any design principle, you need to consider the nuances.
Our case
A couple of months ago, while working on a new feature, we decided to start by implementing a very common interaction pattern from many other applications, adapting it to our context; we weren't reinventing the wheel, so we expected our users to understand it easily. However, when we started testing with them, we realized that reality wasn't so simple.
Although the pattern was well-known and worked in other applications (or seemed to work—a topic that would deserve its own post), it didn't work the same way in our application, as our users weren't completing the flow as we expected.
At this point, we reconsidered whether the path we had followed made sense. Have we really understood our users' problem? Are we adapting to our specific context?
Listening to your users is the first step toward a good solution
We decided to refocus on listening to our users to understand how they were interacting with our application and where the challenges might be. Through interviews and user testing, we realized the complexity that this new feature added in our purchasing context—what initially seemed like just another thing to consider turned out to be the main problem to solve.
During testing, we iterated the flow adapting to what our users expected, not to what others had applied; we even iterated on the fly, based on what we discovered with each user to test it with the next one.
Thanks to everything we learned, we arrived at a solution that responded to our users' needs and better fit our specific context.
In the end, design isn't about applying universal formulas or copying what others do, but rather reflecting on a problem to find a solution that makes sense in your context.