Agile Software Development It's about Feedback and Change

Document Sample
Agile Software Development It's about Feedback and Change Powered By Docstoc
					                  Agile Software Development: It’s about Feedback and Change
                             Laurie Williams and Alistair Cockburn

Agile software development is the much talked about thing these days. The debate has been an
ongoing one with some people being enthusiastic about the idea and other being dead against it
while some trying to find the golden mean. So what exactly is Agile software development?

As the dictionary meaning of Agile implies “Agile software development” is a methodology
which aims to hit a moving target i.e. meet the ever changing requirements of businesses in a
nimble or supple manner; rather than reject changes in requirements as done by “plan-driven”
models of software development which heavily rely on a plan and tedious requirements definition
process along with the associated documentation.

Several agile software methodologies have been developed around the globe but they all had a lot
in common. They all shared similar values and disagreed with the plan driven model that over
emphasizing on things like process, tools, documentation, contracts and the “plan” itself. On the
contrary, agile methodology tries to focus on developers, working software, collaboration and
embracing change. Engineering processes by definition are either empirical or defined.
Manufacturing processes are considered defined where things could become more repeatable by
following a plan. On the other hand, software development is an empirical or experimental
process. Empirical, because no two software’s are alike, they have their own set of requirements
and challenges which results in a different software product every time. Manufacturing processes
produce the same tangible results every time.

The focus of conversation about agile software development has shifted from time to time. In
2001 the question was what is agile development? Well, the concept dates back to 1960, but the
new part is trying to develop an agile software development framework. It was felt that agile
methods were only applicable for projects having high degree of change in requirements and no
safety issues which were executed by a small team. In 2002 people compared agile methods with
the CMM and ISO 9000 models. They concluded that even models like CMM allow agility to
some extent and the best results of adopting agile methods were achieved if people worked with
in groups of less than50. In 2003 the focus shifted on adopting certain agile methods into plan
driven models, and the degree of change required to achieve a mix of conflicting methodologies.
The most resistance to the adoption of agile methods is offered by the way organizations are
structured. Typically speaking the people making technical decisions are non-technical
management oriented people, where as agility in development would require a shift of decision
making power to technical resources. Agility also requires the involvement of quality assurance
groups from the beginning of a project. This requirement also requires redefining testing to mean
white-box testing as opposed to black-box testing which could change the hiring practices of an

Many people for instance Kent Beck & Barry Boehm, Craig & Vic Basili and Rich Turner have
been trying to find the perfect mix and weigh the pros versus cons of agile and plan driven
methodologies. They all seem to conclude with the risks associate with agile methods i.e.
scalability, criticality and staff skills beings the major factor. They all seem to be in agreement on
how plan driven models fail to cope up with change and produce rapid results. They all have their
own observations associated with introductions of agile methods into various organizations. The
flexibility offered could very well be used or abused as found out by Mike Cohn and Doris Ford,
who found that given the develops tend to produce the necessary documents but not under
compulsion. They also witness people abusing flexibility to mean they do not have to think
ahead. The battle between agile versus plan driven models is a never ending battle but there are
things to be learned from both methodologies. The battle will continue till we find a perfect
methodology that inherits the good features of both sides.


    1. Do not ISO 9000 and CMM certifications loose their meaning when applied to the
       software industry? Isn’t it like comparing apples to oragnes i.e. manufacturing to
    2. The article does not mention the reason why clients look for ISO/CMM certifications and
       the way companies use the certification to imply they have highly skilled people
       available to meet client requirements.
    3. How do Mike and Doris feel that a plan driven model force developers to think ahead
       where as agile methodologies gave them the impression that they do not need top think
       ahead when Agile by definition means to be alert and responsive.

Shared By: