Agile Development 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.
Extreme programming11 emphasizes customer satisfaction and teamwork.
Communication, simplicity, feedback, and courage are core values. Developers communicate
with customers and fellow programmers. Designs are kept simple and clean.
Early and frequent testing provides feedback, and developers are able to courageously
respond to changing requirements and technology. Project teams are kept small.
An XP project begins with user stories that describe what the system needs to
do. Then, programmers code in small, simple modules and test to meet those needs.
Users are required to be available to clear up questions and issues as they arise. Standards
are very important to minimize confusion, so XP teams use a common set of
names, descriptions, and coding practices. XP projects deliver results sooner than even
the RAD approaches, and they rarely get bogged down in gathering requirements for
the system.