Software development methodologies have advanced since business requirements became more demanding. Agile methodologies came into existence after the need for a light way to do software development in order to accommodate changing requirements environment. Agile methodologies rules and practices require communication between the developer and the customer. Under pressure to stick and adhere to the Agile Methodologies principles and best practices, developers must be ready for any change at any time, while also having to maximize Stakeholders Investments. The main aim of agile methodologies is to deliver what is needed when it is needed and nothing more. 

Agile Methodologies include a set of software development approaches. They have some variations, but still they share the same basic concepts. The main agile methodologies that are being used today are Extreme Programming (XP), Agile Modeling, and SCRUM. Extreme Programming (XP) is the coding of what the customer specifies, and the testing of that code. Agile Modeling defines a collection of values, principles, and practices which describe how to streamline modeling and documentation efforts. SCRUM is an Agile Methodology framework structured to support complex product development. Scrum consists of Scrum Teams and their associated roles, events, artifacts, and rules. Each component within the framework serves a specific purpose and is essential to Scrum’s success and usage. Scrum is a simple low overhead process for managing and tracking software development. It attempts to control this 'chaordic' process using a project management framework that involves requirements gathering, design and programming.

Agile methodologies are not best suited for all projects. When communication between the developer 
and the customer is difficult, or when the development team does not have experienced developers, Agile Methodologies will not give the best results. These methodologies exhibit optimum results when there is a strong communication between the developer and the customer, and the development team compromises skilled team members. When there is a chance for misunderstanding the exact customer requirements, or when the deadlines and budgets are tight, then Agile methodologies are the optimum approach for a solution.