Agile development7 is a group of programming-centric methodologies that focus on streamlining the SDLC. Much of the modeling and documentation overhead is eliminated; instead, face-to-face communication is preferred. A
project emphasizes simple, iterative application development in which every iteration is a complete software project, including planning, requirements analysis,
design, coding, testing, and documentation. (See Figure 2.8). Cycles are kept short
(one to four weeks), and the development team focuses on adapting to the current
business environment. There are several popular approaches to agile development,
including extreme programming (XP)8, Scrum9, and dynamic systems development
method (DSDM).10 Here, we briefly describe extreme programming