Practically every business application has to integrate with legacy assets: either legacy data, legacy functionality or both. Yet most software development books lack a coherent discussion about dealing with, and often interfacing to, legacy assets. You may find a brief discussion of how hard it is to work with legacy assets, but little more than that.
During development, you'll need access to the documentation describing how to interface to each legacy asset, something that Agile Modeling (AM) refers to as a contract model. Contract models are often necessary when an external group controls an information resource that your system requires, such as a database, legacy application or information service.
Consider yourself lucky if you have up-to-date contract models; in many organizations, legacy assets are poorly documented (if at all), leaving it up to the next team to update the documentation to a usable level.
Writing contract models for legacy assets can be difficult: You may not have access to the actual source code (if it exists), or to anyone who understands the asset, let alone someone who originally developed it.
Things that come into play:
Gregor Hohpe and Bobby Woolf et al.'s Enterprise Integration Patterns (Addison-Wesley, 2003) describes a large number of architectural patterns for integrating with legacy assets.
When I can get hold of part II I will publish some more of Scott Ambler's thoughts.