Another source of such mistakes is having too small a team tackling too big a problem, and being unable to ship a solution on time, because you tackled the
wrong problem.
That's typical when you approach a fairly mature category where the feature set is pretty entrenched, and people have very set expectations. To them, every feature is a must have.
The lesson here is that.. you probably shouldn't ever do that unless you have a big enough differentiation that allows you to ship just that differentiation and delivers outsized ROI for the customer, without building all the other expected stuff.
In other words, you need to unbundle the part of the value chain where you can deliver the most leverage and refactor everything around that — and not commit the biggest mistake which is rebuilding the whole thing expecting that you're going to add your "killer feature" as the cherry on top. You'll never get there.