You are on page 1of 16

System Development Methodologies

Popular Methodologies

Waterfall Approach

Boehm-Waterfall Methodology Systems Development Lifecycle Model


Extreme Programming Agile Methodology RAD (Rapid Application Development)

Iterative Approach

Waterfall: Defined Phases


Needs analysis (the Why) Requirements Analysis (the What) Design (the How) Development Testing Implementation

Waterfall: Multiple Hand-offs


Assembly line approach One role responsible for each phase Documentation deliverables at the end of
each phase

Waterfall: Single Large Implementation

Product delivery occurs at end of final

phase Long time spent before business benefit is realized

Waterfall Approach
Defined Phases in a linear, chronological
order Multiple Hand-offs between assigned roles Single large implementation

Iterative: Short Iterations


1 to 4 week cycles encompassing all aspects of waterfall toward more a limited number of requirements at a time Rapid Feedback Assume simplicity Incremental change with continuous testing

Iterative: Integrated Team


Subject matter experts, analysts, developers, and project management work together through the life of the project. Roadblocks present themselves up-front and to everyone Everyone offers feedback to each other, working toward the best mutual solution

Iterative: Multiple Implementations


Tangible software is being built constantly The team prioritizes functions that will deliver the most benefit and those are developed first Code is put into production as soon as possible in order to realize business benefit quickly

Iterative Approach
Short Iterations (design by prototyping) Integrated Team Multiple Implementations

Which approach is better?

Waterfall Approach Iterative Approach

Waterfall Approach Advantages


Business problem is defined with in-depth up

front analysis, allowing the project team to (hopefully) simplify it before coding begins. Limited time is required from subject matter experts. Defined milestones ease overall project planning Extensive planning helps coordinate large, geographically separated teams

Iterative Approach Advantages


Rapid feedback minimizes rework and helps the customer discover their needs Requirements changes are embraced, eliminating the need to make predictions about needs Design flaws are discovered quickly instead of late in the project Functionality is rolled out in stages, allowing the customer to prioritize and gain benefits more quickly Integrated Team = Sense of ownership and increased productivity. No hand-offs means no information loss. Less time spent writing documentation allowing more time to write tangible software More realistic estimates

Either approach can fail

Waterfall Approach: Excessive time can be spent on fruitless analysis when the customer realizes that they didn't really want what they requested many months ago. An iterative approach can lead to a never-ending project if management doesnt realize when the major business benefits have been met. Software can always be improved.

Results will vary

Talented people can make a bad methodology work and unskilled people can fail with a great methodology. The biggest barrier to the success of a methodology is often the culture. The people must believe in their methodology Often, a combined approach is used because it is hard to follow a single approach 100% of the time

Questions

You might also like