Given that every software project only has so many programmer-hours dedicated to it, how much would you spend on making sure the product is backward compatible with the previous versions? Actually there are several points to consider:
- Does the age of the software affect your decision? Will you invest less time in backward compatibility when the program is newer?
- Is the decision based solely on the number of clients with installed copies?
- Do you make an active effort to produce code and file formats that supports future changes?
- When you're developing v1.0, do you try to built to make it easier for v2.0 to be backward compatible with v1.0? (Leaving "reserved" fields is an example.)
- How do you decide that "No, we aren't going to support that anymore" on features?