''If you have to constantly refactor your code, then you didn't get the design right. Why would you constantly refactor working code? Only if the design was flawed.'' ''ExtremeProgramming seems to just be a way of avoiding design and just JumpingIntoCoding. '' ''A large program must be designed. '' ExtremeProgramming recommends a great deal of design, including during the coding process. It is expensive and difficult (nearly impossible) to come up with a truly good design without feedback from the coding process. Our experience tells us that no matter how much design is done up front, the process of coding will produce valuable design information which needs to be factored into the design. We don't think we're good enough to often get the "right" design without that coding feedback. We're even more sure that we can't do it as cost-effectively as if we had that feedback. Therefore, we move to code early, and use that experience to accelerate the discovery of the correct design. To accomplish this, XP does the minimum amount of design to enable us to get into the coding process, then uses the coding process to evolve the design and the code at the same time. The effects include: * Fewer of those days when you are talking about how you wish the design were otherwise, but it's too late now ... * Faster tangible output from system testing (because you get the system running sooner) ... * Higher-quality code, because focus on the design includes focus on the code ... * Perfect match between what is designed and what is actually implemented in the source code ... Some signs that moving to code sooner might be helpful: * design documents getting further and further out of date; * implementation needs to deviate from the design; * lots of email or meetings explaining or arguing about the design, well after the presumed approval date; * frequent desire to wreak destruction on the absent designer of what turns out to be a really bad design idea. If there are no signs like this on a project, then it quite probably moves to code at about the right point in time. --RonJeffries ---- Looking back at the original statement, it seems that the person who made the statement had fallen into the FallacyOfOmniscientDesign. KyleBrown