A proven technique for managing in-licensed technology is to create a "wrapper" or "adapter" for it. Instead of programming to the API provided by the vendor, you create an abstraction that you can replace if needed. A common example of this approach in Java is JDBC, which provides a common interface for databases. Wrappers may make it easier to replace one vendor's technology with another's, but they aren't without their drawbacks. Wrapping frequently introduces a least-common-denominator approach, in which the development team cannot use superior but proprietary technologies. Also, wrapping takes time and must be tested . If the technology is never replaced , or replacement is extremely unlikely , then the additional expense associated with wrapping is not justified. The decision to insulate or protect your tarchitecture from direct access to an in-licensed component must be made with the support and involvement of both the marketect and the tarchitect. |