There are several agile methods currently available out of
which few have gained greater importance in real-time practice. We will
elaborate on a few of the popular agile methods, such as Scrum, Extreme
Programming (XP), Crystal Clear, and DSDM (Dynamic Systems Development
Methods). The other methods available are Agile Unified Process (AUP), Agile
Modeling, Adaptive Software Development, FDD (Feature Driven Development), and
Lean Software Development.
Let us take a look into a few commonly practiced agile
methods in the following sections.
Scrum
Scrum development has its inception during 1986 and had the
objective to present a highly iterative development methodology. The popular
developers behind its successful initiation are Jeff Sutherland, Ken Schwaber,
and Mike Beedle.
Scrum has its primary focus on the management part of the
software development, dividing the whole development period into small iterations
(of thirty days) called "sprints." This helps in administering the
process better and also to control the development with daily team meetings.
The engineering practices are less important in scrum development. The users,
however, can merge the engineering practices of other popular agile methods
with the project management aspects of scrum.
There is a Scrum Master who acts as a facilitator in scrum
development and removes the obstacles that the team faces while attaining its
sprint goals. The scrum development team is generally located in the same
place, very well organized and encourages in extensive communication amongst
each other regarding the project development aspects. These help in effective
error-free progress and help them to attain the sprint goals. Scrum development
takes its credit in addressing the fundamentally empirical challenges by
appreciating the fact that any software problem is not defined fully during its
inception and by maximizing the team’s efforts in rapid delivery and faster
response to up-and-coming requirements.
Extreme Programming (XP)
Extreme Programming is said to be the most popular and
important of the various agile development methodologies available to date.
Extreme Programming owes its inception to the Smalltalk community during the
late 1980's. The popular developers behind its successful initiation are Kent
Beck and Ward Cunningham who also took up the task of enhancing the XP
practices to provide a software development methodology that is people-centric
and highly adaptive. Kent Beck authored the popular book on this methodology
called "Extreme Programming Explained" which came out in the market
during October 1999. The book still provides good references to the followers
of this software development practice.
Extreme Programming recommends a set of daily practices for
its team members. These practices can be seen as traditional software
development practices taken to its highest productivity level. This effort
helps in providing greater and faster response to the customers which is in
contrast to the traditional methods. It also helps produce software solution of
better quality. XP in line with other agile development methods also believes
that requirements can come up during any time throughout the project lifecycle
(instead of getting defined at the very beginning), and the team has to be
highly adaptive to these up-and-coming requirements and make effective this
realistic approach through energetic response.
Crystal Clear
One of the great exponents of agile community Alistair
Cockburn developed the crystal family of software development approaches meant
for teams of different sizes. All of these methods have similar features and
properties. Important properties are Frequent Delivery, Reflective Improvement,
and Close Communication. Crystal requires lesser discipline as compared to XP
and has reduced chance of failure.
Crystal Clear is an important variant of crystal
methodologies that is ideal for a team of about 6 to 8 developers located in
the same venue and working on light weight systems. It has its emphasis on
people and not on processes. Important properties of crystal clear are as
follows.
·
Usable Code should be regularly delivered to the users
·
Improvements are insightful
·
Regular effective verbal communication between co-located team
members
·
Ease of accessibility to the expert users
Dynamic Systems Development Methods (DSDM)
DSDM is a RAD (Rapid Application Development) based
framework that follows a user driven, incremental approach in an iterative
development for designing and developing software on time, satisfying all its
business needs and strict budget. This agile methodology has its inception at
the United Kingdom during the 1990's by DSDM Consortium (a non-profit
organization). DSDM is an extension of RAD and it emphasizes information
systems projects that are having steep deadlines and strict budgets. DSDM can
be integrated to other agile methods in typical cases.