Articles   |   Downloads   |   .NET   |   About   |   Contact


Introduction
Comparison
Processes
General
Collaboration
Contracts
Other Topics



Comparison to Traditional Development

In my on-going quest to answer the question "What is agile development?", here is a point-by-point comparison with traditional development.  

I'll label the traditional approach with "T", and the agile approach with "A"...


Iterative vs Waterfall

T: Serial ("waterfall") development is best (or at least normal/acceptable)
A: Always use iterative development


Workflow

T:  Design, Build and Test follow each other, in that order
A: Design, Build and Test influence each other, so they should be concurrent and iterative


Requirements Quality

To ensure requirements are well-defined and well-understood:

T:  document them thoroughly; users see the system when finished
A: document them concisely; users see the system early and often


Knowledge Transfer

To ensure everyone understands the system:

T:  Place importance on written documentation
A: Place importance on frequent verbal communication; regular working releases; and clear, readable source code


Team Composition

T:  Team members should be specialists (BA, Designer, Developer, Tester etc)
A: Team members should be generalists (each with their own particular strengths)


Team Size

A successful process is one that:

T:  Organises a large team
A: Gets the same output from a small team


Planning

T:  Make a Gantt Chart at the start; maintain it during the project
A: Make a Task/Feature List at the start; maintain it during the project


Monitoring

Measure progress:

T:  against the Plan
A: against the Task/Feature List (tracking which ones are completed).  But don't just monitor your progress; also monitor the quality of that progress by testing and releasing regularly.


Managing Change

It's hard to change software that's already written, so:

T:  Control or minimise change


Predicting Completion

Predict final completion date and cost using:

T:  the updated Gantt Chart
A: the team's progress to date


Process Definition

To help people successfully follow it, the development process should be:

T:  thoroughly documented
A: concise and memorable


Process Improvement

Process improvement is best driven by:

T:  metrics
A: the people involved

Philosophy

T:  Software development is a construction process, so making detailed plans is advisable.
A: Software development is a creative process, so making detailed plans is unrealistic.  

Instead, agile processes make less-detailed plans (often like this) and manage risk through iteration, continuous quality control, and feedback.

Success is

T:  Meeting the initial predictions of cost and schedule



Page History: Created 29 Dec  05
Last Updated 10 Mar 2006
                                                                                                                                                                                                                                                                                                           
Copyright (c) 2003-2007, John Rusk.