I'd say making money consistently is more about being a good businessman than just being a good developer. Understand your market, validate demand before building (and build incrementally), have a clear sales/marketing plan and choose trustworthy partners carefully.