Just from my own experience over the past twenty-odd years…
10. Forgetting to document requirements with enough detail.
9. Failing to clearly define and meet milestones, metrics and deliverables.
8. Letting their own preferences cloud the direction of a customer-oriented product.
7. Worrying about programming language more than the end result.
6. Rushing a product to release (not enough beta).
5. Skipping alpha and going directly to beta or final (refinement of mistake #6)
4. Not enough error checking and exception handling.
3. Choosing the wrong licensing model.
2. Losing sight of where their product will fit into the market or even within a customer environment.
1. Failing to thoroughly document their code and all aspects of the product.