Methodologies for designing software that have proven to be more effective in dealing with business realities such as changing requirements during development. It promotes industry best practices that emphasize teamwork, customer involvement and the frequent creation of small, working pieces of the total system. Contrast with waterfall development. See Scrum, XP, iterative development and AgileAlliance.