I. Introduction
Software Engineering is a process which pertains to designing, developing, testing and sustaining software. It is of utmost importance because software is an ever-changing and complex sector which requires an organized approach to establish a highly reliable and fine quality end product that meets the demands of the users. Furthermore, Software Engineering aids to manage risks, costs and schemes of the software development process in the long run by continuous testing and feedback. In early days of software engineering (late 90’s and early 2000) Waterfall method was used in the industries. In the last decade, time to market and flexibility in accommodating customer requirements became very important aspects in software project delivery [1]. Agile methodology has capability to deliver incremental product as desired by the user, meets the timeline requirement and also can accommodate the late change requirements in its framework itself. With these advantages, agile method gained its popularity among all software organizations. The agile program has 4 principles [1]:
More focus on manpower and interactions than tools.
Customer collaboration holds a higher value than negotiation.
Working software is more vital than extensive documentation.
The procedure should be open to change unlike blindly following a plan of action.