> When the software consists of a collection of arbitrary "features" > without a cleanly factored foundation underneath,
This is your opinion, and not relevent to the point I was trying to make. > there is no distinction between redesign and refactoring. The two words mean two different things in the English language. Refactoring means changing nonfunctional attributes of the software (i.e. rearranging code to be more maintainable). If we're talking about changing functionality (as we were in this case), we need to use a different word. An example of refactoring, in PCB's case, would be changing the underlying language from the C/C++ hybrid mess we have now to a clean C++ object-oriented structure, without changing the code's functionality at all. An example of redesigning, in PCB's case, would be changing the way the user manages the layer stack and what kinds of layers the user can describe. _______________________________________________ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user