Salient features of Agile Methodologies are:
Traditional software engineering methodologies attempt to create an accurate project plan before starting with development. Due to this exhaustive planning, such methods are reluctant to accommodate change. However, business environments are highly susceptible to change. Agile methods can accommodate the un-certainties in the business environment by adapting to the changes rather than resisting them.
Agile methods assert that no process will ever make up the skill of the development team, so the role of a process is to support the development team in their work.
Intermediate versions of working software give the best indication of meeting end-users' expectations. This is especially true when the client is un-certain of the requirements. Thus, agile methods stress that working software must be released for review early and repeatedly, in short iterative cycles.
Development teams following agile methods always include the client as a team member. Extensive collaboration, transparency and trust amongst all the key stake holders is essential to successfully develop software using agile techniques.