Agile practice

Agile means emphasis on prioritization and ROI analysis, short iterations, early deliverables, thus gradually and firmly approaching to the proposed goals.

So what exactly is Agile software development? It is a modern approach to planning, estimating, building, testing, and delivering software. Agile methods emphasize close communication and fast feedback to foster mutual respect and cooperation between customers and developers. The Agile Manifesto describes some basic principles that Agile methods follow, and the following is a summary of the key elements:
  • Deliver working software early and often
  • Do the simplest thing that meets the needs of the business
  • Embrace changes in requirements
  • Maintain close communication between developers and business people
  • Set a sustainable pace for developers, users, and sponsors
  • Reflective improvement (look back at what worked, and what didn't)
The most popular of these methods include Extreme Programming (http://www.extremeprogramming.org) and Scrum (http://www.controlchaos.com). Extreme Programming (XP) tends to
focus on development practices, while Scrum offers more in terms of project management practices.