Jumping Into Coding

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:

Some signs that moving to code sooner might be helpful:

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


EditText of this page (last edited September 25, 1998) or FindPage with title or text search