Prefactoring – wtf?

A new book is available called Prefactoring *. From the summary:

“More often than not, developers will stop a large project in the middle of the build stage to rethink and recode the software design so it’s cleaner and more efficient. Known as “refactoring,” this process eats up valuable time and money. To help offset refactoring, this book presents a new process called “prefactoring,” the premise of which states that you’re better off considering the best possible design patterns before you even begin your project.

Prefactoring, in essence, is the art of applying the insights gleaned from previous experience (whether yours or someone else’s) when developing software to new projects. Doing so will likely save you from making costly design changes midstream–and maybe even save your job!”

I don’t know whether to be horrified or amused.

* Note that this is not an Amazon link, since I do not intend to recommend it.

This entry was posted in Agile. Bookmark the permalink. Follow any comments here with the RSS feed for this post.

13 Responses to Prefactoring – wtf?

  1. Ken Pugh says:

    The editorial summary posted on amazon was written by marketers.
    Here’s the revised summary:

    Developers will often stop in the middle of a project to rethink and recode the software, to make its design cleaner and more elegant. Known as “refactoring,” this process is done for all sorts of reasons: to facilitate the addition of new features, to improve maintainability, and (or) to increase performance. Refactoring is an important and useful software process.
    Refactor enough times though, and you will begin to learn what you can do to reduce the amount of refactoring. Taking these lessons-learned and applying them on subsequent development projects is a process that Ken Pugh refers to as “prefactoring”.
    This practical, thought-provoking guide details prefactoring guidelines in design, code, and testing, each derived from the lessons of many developers over the years. By following these guidelines, you’re far more likely to create more readable and maintainable code.

    A sample chapter is at:

  2. craps says:

    This is controversial point. In common, it was already discussed on many forums.
    John. [craps ( ]

  3. No comments. Well done.
    [online gambling]

  4. dsf says:

  5. This makes speechless with surprise. Never knew that.
    internet casino

  6. Nothing to say, interisting point of view.
    John from monaco hotels ( ***

  7. Helen – I meant not an Amazon “associates” link, whereby I would get (a very small amount of) money if someone clicked the link and purchased the book from Amazon.

  8. Ashleigh says:

    Flame war! Woohoo! How’s this…

    Jeremy… Seems like his “dumbasses” line was directed not at the blogger, but at proponents of the “prefactoring” concept. Let’s review…

    He first stated that the concept is already practiced. This is a confusing sentence, I know. Espeically after that nasty name calling. But it’s actually a way to express the obviousness of a developer trying to get the design correct, as opposed to trying to implement with complete disregard for the design. Think of “Well, duh!”, and you’ll be pretty close. A certain satyrical humor was intended here.

    Then he stated that it’s not an achievable goal and followed by tying that in to a vague statement of value for refactoring. These read pretty well on their own, and were helpful in making the context of the post as clear as possible. Made me wonder if you read all the way to the end…

  9. Um, dumbass? A good developer tries to get the design right yes, but that doesn’t imply the only or even best way to do that is to create a “design” before coding. Designing before coding is speculation. A little is good, but too much is harmful and I think that’s what everybody is wretching about with this “Prefactoring” thing. You never know that the design is *right* until it actually works in code. It’s stupid to spend too much time doodling UML diagrams before getting feedback from the code.

    The first time I heard this “Prefactoring” term was from Scott Rosenberg in his Agile Iconix process when he started to move from “Grady Booch/RUP” wannabe to “Kent Beck/XP” wannabe. It’s nothing but a semiserious euphemism for heavy upfront design.

  10. Fregas says:

    Uh…hello, dumbasses. A good developer ALWAYS tries to create the right design ahead of time. You’re never going to get it right every time though.

    And refactoring saves time and money in the long run.

  11. Mark says:

    Aaaaaaall righty then!!

  12. Helen says:

    “* Note that this is not an Amazon link, since I do not intend to recommend it.”
    I was curious to see what such a book would contain, so I clicked on the “not-an-Amazon-link” and it took me to Amazon, so it looks like an Amazon link to me…

  13. Carlton says:

    Sounds like BDUF to me…

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>