one that at least caters to the concept of a Change Package/Update. I think Microsoft is actually fairly close with it's unofficial SCC API. However, they complicate things by continuously changing the semantics of the API from their IDE perspective, although officially they have not done so as the SCC API was not officially supported.
For more basic tools, such as editors, difference/merge engines, compilers, etc. standard APIs can be much simpler, and even data-driven (rather than procedural), as is the case with "File Type" behaviour in the Windows registry.
From an ALM tool perspective, Horizontal integration can work very well. The key here is that the horizontal management tools share the same database and user interface, the same process structure and query architecture, the same transaction-based system and multiple site management strategy. In other words, the applications need to be built on a common platform. If not, complexities will arise and integration will be restrictive or complex, just as with vertical integration.
Seamless integration needs to be applied to horizontal integration. End-to-end. You can decide how far end-to-end is, but in my experience, the more I have, the more I want. CM/ALM tools are central to a product development and its support. As the ends expand, they become a critical component of the business management tool suite. Hopefully, you have some idea from this article how Seamless Integration leads to lower costs, ease of use, productivity, etc. As the ends are expanded, the savings can be realized across a wider scope, and ultimately across the entire company. You training costs go down, your staff is more focused on its core product requirements, your quality and customer feedback improve.
So if there's one requirement that I have to put at the top of my list for a CM/ALM tool suite it's Seamless Integration. What's yours?