9

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.

2 Answers 2

3

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.

1
  • hardly meaningless, I think. Please do. Commented Sep 2, 2010 at 7:44
1

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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