Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm very new in this area but I spend a long time to read about all this methodologies (SSADM, AGILE, RAD, SPIRAL, WATERFALL, INCREMENTAL, DSDM, XP, Iterative) in detail, how do they work, the advantageous and disadvantageous and ...

Now the bad part part is:

I understand them all separately but can't understand :

  1. Is it like one of them let say SSADM ( WITH 5- 7 STAGES ) is what we try to achieve and we should use the rest (RAD, AGILE AND ..) to do so.

  2. Or its like some of them are the main Categories like (SSADM, AGILE) and the rest becoming their subcategories?

  3. Or no there are all separate things with no connections which in this case i can't understand stuff like this from Wikipedia:

    SSADM is a waterfall method for the production of an Information System design. SSADM can be thought to represent a pinnacle of the rigorous document-led approach to system design, and contrasts with more contemporary Rapid Application Development methods such as DSDM.


migration rejected from Mar 21 '14 at 13:27

This question came from our site for professional and enthusiast programmers. Votes, comments, and answers are locked due to the question being closed here, but it may be eligible for editing and reopening on the site where it originated.

closed as too broad by gnat, GlenH7, MichaelT, Robert Harvey, World Engineer Mar 21 '14 at 13:27

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

The study of software processes is interesting in itself, but if you actually want to produce software, I'd suggest you simply pick one and get on with it. – Martin Wickman May 21 '11 at 21:21
Yeah I'm very agree with you, But the problem is I'm going to have a tough exam about them soon,And i need to have a good level understanding about them all. :( – user363295 May 23 '11 at 14:55
up vote 8 down vote accepted

Each methodology takes a different approach to developing software. Key differences between methodologies are typically to do with the way the development process balances features against development time and cost of development.

Of course, each methodology has its advantages and disadvantages, which means that a methodology that is suited to one project may not be suitable for another. More specifically, different methodologies suit different types of team, different types of software and different business environment.

When comparing methodologies it is worth remembering that newer methodologies draws on those that came before them, whereas older methodologies are refined over time as they adopts ideas and techniques from newer approaches.

The methodologies in the question fit together something like this:

Waterfall is a general approach to development, often understood as the traditional approach to development. It clearly separates a development project into steps such as analysis, design, implementation and testing, each of which is completed before the next begins. The advantages of waterfall are that it is easy to understand and therefore looks easy to manage. Schedules and features are usually fixed at the start of the development cycle. The weakness of the methodology is that it doesn't accommodate changes, doesn't recognize the difficulty of planning entire projects up front, and doesn't deliver any value until every part of the project is completed.

SSADM is specific example of Waterfall development.

Spiral is a general approach that is a development of Waterfall. It uses a waterfall-type process to build a prototype which is then refined through another waterfall, and so on.

RAD (Rapid Application Development) is another general term. It focuses on speed of development, sometimes resulting in higher costs and lower quality.

Agile is another general term. The main objective of Agile methodologies is to accommodate changes to requirements. In most agile methodologies, all types of development activity happen concurrently rather than sequentially. Agile typically involves building a very primitive but complete product and adding features iteratively. Agile projects are prone to taking a long time to complete, but are supposed to deliver key product features early.

Iterative means that new features of the product are added in short intervals (typically 2-4 weeks) and that the product can be deployed at the end of each interval. Iterative development is foundational to Agile development. As such, Iterative and Agile are often used synonymously.

Incremental means much the same as Iterative.

XP is an example of an Agile methodology, and was developed by Kent Beck.

DSDM was originally based on RAD ideas, but is now considered another example of an Agile methodology.

This site appears to go into more detail:

Thanks A LOT man, it really helped. – user363295 May 22 '11 at 7:37

Not the answer you're looking for? Browse other questions tagged or ask your own question.