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.

Tobiasopdenbrouw
  • 1,001
  • 1
  • 10
  • 10

2 Answers2

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.

Fishtoaster
  • 25,909
  • 15
  • 111
  • 154
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.

Bill Michell
  • 1,980
  • 14
  • 15