The fundamental issue is that it binds the server to the client, who must understand HTML structure. It also makes it more difficult to reuse the endpoints in different ways or for new applications.
Returning data and letting the client render it decreases coupling and increases flexibility/testability- you can run unit tests on the client for mock data, and run unit tests on the server to test the desire
Probably the biggest cause of failure is not making something people want.
The biggest reason people do that is that they don't pay enough attention to users.
For example, they have some theory in their heads about what they need to build. They don't go out there and talk to users and say "What do you want?" They just build this thing and then it turns out users don't want it. It happens time and time again.
> “Look after the customers and the business will take care of itself.” -- Ray Kroc
To find customers...
* Ask for friend referrals
* Network
* Meetups or conference
* Partner with complementary businesses
* Email marketing (get the list of growing startups in your area)
The biggest theme discussed in the book is that over the past few decades, the planet has made tremendous change, but most people are oblivious to the possibility because they have warped opinions.