Adaptive rather than predictive
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.
- People oriented rather than process oriented
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.
- Early (Short) Releases
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.
- Client collaboration Clients are a part of the development team
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.