Agile Methods propose a new way of looking at software development that questions many of the beliefs of conventional Software Engineering. Agile methods such as Extreme Programming (XP) have been very effective in producing high-quality software in real-world projects with strict time constraints. Nevertheless, most university courses and industrial training programs are still based on old-style heavyweight methods. This article, based on our experiences teaching XP in academic and industrial environments, presents effective ways of teaching students and professionals on how to develop high-quality software following the principles of agile software development. We also discuss related work in the area, describe real-world cases, and discuss open problems not yet resolved. and governmental agencies. However, a large number of organizations have a long history of using oldstyle, heavyweight methods and many programmers and managers were educated to develop software in a bureaucratic way in which software quality is usually not the top priority. The Manifesto for Agile Software Development  indicates the four most important aspects of agile methods that differentiate them from conventional software development. Agile methods value: • Individuals and interactions over processes and tools; • Working software over comprehensive documentation; • Customer collaboration over contract negotiation; • Responding to change over following a plan.
To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.