Wednesday, July 19, 2006

Backward Compatibility

Most people like to have newer version of a program since it will bring new feature or functionality, new design, contains bug fixes, and a lot of other reason. But this fenomena doesn't apply to System Administrator or Developer, since they have to think twice to upgrade some components when they need to preserve backward compatibility with the old version to ensure that old data will work in the new program and also the new program can read and understand the old data or else, people will have to re-work to make it compatible with the new one.

For sysadmin, it happens when there's some kind of major upgrades, such as kernel updates, or library updates. Some application need some specific requirements, but it was considered old, so the sysadmin will have some kind of dillema on this. On the other hand, (s)he wants to have the system running all the time without downtime, but in the other hand, (s)he will have to think the security of the application. Old version tends to have unfixed bugs and it has been fixed in the newer version, but if the newer version needs to upgrade some other components which are being used in other applications as well, that will be some headache for the sysadmin :D

For developer, new features are expected, but it causes a lot of compatibility problems also, since the new feature must (or should be) backward compatibility with the old application, or worst, it must be forward compatible with some features that are being planned to be implemented in the future. It requires a lot of planning in the systems architecture in order to make a good application which can solve this two major problems. Other problem that make developers had an instant headache is the requirements that it should be compatible with other formats.

One good example is Microsoft's next Office product Microsoft Office 2007 which will use OpenXML format that was urged to be compatible with the OpenDocument Format (ODF) which is now a new International Office Standard Format. They have to provide a new converter for this two kind of different format (but both are based on XML). have this kind of problems also when they wanted to switch from their old format to the new ODF format which was started at OOo 2.x. They released 1.1.5 to give customer some way (by using filter) to convert the old format to the new format (issue 34353) besides bug fixes.