Analysing requirements and deciding technologies based on future expansion. Understanding how our users use our products and in what area they are more focused. Performance improvements and analysing suggestions of users and deciding what to implement and when. Estimating man-power and time for various modules. Making sure abstraction and independence of each modules.