 When to release? 
aditya: That depends on what you're trying to build. For most startups, getting early users (not a full launch but a limited alpha/beta) is key in developing a good product.Sure, given more time you could just keep perfecting the product to your standards, but if you don't have a good idea of EXACTLY what you're building, why not do a limited release and work with the feedback that these alpha users give you to improve your product as opposed to waiting for a really long while before you release something that you (not the market) thinks is perfect in every respect, that sounds like a really good way of failing.Yes, you're going to lose some people who will hate the product and find it useless, maybe they're not your target market. Maybe they are, if they are, listen to the feedback that they give you and hopefully retain them. If not, well, you don't care about them anyway.3-4 year long dev cycles are generally not a good idea, since user driven development is key in making good products.You can do it if you're Apple and you have the in-house expertise and market research to know EXACTLY what your users want, but if you're a scrappy startup, you have nothing to lose by launching early, and often and failing fast.