Length of the Product Cycle
In addition to development time, product lifetime must also be considered. If
the application is designed to be used once, such as an application that
transfers data when migrating from one DBMS to another, there is no point in making
it interoperable. The application will be used once and discarded.
On the other hand, if the application will exist for a long time, it might be
easier to maintain as an interoperable application. This is true even for
custom applications that have a single DBMS as a target. The reason is that
interoperable code uses a limited subset of database features. The driver is required
to keep those features available, even in the face of changes to the underlying
DBMS. Thus, interoperable code can shift the burden of coping with changes to
the DBMS from the application developer to the driver developer.