Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Where waterfall commonly includes:

  1. Requirements
  2. Functional design
  3. Technical design
  4. Build
  5. Test
  6. Review
  7. (Deploy)

And iterations across this list. If I forgot a step, let me know.

share|improve this question

2 Answers 2

up vote 2 down vote accepted

It depends on many factors, including:

  • The domain (eg, I'd spend more time on a defense contract's requirements than I would on a Twitter clone)
  • The developers (if they have experience building similar systems with similar technology, for example, I might spend less time on the design).
  • The customers (How likely the requirements are to change affects how long that phase will take)
  • The criticality of the system (I'll spend more time testing the space shuttle's launch system than I will the StackExchange rep system).

I'd give you a rough breakdown of what percent of the total effort I'd give to each section, but it'd have a margin of error +/- 10% on each based on the above factors so it'd be kinda meaningless.

share|improve this answer
    
hardly meaningless, I think. Please do. –  Tobiasopdenbrouw Sep 2 '10 at 7:44

The best (and probably sole remain relevant) part of the (sadly now outdated) Mythical Man Month is P.20 which breaks down a projects time into 1/3 planning, 1/6 coding, 1/4 component test and 1/4 system test, a very good split which is sadly all too little adhered to.

  1. Requirements
  2. Functional design
  3. Technical design
  4. Build
  5. Test
  6. Review
  7. (Deploy)

You can split these all, or group 2 & or 1,2 & 3

Does 4) build include unit test? What is 5) test? Unit test, software integration, system integration?

6) Review is a subset of 1, 2, and 3

Is writing of unit test specs part of 3) Technical design?

I think that you need to think a lot more about what these things mean, and to add some granularity.

Congratulations, though, on thinking about this, all too few people do.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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