Improving your Software Development With Agile Methods
The software development industry has a poor track record of
producing successful projects. Studies have shown that the majority
of software projects fail in some way - they run over time and/or
budget, are lacking features, do not do what the users want, or
are cancelled after millions of dollars have been spent on them.
The traditional way of trying to solve these problems has been to
impose a rigorous development process or methodology on the development
team. These split the project into distinct phases, each one of
which must be completed before the next one starts. These methodologies
specify in detail the documents and other 'artifacts' that the developers
must produce before they can proceed to the next stage. The methodologies
often went hand in hand with a specific design notation and CASE
tool, with the tool vendors selling the methodology as well as the
tools.
But still the projects kept failing. Projects run using heavyweight
methodologies often spend more effort producing documents and diagrams
than they do writing code, slowing down development. Even worse,
the process makes it increasingly expensive to change the software
once it has been written, so the end result is often a program that
works, but does not do what the users want or need.
In the late 1990s a new breed of development processes were created.
Many people around the world realised that the heavyweight methodologies
were not delivering what they promised and worked independently
to create new ways of developing software. These processes focused
on getting people working together rather than communicating though
documents, on producing working code rather than documents, and
on evolving the product over time rather than designing everything
up front. Then in February 2001 the key players from this new movement
got together in Snowbird, Utah to find out what they had in common,
and what their differences were. From this the Agile Manifesto was
born.
The Agile Manifesto states:
We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:
-
Individuals and
interactions over processes and tools
-
Working software
over comprehensive documentation
-
Customer collaboration
over contract negotiation
-
Responding to change
over following a plan
That is, while there is value in the
items on the right, we value the items on the left more.
Adapting agile development methods can greatly improve your productivity.
There are now many thousands of people around the world using agile
development methods, and although it is not a panacea for all development
problems, many teams have had remarkable improvements in productivity.
Teams using agile methods have also reported higher levels of job
satisfaction and enjoyment. To find out more about agile methods
and how they can be used to improve productivity, email agile@thedeveloperscoach.com.
|