Lately there has been much talk of agile development in the IT industry. Agile software development is a set of principles for software development in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development, early delivery, and continuous improvement; and it encourages rapid and flexible response to change.