I’ve worked on a bunch of projects and had a few that were reasonably successful. First thing I learned is that engineering is only half the battle. Marketing, support, and administration take up just as much time in the long run.<p>Also, architecture matters. It feels like you’re saving time cutting corners early in a project but every time you do it you’re increasing the complexity adding more features later. The trade off of course is that if you expect a perfect architecture you’ll never ship anything.<p>One other thing, build products that you want to use, but don’t expect that that automatically means there’s a market. Your judgement as the product’s creator is extremely important and users don’t know what they want, but products that take off virally are hard to predict.
The first thing that came to mind reading your question was that I've never had a perfectly successful project. There are always failures along the way - even when the project meets the goal. So, thank you for giving me that little gem of a truth!