There is no “big design up front” in prefactoring. The “Think About the Big Picture.” guideline is not about big design. It suggests that you spend a little bit of time investigating the environment in which you are going to create your software. The environment (e.g. a corporate infrastructure, J2EE, or web services) may provide numerous services (e.g. security or error handling) that you don’t need to develop or it may suggest ways for structuring your code to fit into the framework.
Following the prefactoring guidelines does not mean you don’t refactor your code. The guidelines can help keep the smells out. But when code starts to smell, refactor it. As you go through development, you gain more knowledge about the total project, which can generate new ideas. Performing a retrospective after every release, as one guideline states, can help direct this generation of new ideas. Agility is about delivering working software to the customer. Iterative and incremental development and customer communication, as shown in the example in the book, are key principles to enable that delivery. You can use multiple tools to achieve the goal – refactoring – performing transformations on created code is one tool; prefactoring – thinking about things before coding is another.
Read his complete answer. He explains very well that being agile requires thought and not mindless mantras. Sometimes I think XP zealots get too carried away with themselves.
Thinking about your solution before you code it does not mean big upfront design. No craftsman in his right mind would start carving a piece of wood before some initial planning. Thought is cheap and if it can save refactoring later, then let's do it! Think, it ain't illegal yet.
No comments:
Post a Comment