Inrix - Working with Visual Studio TFS


Situation - Inrix won a major contact with BMW around navigation and traffic routing, and needed to find a way to integrate BMW’s in-house call tracking system with their own, without a major resource overhead.

Solution - Microsoft ALM Gold Partner Black Marble built a solution that enabled Inrix to integrate smoothly their Visual Studio Team Foundation Server with BMW’s own preferred in-house system.

Benefits - The solution is efficient, reliable and automated. The business benefits by saving resources, providing a system that can be rolled out not just within the UK business, but potentially globally.

Business needs

INRIX is the leading-provider of traffic information, directions and driver services, as well as apps and tools all designed to get traffic-powered solutions to market rapidly. When it acquired ITIS, the UK company was working with BMW. ITIS had struck an important contract with BMW for a system for the navigation and traffic routing for BMW vehicles.

BMW use a customized version of HP Quality Centre for its call tracking system, for raising bugs and tracking tasks, and had no plans to change. Inrix use Visual Studio Team Foundation Server2010 (TFS) and did not plan to change their systems over to HP Quality Centre.

BMW had a preferred method for getting data out of HP Quality Centre (QC) to supply to Inrix. They have a routine that exposes the relevant data from HP QC, which is then packaged into a zip file that contains an xml file, with a defined custom schema, and any associated attachments. The file is presented to a web portal provided by BMW.

Inrix would take the file, and the work items and updates would be entered manually into TFS – and this could range between 10s or 100s at a time. Updated or new data was then meant to be transferred to BMW but the workload meant this might not always be the case.

A manual solution would not scale, and would remain a resource overhead on the project.


Inrix approached Black Marble because we had a track record of working together previously around TFS, and they knew we were a safe pair of hands. Inrix had created 3 specific work item types for BMW - driver observation, change request, and bug work item types. These were added to their own process template, which was based on the Agile template for TFS.

They asked us to come up with a solution that produced an integration piece that sat between the web portal from BMW and Inrix’s Visual Studio TFS solution that would translate and conform to the schema from BMW.

Black Marble wrote an integration service which used a file listener, for when the Zip file came in from BMW. We would take the zip file, split it out, deserialise the message, and map that over to the corresponding TFS work item type. We would set that as either a new item in TFS or update an existing work item, upload them to the web portal, where BMW could then import them into their HP QC system.

We dynamically created Work Item Queries so that work items that had only been created or updated since the last export were exported on the next scheduled export.

Attachment management in TFS was a problem; it does not allow attachments to be overwritten by default. We had to write a solution using hashes that was stored in the attached files comments to identify changes to attachments so that only attachments that had been updated or created since the last export would be exported on the next scheduled run.

We used log4net not only for general error capturing but to log schema validation and mapping errors. This data was logged to a SQL DB which then used SQL triggers to notify the relevant parties if an import or export was unsuccessful.

A KPI database was also created to track the number work items imported and exported and track how many imported or exported successfully or failed.


Integrates two disparate call tracking systems to ensure smooth operation between the two companies. Created a routine (web macro) that uploads and downloads the data to the portal, thus following the path stipulated by the ultimate end customer (BMW). Saved Staff time for Inrix – no need for manual entry into (and out of) TFS. Increased accuracy – automated entry reduces the likelihood of error. Increased efficiency – once an issue is raised by BMW, it is a straightforward process transferring it to TFS, without the need for user intervention. The process runs in the background, 3 times a day as stipulated by BMW.