Agile software development is an approach to software development under which requirements and solutions evolve through the collaborative effort of ... source