|
Home
> Approach
Approach
Traditional, prescriptive methodologies take a top-down
approach to project management, establishing a
command-and-control system. The underlying assumption is
that with enough planning and management, the outcome
can be predicted and risks avoided.
These methodologies are most effective in situations
where the customer's business and technical requirements
will remain fairly static. On an increasing number of
strategic software projects, however, prescriptive
methods provide neither the flexibility nor the
speed-to-market that the enterprise requires. Too often,
the end result is not high-value software, but a huge
set of analysis artefacts that collect dust on a
manager's shelf. That's a far cry from what actually
happens at the whiteboards and keyboards... or what the
business really needs.
A Disciplined Approach
Agile methods are based on very disciplined processes.
In fact, many of these practices are defined enough to
be incorporated right into the development tools. Unit
testing frameworks, continuous integration tools, and
re-factoring development environments comprise a new
suite of development tools that let people create better
software faster.
Studies have proven over and again that the single
biggest impact on software productivity is the people.
Surprisingly, Agile methods are the first set of
software engineering practices to be based on the way
people actually develop software.
At the same time, we realize that there is no
methodological silver bullet. As one of the early
adopters and pioneers of Agile methods, we're well aware
of the benefits and limitations of these methods.
However, Agile methods contain many useful practices
that are derived from some of the most successful
software work in recent history. Agile methods such as
Extreme Programming (XP), SCRUM, Crystal, and others
recommend very down-to-earth, actionable practices such
as continuous integration, test-first programming, and
re-factoring.
|