Everything you want to know about Visual Studio ALM and Farming
Brian Harry is a Microsoft Technical Fellow working as the Product Unit Manager for Team Foundation Server. Learn more about Brian.
More videos »
Hot on the heels of announcing the release of Feature Pack 2 – the Testing Feature Pack, I’m excited to announce that the Visual Studio Team Foundation Server 2010 and Project Server Integration Feature Pack is now in Beta. To avoid being repetitive, if you are new to the concept of a Feature Pack, you can read a little more about them.
The TFS-PS Feature Pack is being released to MSDN subscribers today as a “go-live” Beta. That means we believe it is ready to be installed and used in a production environment. Unlike the CTP that has been available for a while now, this is not being released as a Virtual Machine but rather fully installable bits that you can install on your own machine(s). You’ll be able to call our technical support to get help with any production issues you have and we encourage you to use our TFS/Project Server forum to get quick responses to any questions you have.
In short, TFS <-> Project Server integration is a server side synchronization/workflow tool that enables project managers who use Project Server to share up to date project status and resource availability with development teams who use Team Foundation Server whether they use formal or Agile development processes. It enables the two constituencies to work in the tools of their choice and at a granularity that is most comfortable to them. Project managers can work in fairly high level tasks using a long range plan. Developers can see the plan and decompose the high level tasks into detailed assignments in whatever fashion works best for them. As tasks are decomposed and work is completed, Project Server is updated with both resource availability and task progress. Of course, all of this ties into the standard Project Server work approval process so that the project manager maintains some control over the high level plan and changes can be deliberate rather than random. If a project manager wants to deal with all of the detail of the development team, they can configure the integration to import all task breakdown – but for projects that are very large, it’s likely to be overwhelming.
All of this great integrated data can then be rolled up across all the projects in your portfolio into high level enterprise report on progress, resource availability and more:
Let’s look at an example scenario. A project manager can start by defining a high level plan in Project/Project Server. Notice that you can control which tasks are published to Team Foundation Server (not all tasks in a project are development tasks – even though we developers like to think that’s all that matters :)).
The development team lead can then use TFS tools – Team Explorer, Team Web Access, Excel, the Agile Workbook, etc to break down the high level requirements/tasks into the development team’s work – tasks, user stories, etc. This first screenshot is a query run in Team Explorer to show that the Requirements entered in Project Server automatically flowed into TFS, the second shows using Excel to do decomposition and the third shows using the Agile workbooks.
Once the development lead saves the work breakdown, the project manager will get notified of updates and can use Project Web Access to view task and resource rollup. Notice, the project manager is not seeing the individual tasks but rather a rollup that includes resource utilization so they can do overall resource planning.
And those rolled up detailed tasks are viewed by the project manager as multiple people working on the same high level task.
Of course, if the project manager want a detailed view, all tasks can be marked for publishing between Project Server and TFS and you can get a fully detailed project plan.
If you’d like to learn more there’s a great TechEd presentation/demo done just a couple of weeks ago here: http://www.msteched.com/2010/Europe/OFS201
We’ve had a few project teams in Microsoft IT using our TFS/Project Server integration since May of this year. The feedback has been extremely positive. You can read some of their early comments in the post I did announcing the initial CTP. We checked in with them again a couple of months ago to get another good overview of how it was working for them. Here is an excerpt from the meeting notes from that discussion…
What did we hear?
What did we see?
The TFS-PS Feature Pack is included in MSDN subscriptions purchased with Visual Studio Ultimate. Specifically, in order to use the TFS-PS Feature Pack, an organization must own at least one license of VS Ultimate with MSDN. With that one license, the software can be downloaded and installed and then all users with access to either the Project Server or the TFS server that are connected can benefit from the integration. This is yet one more advantage to owning an MSDN subscription. If you go to your MSDN download center, you should find the Visual Studio Team Foundation Server 2010 and Project Server Integration Feature Pack as an available download.
This Feature Pack is being released in tandem with VS/TFS 2010 SP 1. It supports Team Foundation Server 2010 and Project Server 2007 and 2010. For the Project Server <-> TFS integration to fully work, there are a few components that work together:
We haven’t announced a release date for SP1 or for this Feature Pack but our expectation, pending your validation, is that it will ship sometime in the first half of next year (2011). It will be possible to upgrade from this Beta to the final release easily while preserving all of your data and state.
The synchronization between TFS involves components on the TFS server, on the Project Server server and on the client. Unfortunately, most of the administrative functions are command line tools right now. On the good side that means they are scriptable, on the bad side it means they aren’t so intuitive. Over time, we hope to add GUI administration as well. Here’s a screen shot of the help for the command line tool.
I won’t go into the details of which commands you need to run and what parameters you need to pass here. Detailed information on how to configure this is available in our TFS <-> Project Server integration documentation: http://download.microsoft.com/download/1/D/8/1D84BA74-4A54-4CA8-B8F8-6DC7F8CFB0FE/dv_TFSProjectServer.chm
Once this is all configured, you’ll find TFS fields available in Project Server (as you’ve seen in some of the screenshots above) and Project Server information available in TFS. Here you see a new tab on the work item form with information about synchronization between TFS and Project Server. Changes made either to TFS or to Project Server will generally show up on the other side within just a few minutes.
Note that Project Server can have different values for some things than TFS does. For example, let’s assume a developer enters a new remaining work estimate that increases the total work causing the project managers plan to require a change. The project manager (like they can do in Project Server today) can reject that change. Obviously, what needs to happen is a conversation between the dev lead and the project manager to figure out what to do about significant project schedule changes. Rather than just undoing the estimate change the dev team made, we capture both the TFS value and the Project Server value. Field comparison queries, introduced in TFS 2010, enable you do do things like write a query that will show all work items where the Project Server remaining work is different from the TFS remaining work.
Integration between Project Server and TFS is a huge leap forward for organizations that have both Project Management Offices managing many projects and development teams using TFS. It enables the organizations to work together effectively while not getting overwhelmed with each others’ detail. The most innovative thing about it is that it enables the two groups to work both together and independently by enabling them to work at different granularities while providing effective rollup between them. It:
Although integrating data together is hugely valuable (and we do a lot of it), true integration requires more than that. It requires integrating people and part of that is making sure everyone has a natural way to participate in the team using the tools and processes they are familiar with and that best enable them to get their jobs done. Integration between TFS and Project Server is just the next step in the long journey of ensuring all constituents involved in application lifecycle management have access to the right information at the right time to make the right decisions.
I hope you really enjoy using it. As always, please try it out and give us any feedback you have.