Comparative Study of Agile Methods and Their Comparison With Heavyweight Methods in Indian Organizations
Comparative Study of Agile Methods and Their Comparison With Heavyweight Methods in Indian Organizations
Abstract : “Agile” means nimble or quick moving and i. Highest priority is to satisfy the customer
“Agility” means the ability to think and draw conclusions through early and continuous delivery of
quickly. In terms of software development agility means valuable software.
dynamic, content specific, growth oriented and able to ii. Welcome changing requirements, even late in
adopt the changes quickly and easily. The roots of agile go
development. Agile processes harness change
back more than a decade but it is on the boom from the
for the customer’s competitive advantage.
last two decades. It was February 2001, when a group of
people kept a meeting in Utah, in order to find an iii. Deliver working software frequently from a
alternative method to the existing heavy software couple of weeks to a couple of months, with a
development methodologies and the result was agile preference to shorter timescale.
methodology. Although there are 13 agile methods and iv. Business people and developers must work
exact number of Agile method is still a debate question. I together daily throughout the project.
have included only 5 methods, Scrum, XP, DSDM, FDD, v. Build projects around motivated individuals.
Lean Software Give them the environment and support they
need and trust them to get the job done.
Keywords : Agile, Scrum, Extreme Programming,
vi. The most efficient and effective method to
Dynamic Systems Development Method, Feature-Driven
conveying information to and fro within a
Development Method, Lean Software
development team is face to face conversation.
I. INTRODUCTION vii. Working software is the primary measure of
progress.
Traditional software development methods are not
viii. Agile processes promote sustainable
always feasible in rapidly changing business
development. The sponsors, developers and
environment. This paper demonstrates the difference
users should be able to maintain constant pace
between heavyweight and agile software development.
indefinitely.
Agile Manifesto is collection of values and principles,
ix. Continuous attention to technical excellence
which are found in most agile methods. Agile alliance
and good design enhances agility.
formulated their ideas into values and further to twelve
x. Simplicity- the art of maximizing the amount of
principles [1] that support those values which are as
work not done- is essential.
follows:
xi. The best architectures, requirements and
designs emerge from self organizing teams.
4
xii. At regular intervals the team reflects on how to respond to the changes. Scrum phases are introduced
become more effective, then tunes and adjusts according to Schwaber [2].
its behavior accordingly.
A. Pre-game phase
Values of Agile Manifesto are given below:
This phase includes two sub-phases: planning and
i. Individuals and interactions over processes and architecture/high level design.
tools. Planning includes the definition of the system being
ii. Working software over comprehensive developed. A product backlog is created containing all
documentation. the requirements that are currently known. The
iii. Customer collaboration over contract requirements can originate from the customer, sales and
negotiation. marketing division, customer support or software
iv. Responding to change over following a plan. developers. The requirements are prioritized and effort
needed for their implementation is estimated. The
II. CHARACTERISTICS OF AGILE
product Backlog list is constantly updated with new and
Agile consists of following characteristics: more detailed items, as well as with more accurate
i. Modularity estimations and priority orders.
ii. Incremental development In the architecture phase, the high level design
iii. Team composition of the system including the architecture is planned based
iv. People oriented on the current items in the product Backlog. In case of
v. Cooperative enhancement to existing system, the changes needed for
vi. Collaborative and communicating working style implementing the Backlog items are identified along
vii. Maintaining the Integrity of the Specifications with the problem they may cause. A design meeting is
viii. Lightness held to go over the proposals for the implementations
III. SCRUM
and decisions are made on the basis of this review.
B. The development phase
Scrum is huddled mass of players engaged with each
other to get a job done. Scrum for software development This phase is called game phase is the agile part of
came out of rapid prototyping community because they scrum approach. This phase is treated as “black box”
wanted a methodology that would support an where unpredictable is expected. The different
environment in which the requirements were not only environment and technical variables (such as time
incomplete at the start, but also could change rapidly frame, quality, requirements, resources, implementation
during development. Scrum introduces the ideas of technologies and tools and even development methods)
flexibility, adaptability and productivity. Scrum identified in Scrum, which may change during the
concentrates on how the team members should function process are observed and controlled through various
together in order to produce the system flexibility in Scrum practices during the Sprints, of development
constantly changing environment. The main idea of phase. In the development phase, the system is
Scrum is that system development involves several developed in Sprints. Sprints are interactive cycles
environment and technical values (e.g. requirements, where the functionality is developed or enhanced to
time frame, resources and technology) that are likely to produce new increments. Each Sprint includes the
change during the process. This made the development traditional phases of system development. One Sprint is
process unpredictable and complex, requiring flexibility planned to last from one week to one month. There may
of the system development process for it to be able to
5
be 3 to 8 Sprints in one system. Also there can be more and schedule is then agreed upon. The time span of
than one team building the increment. schedule of the first release doesn’t take more than two
months. Planning phase itself takes about few days.
C. The post game phase
C. Iteration to release
This phase contains the closure of the release. This
phase is entered when an agreement has been made that This phase includes several iterations of the system
the environmental variables such as the requirements before the first release. The schedule set in the planning
are completed. In this case, no more items and issues stage is broken down to a number of iterations that will
can be found nor can any new ones be invented. The each take one to four weeks to implement. The first
system is now ready for release and preparation for this iteration creates a system with the architecture of the
is done during post-game phase, including the tasks whole system. This is achieved by selecting the stories
such as integration, system testing and documentation. that will enforce building the structure for the whole
system. The customer decides the stories to be selected
IV. EXTREME PROGRAMMING (XP) for each iteration. The functional tests created by the
Extreme Programming has evolved from the problems customer are run at the end of each iteration. At the end
caused by the development cycles in traditional of last iteration the system is ready for production.
development models [3]. It first started as an D. The productionizing phase
opportunity to get job done with practices that had been
found effective in software development processes. This phase requires extra testing and checking of the
After a number of successful trials, XP methodology performance of the system before the system can be
was developed on the key principles and practices used. released to the customer. At this phase, new changes
The term ‘extreme’ comes from taking these may still be found and the decision has to be made if
commonsense principles and practices to extreme they are included in the current release. During this
levels. The life cycle of XP consists of 5 phases: phase, the iterations may need to be quickened from 3
weeks to 1 week. The postponed ideas and suggestions
A. Exploration phase are documented for later implementations during
In this phase the customers write out the story cards maintenance phase.
that they wish to be included in first release. Each story E. Maintenance phase
card describes a feature to be included into the program.
At the same time the project team familiarize After the first release is produced for customer use, the
themselves with the tools, technology and practices they XP project must both keep the system in the production
will be using in the project. The technology to be used running while also producing new iterations. In order to
will be tested and architecture possibilities for the do this, this phase has been introduced. Maintenance
system are explored by building a prototype of the phase may require incorporating new people into the
system. The exploration phase takes time between team and changing the team structure.
weeks to a few months, depending largely on how F. The death phase
familiar the technology is to programmers.
This phase is near when the customer has no longer any
B. Planning phase stories to be implemented. This requires that the system
This phase sets the priority order for the stories and satisfies customer needs in other respects. This is the
agreement of the contents of the first small release. time in XP process when necessary documentation of
Programmers estimate the effort required by each story the system is finally written as no more changes to the
architecture, design or code are made. Death may also
6
occur if the system is not delivering the desired where a sufficient number of customer’s experts are
outcomes, or if it becomes too expensive for further gathered to be able to consider all relevant facets of the
development. system to be able to agree on the development priorities.
7
A. Develop an overall model phase deliver good product and the final customer will be
satisfied [6].
In the beginning of this phase domain experts are
already aware of the scope, context and requirements of Lean Software Development subsequently gave birth
the system to be built. Documented requirements such to agile software Development methods and its main
as use cases or functional specifications are likely to branches are Scrum and Crystal Clear. Lean Software
exist at this phase. After each walkthrough, a Development is not a management or development
development team works in small group in order to methodology, but it offers principles that are applicable
produce object models for the domain area at hand. The in any environment to improve software development.
development team then discusses and decides upon the Lean software development follows seven principles
appropriate object model for each domain areas. which are
B. Build a feature list phase i. Eliminate Waste
ii. Amplify learning
Walkthrough object models and existing requirement
iii. Decide as late as possible
documentation give a good basis for building a
iv. Defer Commitment
comprehensive features list for the system being
v. Deliver as fast as possible
developed.
vi. Empower the team
C. Plan by feature phase vii. Build integrity
It includes creation of a high-level plan, in which the VIII. FEATURES AND DRAWBACKS OF
feature sets are sequenced according to their priority and DIFFERENT AGILE METHODS
dependencies and assigned to chief programmers.
Features and drawback of Scrum, XP, DSDM, FDD and
Further, the classes identified in the process are
Lean Software are as per given in the Table I.
assigned to individual developers, i.e. class owners.
D. Design by feature and build by feature phase IX. DIFFERENCE BETWEEN AGILE AND
HEAVYWEIGHT METHODS
In this a small group of features are selected from the
Every method has its weakness and strengths, so
feature sets, and feature teams needed for developing
depending upon need methodology is decided. Major
the selected features are formed by the class owners.
factors that effect this selection can be categorized as
The design by feature and build by feature processes are
per table II.
iterative producers, during which the selected features
are produced. One iteration should take few days to a X. REFERENCES
maximum of two weeks. [1] Agile manifesto website online available at
VII. LEAN SOFTWARE www.agilemanifesto.org
Lean Software Development helps software [2] Schwaber Ken., & Beedle Mike,”Agile software
organizations to optimize their processes and production development with Scrum”,Upper Saddle River, New
methods in order to deliver their products to the market Jersey, Prentice Hall, pp. 142.
much faster and with better quality. Lean puts main
[3] Elssamadisy, A.(2001), XP on a large scale project-a
focus on people and communication. People who
produce the software are respected and they developer’s view, In M. Marchesi,G. Succi, D.Wells &
communicate efficiently. It is more likely that they will Williams(Eds),” Exreme Programming prespectives”,
Addison –Wesley, pp.123.
8
[4] Dynamic Systems Development Method (2nd ed.), [7] Glass, R. L. , “Agile Versus Traditional: Make Love,
Ashford Tesseract , DSDM_Consortium (1995), pp. Not War!,”, Cutter IT Journal 14(12): pp. 12–
239. 18, 2001.
[5] V. R. Basili and A. J. Turner, "Iterative Enhancement: [8] Adaptive Software Development: A Collaborative
A Practical Technique for Software Development," Approach to Managing Complex Systems, Highsmith,
IEEE Transactions on Software Engineering, vol. 1, J.A., 2000 New York: Dorset House, ISBN 0-932633-
no. 4, pp. 266 - 270,1975. 40-4, pp. 392.
[6] M. Poppendieck and T. Poppendieck, Lean Software
Development Boston: Addison Welsey, 2003, pp. 203
9
TABLE I
Agile methods features and drawbacks
10
TABLE II
Comparison of Agile methods with heavyweight methods
11