Microsoft is a big place with a huge number of software products in development and a number of those products have dependencies between each other. We've got a pretty rich & consistent process for managing bug across divisions -- but managing software product dependencies (e.g. The Office team needs a component from Windows in order to ship) is a different story. Some teams have built custom tools, some teams use Word documents and yet others use Excel. The common theme about the process and the tool is that two teams are essentially creating a "contract" between them. It is certainly from the task-level dependencies that you'd often see in a Microsoft Project plan.
We've recently started managing dependencies more formally within Team System, so that the different product units (e.g. TFS, Team Test, Team Architect etc.) have a way of creating, managing and tracking the dependencies between each other. Here's what a "Dependency" looks like:
Some of the interesting fields:
The state flow is pretty simple:
Please share your feedback and I'd love to hear you are managing your dependencies and what additional support you'd like to see there.