I think that there are two major ways that many people screw up execution. The first one is not being able to move on from a project that clearly isn't working, while the second is quitting too soon. These mistakes seem fairly obvious from the outside, but people constantly make them, so it's probably worth a brief discussion. It actually seems like a significant percentage of unsuccessful entrepreneurs are currently in the process of committing one mistake or the other. I can even admit to having made both of them in my entrepreneurial career - hopefully you can be self-aware enough to avoid this pitfall.
Not Being Able To Move On
We've seen it all too many times. An entrepreneur is dedicated an idea that clearly isn't working, but he refuses to change directions and work on something else. He thinks that if he can just hold on for a little longer, he can make it successful. Maybe the customer feedback is clearly telling him that it isn't working, or possibly he hasn't been willing to get customer feedback. If you have been working on something for years without seeing any progress, you are probably falling into this trap. I once worked with a guy who had been working on a product for three years. In three years, it had failed to take off, and he refused to work on something even a little bit different. He just kept working on the same bad idea, and it kept not working
I have some bad news for those people who are "just hanging on for a little bit longer." While I admire your tenacity, it may eventually be your downfall. Within three to six months after launch, most of the successful products that I have seen have achieved some sort of traction. Sure, there have been successful teams that worked on a number of ideas before finding one that worked, but once they locked onto the right thing, they quickly achieved some sort of validation.
Why do we see this unwillingness to give up? In psychology, there is a principle called the confirmation bias. People tend to seek out evidence that confirms their existing beliefs, and rarely attempt something that actively negates them. Therefore, it is impossible for them to try anything that will invalidate their idea - it would just hurt the ego too much. If you suspect that you may be falling into this trap, I encourage you to do an experiment that I colloquially call "murdering your baby."
Murdering Your Baby
If you want to murder your baby, you have to be willing to do something extreme that will either prove or disprove your product's core hypothesis (I wrote about this in the past). This often involves doing customer development with unfriendly customers (not friends or family), and paying close attention to whether those customers actually want your product. It's actually not hard to tell whether people want what you are building. They will rarely say "I hate this," but if you pay close attention to how they interact with your product of service, you can determine whether or not it is useful. If people don't care about your product, then it is clearly time to make a change.
So there is an important addendum to this - do it RIGHT NOW. I don't care if your product is ready. I hear so many things along the lines of "people will love this product if I only add one more feature." If you don't add that feature, people will still love the product if all of the other features are dead-on. Part of building an MVP (which you are doing, right?) is figuring out the minimal feature set. I'm not saying that you need to do a full launch for your product before it is ready - just get it out there and show it to real customers. If people truly don't want your product, you are doing yourself a favor by learning that early. You can spend your time building something that they really do want.
Quitting Too Soon
So the counterpoint to this is when people quit too quickly. If you are pivoting every five minutes, you probably haven't given things enough time to shake out. Seriously, once you build a product, you need to put it through validation before deciding whether or not to move on. I have even seen people say "this isn't going to work" and move on, even though customer validation was pretty good and there were no signs that they should be quitting. This trap usually happens when the product prototyping cycle is nearing completion, and it is about time to have real people start using it.
I think that this is an ego thing as well. A lot of founders repeatedly kill products to avoid having to ever face invalidation. If you didn't launch it, then it never actually failed. There is no ego in startups - statistically speaking, you will fail every time. You are doing a startup because you think that you can beat those odds, but most likely you still won't succeed this time. The way to succeed is to release fear of failure, and the only thing that is worse than failure is not showing up in the first place.
Lately I have been hearing the line "this isn't a VC business" quite a lot when associated with killing a product prematurely. Killing your idea because it "isn't a VC business" is rather stupid. Here's the reason - VCs have ABSOLUTELY NO IDEA what a pre-revenue company will eventually amount to. Sure, a lot of pre-revenue companies have stupid ideas, but a lot of successful companies started with stupid ideas, and figured things out later. VCs are just making reasonably blind guesses, especially with pre-revenue companies.
If you can show a bit of success, then the VCs will be happy to invest their money. I know numerous people who worked on ideas that weren't "VC businesses", grew them into profitable companies, and suddenly they managed to get VC investments at rather attractive valuations. This is not to say that plenty of successful companies didn't get started with the help of VCs - just that securing VC investment early on isn't the ultimate predictor of success.
How To Know When It's Time To Quit
Basically, when you have good hard evidence that your product isn't going to work out, then it is perfectly reasonable to move on to something else. However, you need to give an idea enough breathing room to succeed before throwing it out. One rule of thumb that comes to mind is to build an MVP, put it out there, and get it to the point where people are willing to use it. Once you have the product in the hands of real users, you have three to six months to make it succeed. If you haven't gotten even a little bit of traction in that time, you may want to try something else. However, if you have spent much of that time talking to your customers, you will most likely have figured out what they actually want you to build, and the next product can be your big success (and failing that, the one after that).