I am doing some significant refactoring and feature-adding on a project, and have just broken backwards compatibility with my data. I did it by creating a bunch of subclasses from the class that I used to house my data in, and loading in old serialized objects no longer works..
What kind of pre-engineering or strategies do you employ to avoid these types of situations? Should I forget about serialization completely? It seems particularly prone to these sorts of problems.