There is not necessarily a difference between the percentage of time spent on design in HeavyweightMethodology?
's and LightweightMethodology
's. The distinction is when the time is spent and in what quantities.
I spend half of my time refactoring, during nearly all of which I am making design decisions. So I spent 50% of my time designing. This is more or less the recommendation of RUP, Booch, and (as I recall) Yourdon and Constantine's StructuredDesign?
. The difference is I spend my design time in 1-5 minute chunks, and BigDesign
spends design time in month or quarter chunks (or week chunks, for RUP). --KentBeck
In my experience on this project (16 developers, 18 months), you can spend lots of time up-front on BigDesign
, and then it will be redesigned in 1-5 minute
chunks for the rest of the project.
Of course, if we had recruited staff on-time, we would have spent so much time on BigDesign
A data-point from the field: Over the last 20 years, I've been on 3 projects that spent 8-12 developer years in upfront design, only to have 75-90% of that design fail to survive into the product. In one case the technology shifted out from under the design. In all three cases Marketing "shot high" on requirements, only to backpeddle on requirements when they were able to compare the project plan with their bank balance. --DaveSmith