There are a lot of reasons why your website or app might be a failure. So many in fact that most, if not all websites and apps, probably 99.9% of them, except those we all know and use day-to-day, are failures. They'll never be seen or make any money for the person who has invested time and money into them. The internet, in general is designed around archaic user experience theories . Considering that even Google, a company who can invest billions of dollars into user experience, sunsets more of their products than anyone, is a testament that even a huge company can get it wrong when it comes to developing an online experience. So why is that? And how do you develop a successful product? That's loaded. But here is one way to get a good start.
When you first decide to build a website or app, everyone has these lavish ideas of how successful they will be, how interesting they will be, how beautiful and better they will be than others out there. Most websites are put online and apps in stores to make money of some kind. Whether it is through direct sales or lead generation. The problem with this is that it sets an expectation that can not be reached by just putting a website or app online. The second problem is that you are hiring a clueless designer / developer to do the job.
Web designers and developers are really good these days at designing flashy things. These experiences you wouldn't think just won't work. If it's beautiful then people must want to use my website or app. That's not the case. Beauty only gets them in the door. What's missing is the developers lack of experience in understanding users, their needs and behaviors. A good 99.9% of developers in the world do not know the first thing about making a web site human-centered or cater to human instincts. They are literally only selling the pretty design, collecting their paycheck, and moving on. The problem is, this doesn't help you in the finance department. You have a nice looking website, but it just doesn't work. You aren't getting any leads, people aren't staying on it. It's a big waste.
Admittedly I used to be one of those web developers. I used to think that a good design will get sales. Then I started testing those designs in focus groups. I began to realize that methodologies, design elements, mentalities, assumptions that I have adopted and used over many years just didn't work in application. It was so blatantly obvious that, while I thought I was clever, they just didn't work. The scary thing about this, is that 99.9% of the web and app developers out there are using this same methodology; go with what they THINK works because they have used it for many years, without really basing their assumptions on proven experiences.
As an example many shopping cart websites will have a progress meter that shows what step in the process you are currently at in relation to the other steps as you check out. Most of these are merely for design and are not actually functional. You can't click them to navigate back to previous points in a shopping cart. If you look at user patterns in shopping carts, you will see that most users toil with whether or not to buy things, before they make the sale. Only 1% of users go to a website and directly purchase what they need and leave. If it is hard for those who are toiling to go back and forth in your process then they will abandon the cart. But no worries if your website fails here, so does Amazon's.
Another example is with the trend in using icons for everything. We think that because we know what they mean and in what context we are using them it should be clear to users but generally they have no idea. So why not use words?
These are just two small ideas, a drop in the bucket when it comes to the obvious mistakes that designers and developers make when creating a user experience. These are all based on assumptions they have made over many years without testing them for accuracy.
I've talked to many companies who develop apps and websites and all of them have their own set of rules; their own way of doing things. They also have their own set of tools that they use to build websites and apps. Each and every one of them believes that they have all of the answers, that their "stack" is the best to use. They equally believe that their theories on how to design something, why to put a button here instead of there, works. The sad truth is that 99.9% of these studios have never user-tested the things they have built, ever, to validate their assumptions. What's more concerning is that these people are sharing their designs on the internet, and other people are using their theories and assumptions, adopting them and spreading the bad practices.
So how do you avoid wasting money and building a website or app that fails? You do user testing. Not just surveys and analytics. You watch someone use your website physically. You watch them when they have issues, you watch them when they have successes. You watch them when they get frustrated and want to leave and you design to fix it. Don't just take your designer or developer's word for it.
In closing, I said previously I used to be one of these designers / developers. I could build you a flashy website, but I couldn't guarantee that it would work or make you money (I was just a little more up front about the last part than most are). I could only guarantee that your friends would say "oh that's a nice website" and that it might do something for you. That's all any designer and developer out there can really do for you these days. Thanks to my current job, I have built an extensive experience around analyzing, testing, and using focus groups to help me destroy my wrong assumptions and create products that are human-centered and cater to human instinct instead of working against it. Because that is the only way you will go from having a website or app that is a bust, to having one that makes you money.