When I first saw the list of features in TFS 2015 Update 1 CTP, I was stunned. I felt like it was an early Christmas! There is so much goodness in this release that it feels like it’s actually TFS 2016! As usual, the upgrade process is straightforward, and since there are no major schema changes from the RTM, it’s fairly fast too. The CTP is “go-live” which means you can apply it to your production servers, and get support. However, there may be a couple bugs here and there (not that I’ve experienced any).
Top 10 Features
You can find the full list of features here, but here are a few of my favorites.
1. Git and TFVC in the same Team Project
Lots of my customers have TFVC (centralized version control) in TFS. When Git support came out, the only option they had if they wanted to switch to Git was to create a new “Git-based” Team Project and port source code over. Then they got into a horrible situation where work items were all in the TFVC Team Project, and the source code was in the new Git Team Project.
Now, you can simply add a new Git repo to an existing TFVC Team Project! Navigate to the Code hub in Web Access, click the repository drop-down (in the top left of the Code pane) and select “New Repository”:
Enter the name of your repo and click Create. You’ll see the new “Empty Git page” (with a handy “Clone in Visual Studio” button):
As a bonus, you can also add TFVC to a Git Team Project! This makes sense if you want to source control large assets. That way you can have your code in Git, and then source control your assets in TFVC, all in the same team project.
If you’re looking for alternatives to supporting large files in Git, then you’ll be pleased to note that VSO supports Git-LFS. Unfortunately, it’s not in this CTP – though it is planned for the Update 1 Release. As a matter of interest, the real issue is the NTLM authentication support for Git-LFS – the product team are going to submit a PR to the GitHub Git-LFS repo so that it should be supported by around the time Update 1 releases.
2. Query (and Notifications) on Kanban Column
Customizing Kanban columns is great – no messing in the XML WITD files – just open the settings, map the Kanban column to the work item states, and you’re good to go. But what if you want to query on Kanban column – or get a notification if a work item moves to a particular column? Until now, you couldn’t.
If you open a work item query editor, you’ll see three additional fields that you can query on:
- Board Column – which column the board is in. Bear in mind that the same work item could be in different columns for different teams.
- Board Column Done – corresponding to the “Doing/Done” split
- Board Lane – the swimlane that the work item is in
Not only can you query on these columns, but you can also add alerts using these fields. That way you could, for example, create an alert for “Stories moved to Done in the Testing column in the Expedite Lane”.
3. Board Enhancements
There’s a lot to discuss under this heading. If you’re using the Kanban boards, you’ll want to upgrade just for these enhancements.
Board Settings Dialog
The Board Settings Dialog has been revamped. Now you can customize the cards, columns, CFD and team settings from a single place – not a single “admin” page in sight! Just click the gear icon on the top right of a Backlog board, and the Settings dialog appears:
TFS 2015 RTM introduced field customization, so not much has changed here. There’s an additional setting that allows you to show/hide empty fields – if you’ve got a lot of cards, hiding empty fields makes the cards smaller where possible, allowing more cards on the board than before.
You can now set conditional styling on the cards. For example, I’ve added some style rules that color my cards red (redder and reddest) depending on the risk:
You can drag/drop the rules (they fire in order) and of course you can rules for multiple fields and conditions. You can change the card color and/or the title color (and font style) if the condition matches. Here’s my board after setting the styles:
You can now colorize your tags. You can see the iPhone and WindowsPhone tags colored in the board above because of these settings:
Under board settings, you’ll be able to customize the Columns (and their state mappings, Doing/Done split, and Definition of Done. Again you’ll see a drag/drop theme allowing you to re-order columns.
The same applies to the swimlanes configuration.
As a bonus, you can rename a Kanban column directly on the board by clicking the hearer:
Charts and General
Under “Charts” and “General” you’ll be able to configure the CFD chart as well as the Backlogs (opt in/out of backlogs), Working Days and how your bugs appear (Backlogs or Task boards or neither). These settings used to be scattered around the UI, so it’s great to have a single place to set all of these options.
Tasks as Checklists
If you use Tasks as checklists, then this is a great new feature. Each Story (or Requirement or PBI, depending on your template) card now shows how may child Tasks it has. Clicking on the indicator opens up the checklist view:
You can drag/drop to reorder, check to mark complete and add new items.
Task Board Enhancements
The Task board also gets some love – conditional styling (just like the Kanban cards) as well as the ability to add a Task to a Story inline.
The “old” Home page (or Team Landing page) let you have a spot to pin charts or queries or build tiles. However, you couldn’t really customize how widgets were positioned, and if you had a lot of favorites, the page got a little cluttered. Enter Dashboards. You can now create a number of Dashboards and customize exactly which widgets appear (and where). Here I’m creating a new “Bugs” dashboard that will only show Bug data. Once you’ve created the Dashboard, just click the big green “+” icon on the lower right to add widgets:
Once you’ve added a couple of widgets, you can drag/drop them around to customize where they appear. Some widgets require configuration – like this “Query Tile” widget, where I am selecting which query to show as well as title and background color:
You can see how the widgets actually preview the changes as you set them.
To add charts to a Dashboard, you need to go to the Work|Queries pane, then select the chart and add it to the Dashboard from the fly-out menu:
Similarly, to add a Build widget to the Dashboard you need to navigate to builds and add it to the Dashboard of your choice from the list of Builds on the left.
Now I have a really cool looking Bugs Dashboard!
5. Multiple Activities Per Team Member
You can now set multiple activities per team member. I’ve always thought that this feature has been pretty limited without this ability:
Now you have a real reason to use the Activity field on the Task! The Task burn down now also shows actual capacity in addition to the ideal trend:
As a bonus, you can now also add new Team members directly from the Capacity page – without having to open up the Team administration page.
6. Test Result Retention Policies
There is a tool for cleaning up test results (the Test Attachment cleaner in the TFS Power Tools) – but most users only use this when space starts running low. Now you can set retention policies that allow TFS to clean up old run, results and attachments automatically. Open up the administration page and navigate to the Test tab:
7. Queries: Project-Scoping Work Item Types and States
If you have multiple Team Projects, and at least one of them uses a different template, then you’ll know that it can be a real pain when querying, since you get all the work item types and all the states – even if you don’t need them. For example, I’ve got a Scrum project and an Agile project. In RTM, when I created a query in the Agile project, the Work Item types drop-down lists Product Backlog items too (even though they’ll never be in my Agile Team Project). Now, by default, only Work Item Type (and States) that appear in your Team Project show in the drop-down lists. If you want to see other work item types, then you’re doing a “cross-Project” query and there’s an option to turn that on (“Query across projects”) to the top-right of the query editor:
8. Work Item Branch Policies
Now, in addition to Build and Code Review policies for Pull Requests in Git branch policies, you can also require that the commits are linked to work items:
9. Labeling and Client-site workspace mapping in Builds
The build agent gets an update, and there are some refreshed Tasks (including SonarQube begin and end tasks). More importantly, you can now label your sources on (all or just successful) builds:
Also, if you’re building from a TFVC repo, you can now customize the workspace mapping:
10. Pull Requests in Team Explorer
You’ll need Visual Studio 2015 Update 1 CTP for this to work. Once you have Update 1, you’ll be able to see and create Pull Requests in the Team Explorer Pull Requests tile. You can also filter PRs and select between Active, Completed and Abandoned PRs. There are PRs you’ve created as well as PRs assigned to you or your team. Clicking a PR opens it up in Web Access:
I love the quarterly cadence from the Visual Studio Team. While it’s sometimes irritating to see features in Visual Studio Online (VSO) and not in TFS, the positive is that all the learning and feedback that the product team get when releasing features on VSO means that the features are more polished by the time they hit TFS.
This is an update you want to get live now – it’s packed with lots of goodness!