TFS 15 RC2 installation

I haven’t blogged about the TFS installation procedure for some but when I tried the installations wizard for TFS 15 RC2 I found some things I wanted to share.

The first thing you notice is that you don’t get a lot och options like, basic, advanced, aplication tier and so on, you just get configure Team Foundation Server, the options are built in later on in the Wizard.

tfs-15-1

The second thing we have to select is if we want to do a new installation or if we have existing databases to upgrade or a pre-production upgrade testing. In my case I have existing TFS databases.

 tfs-15-2

 Before starting the upgrade you confirm that you have a backup and SQL instance as usual.

tfs-15-3

Now comes the part a really like, I get to select if its a production environment or a Pre-Producktion Upgrade Testing. That means that I don’t need to run TfsConfig PrepareClone, TfsConfig ChangeServerID and TfsConfig RemabDB anymore! Great!

tfs-15-4

tfs-15-5

When it comes to the app tier the installation recognizes the existing IIS settings and you can change the public URL directly in the wizard instead of afterwards.

tfs-15-6 

As I see it this is a really god installation improvement that simplifies some of the more complicated upgrade scenarios.

License change for Release Management in TFS “15”

Since the new version of Release Management was introduced in TFS 2015.2 it has been in trial mode, anyone with at least a TFS CAL/Basic License could use it.

Based on the old Release management system I thought that you would need Visual Studio Enterprise to create releases when the trial was over, I was wrong.  From TFS “15” RC2 1 all Release Management features, including authoring of release definitions, are included in TFS CAL. Stakeholder can as before approve or reject releases.

Concurrent pipelines

From now you can run one release pipeline at a time for free, additional releases that you create will be queued automatically, additional pipelines will cost $15/concurrency each month or it looks like you will be able to utilize Visual Studio subscriptions in increasing the number concurrent release pipelines .

TFS 2015 Update 2

TFS 2015 update 2 was release a few days ago, so what’s new in TFS 2015.2? Her are some of them

Release management

We have a completely new release system, based on the same principles as the new build system we got in TFS 2015. The system is web based and uses the same kind of “build steps” and the build system. Build and release are connected together so a build can trigger a release and the release could go through several environments with manual or automatic approvers.

Delete work items

Instead of setting unwanted work items to “Removed”, we can no actually delete them. They end up in a recycle bin from where we can restore them or permanently delete them if needed.

Auto-refresh dashboards

The dashboards that we have in TFS web access now have auto refresh which is nice if you want to show it on a TV or a projector for the team and other stakeholders.

@mentions

You could use @mentions, that is @ followed by a user’s ID or name in a pull request or in a code comment while checking in code, the user mention will then get a mail notification. This doesn’t work in work item descriptions or history yet.

Gated-Check-in

We had gated check-in in the old system as a build trigger and it’s now introduced in the new with update 2.

Marketplace

Microsoft Marketplace was earlier only available for the online version of TFS called VSTS, but now in update 2 its available for “On-prem” TFS. See more at: https://marketplace.visualstudio.com/vsts

Create projects from the web access

As a TFS Administrator you can now both create and delete projects from the TFS Webb Access, you don’t have to use Visual Studio and TFS Admin console from this anymore.

Read more…

https://www.visualstudio.com/en-us/news/tfs2015-update2-vs.aspx

TFS 2015.1

TFS 2015 Update 1 was release some time ago, here is a recap of my favorites.

The project homage

It’s now possible to modify project homepage and make several dashboards, there are a lot of widgets to select from. One om my favorites is the markdown widget where you can add text links and pictures, this can be a great place to share project information.

Drag and drop

There are improvement everywhere for drag and drop and multi select

  • Drag-and-drop reordering and re-parenting
  • Dragging items to an iteration
  • Dragging items to the mapping pane
  • Support for move to top and move to position on the context menu
  • Bulk edit
  • Bulk assign to

If you have a PBI/User Story that is not completed in a sprint and you drag it to a new sprint the completed tasks stay in the old sprint.

Styles and Tags

You can add color to your cards and tags according to certain criteria both in the Kanban and in the sprintboard. In the sample below I added red color to the blocked Tag.

And here I added a style that sets the color of the Task to red if there are more than 12 hour left.

Tasks as checklist

Tasks appears as a checklist in the Kanban board.

Multiple activities in the sprint

It’s finally possible to have multiple activities to a user in a sprint!

 

GIT and TFSVC in the same project

Up to now if you want to try GIT out or start using it for your project you had to create a new TFS project. Now GIT and TFSVC can coexist in the same TFS project.

 

SonarQube build tasks

SonarQube is a great product to control you technical debt, you have been able tou use it with TFS build for some time but now there are build tasks for sonar that makes to work easier.

 

Test retention policy

There has over the years been a big problem with test results not being deleted when the build a removed with the build retention policy, the test results and files needed for the test could take a large portion of your TFS database. Now we have a built in test retention policy that removes the test files and attachments according to your needs.

Office integration

Team Explorer doesn’t exist as a separate download anymore, if you want the Excel, Project or PowerPoint Integration you can download this separately here. You need a TFS CAL to use it.

Download TFS 2015 update 1 here

Migrate a TFS project to another process template.

Back in 2011, 4 years ago I wrote a blog post called “Manual upgrade a TFS project to a new Process template”. Since then I have got some questions and feedback and now it’s time for an updated version based on the latest process templates in TFS 2015, this time from Agile to Scrum.

  1. Start with downloading the process template you want to upgrade to, to disk with the process template manager, for example to D:\MyDownloadedTemplate

2. Backup your old work item types in the TFS project you want to upgrade in case you need to do a rollback. Use the process template editor in Team Foundation Power Tools or from a Visual Studio command prompt with Witadmin.exe.

MD “C:\Temp\MyWorkItemBackup”

CD C:\Temp\MyWorkItemBackup

witadmin.exe exportwitd /collection:http://MyTFS:8080/tfs/MyCollection /p:”Demo-Agile” /n:Bug /f:”Bug.xml”

witadmin.exe exportwitd /collection:http://MyTFS:8080/tfs/MyCollection /p:”Demo-Agile” /n:Task /f:”Task.xml”

witadmin.exe exportwitd /collection:http://MyTFS:8080/tfs/MyCollection /p:”Demo-Agile” /n:”User Story” /f:”UserStory.xml”

witadmin.exe exportwitd /collection:http://MyTFS:8080/tfs/MyCollection /p:”Demo-Agile” /n:Issue /f:”Issue.xml”

witadmin.exe exportwitd /collection:http://MyTFS:8080/tfs/MyCollection /p:”Demo-Agile” /n:”Test Case” /f:”TestCase.xml”

3. If you have custom fields, add them to the downloaded process template with the process template editor.

4. Some work item types have different names in Scrum and Agile; because of this you first have change the name in the new template to the name of the work item type in the old template, Impediment to Issue and Product Backlog Item to User Story.

5. Upload the Work Item types from the new template to your project with Witadmin.exe from the Visual Studio command prompt.

CD C:\MyDownloadedTemplate\Scrum\WorkItem Tracking\TypeDefinitions

Witadmin.exe importwitd /collection:http://MyTFS:8080/tfs/MyCollection /p:”Demo-Agile” /f:”ProductBacklogItem.xml”

witadmin.exe importwitd /collection:http://MyTFS:8080/tfs/MyCollection /p:”Demo-Agile” /f:”Task.xml”

witadmin.exe importwitd /collection:http://MyTFS:8080/tfs/MyCollection /p:”Demo-Agile” /f:”Bug.xml”

witadmin.exe importwitd /collection:http://MyTFS:8080/tfs/MyCollection /p:”Demo-Agile” /f:”TestCase.xml”

witadmin.exe importwitd /collection:http://MyTFS:8080/tfs/MyCollection /p:”Demo-Agile” /f:”CodeReviewRequest.xml”

witadmin.exe importwitd /collection:http://MyTFS:8080/tfs/MyCollection /p:”Demo-Agile” /f:”CodeReviewResponse.xml”

witadmin.exe importwitd /collection:http://MyTFS:8080/tfs/MyCollection /p:”Demo-Agile” /f:”FeedbackRequest.xml”

witadmin.exe importwitd /collection:http://MyTFS:8080/tfs/MyCollection /p:”Demo-Agile” /f:”FeedBackResponse.xml”

witadmin.exe importwitd /collection:http://MyTFS:8080/tfs/MyCollection /p:”Demo-Agile” /f:”SharedStep.xml”

witadmin.exe importwitd /collection:http://MyTFS:8080/tfs/MyCollection /p:”Demo-Agile” /f:”Feature.xml”

witadmin.exe importwitd /collection:http://MyTFS:8080/tfs/MyCollection /p:”Demo-Agile” /f:”Impediment.xml”

6. Rename Issue and User Story to Impediment and Product Backlog Item

witadmin.exe renamewitd /collection:http://MyTFS:8080/tfs/MyCollection /p:”Demo-Agile” /n:”Issue” /new:”Impediment”

witadmin.exe renamewitd /collection:http://MyTFS:8080/tfs/MyCollection /p:”Demo-Agile” /n:”User Story” /new:”Product Backlog Item”

7. Upload the categories.xml

CD C:\MyDownloadedTemplate\Scrum\WorkItem Tracking

witadmin.exe importcategories /collection:http://MyTFS:8080/tfs/MyCollection /p:”Demo-Agile” /f:”Categories.xml”

8. Upload the ProcessConfiguration.xm

CD C:\MyDownloadedTemplate\Scrum\WorkItem Tracking\Process

witadmin.exe importprocessconfig /collection:http://MyTFS:8080/tfs/MyCollection /p:”Demo-Agile” /f:”ProcessConfiguration.xml”

9. If you want the queries associated with a Scrum project copy them from an existing project.

10. Remove your old reports from your project from the project report page and use tfpt.exe from Team Foundation Power Tools to create new reports.

tfpt addprojectreports /collection:http://MyTFS:8080/tfs/MyCollection /teamproject:”Demo-Agile” /processtemplate:”Scrum” /force

Modern development and infrastructure

With the cloud development the last few years we have a couple of new opportunities regarding infrastructure on developer workstations, team collaboration, development/test and production environments.

Developer workstations

There are two important aspects regarding developer workstations:

The first is the time to get a new workstation running, the average time to get a new team member effective is about three weeks. This depends on the time the get the hardware in place and the actual software needed.

The second is the cost for the actual hardware, developer usually have high demands on their computers and most companies buy new workstations in 2-3 year intervals. Apart from this some laptops are lost.

The solution is to run the developer workstations in the Azure. Microsoft have prepared images for the different versions of Visual Studio, it only takes a couple of minutes to spin them up and as part of the setup you select how much RAM and CPU you need and of course you can change this whenever you need. A bonus is that you can access your workstation from anywhere.

Team Collaboration

As a collaborative platform for source code, project planning, build and release you might use Microsoft Team Foundation Server (TFS). TFS also exits as service, Visual Studio Online (VSO). There are a number of advantages with VSO compared to “on-premises” TFS, for example:

  • Better access to the platform, you can access it from anywhere in the world, you can access your data with your Live-id or with your AD-account if you use Azure Active Directory.
  • Cheaper, as you don’t need your own hardware.
  • You don’t need to handle any upgrades, Microsoft will handle this for you. New functionality is release every third week.

Development, test and production environments

The test environments are usually a large cost for many companies especially in relation to how much they are used. By using Azure for your development and test environments you don’t need your own hardware for this. You can also scale up and out depending on your needs and you only pay for the time that the servers are turned on.

A bottleneck for many companies is that it can take weeks to create a new environment or modify an existing, with Azure you do this with just a click.

There are services you can use in Azure without spinning up any servers at all, for example:

  • Web applications
  • SQL-databases
  • BizTalk-services

Load testing

There are possibilities through MSDN and Azure to create load test rigs so that you don’t need to have your own infrastructure for this.

What does all this cost?

Microsoft has a license calculator where you can add your infrastructure to see what this would cost you. Test the calculator here.

If you have an MSDN license, then you can use most of this for free, login to MSDN and activate your MSDN benefits.

 

 

 

What’s new in TFS 2015

TFS 2015 is now in Release Candidate (RC) and is probably Release to RTM soon. There is a lot of new stuff coming, here are some of my favorites.

The license model

There are a few rather god changes in the license model, the biggest one is that if you are an acceptance tester running test from TFS Web Access you don’t need Visual Studio Test Professional any more, you just need a TFS CAL (client access license).

Team Rooms and Chart Authoring are included in the TFS CAL.

Visual Studio Ultimate and Premium will be merged to Visual Studio Enterprise

Agile planning

There are lots of new things simplifies Agile planning, here are some of them:

Sprint backlog

It’s now possible reorder both PBIs/Stories and Tasks and the sprint backlog, you can also move a Task from one PBI/Story with drag and drop.

Unparented Tasks are shown both in the sprint backlog and in the sprint board.

Customize Cards

Cards can be customized, you can select:

  • To show Work Item id or not
  • To select avatar, avatar and name or just name of the person assigned to the work item
  • Remaining work on a task
  • Tags
  • Up to ten extra fields to be added to the card


Bugs in the backlog or not

You can select if you want bugs to appear on the backlog and boards with requirements (PBIs and Stories) or on the backlogs and boards with tasks or not to appear on backlogs or boards at all.

The Kanban board

In the Kanban board you can now

  • Reorder your PBIs/Stories
  • Add new and edit Work Items
  • Split your columns in Doing/Done
  • Add more swimlanes
  • Add definition of done (DOD)

Other things

  • There is a @CurrentIteration variable in queries so you don’t have to change your sprint queries and charts every new sprint


 

  • You can share your personal queries with other people for a period of 30 days
  • There are text filtering on backlogs and queries

Wiki

A wiki is included as part of the Team Project, you use Markdown language to write your content and you can create and edit files directly from TFS Web access. It’s of course possible to edit any file the same way.

Development

There are a lot of nice development features but there are two a really have been waiting for:

  1. You can select if you want “Resolve” or “Associate” as default when you check in code associated with a work item
  2. Intellitest. Intellitest is a way to automatically create unit tests from your code. You need Visual Studio Enterprise for this.

Build and Release Management

The build and release system in TFS 2015 is completely new and is accessible from TFS web access. Apart from being web based it’s also cross platform, you will be able to build Xcode, Android and Java and use things like Ant, CMake, Jake, Maven Puppet and Chef.

First you select what kind of build you want to create.

Then you select your different steps.

And add new ones if you need.

 

Changes in the builds will be versioned.

The new build system will be ready from TFS 2015 RTM but we will have to wait for the new release system until TFS 2015 Update 1.

Change project name

It’s finally possible to change a projects name.

Extensibility

There is support for REST APIs and Service hooks

 

 

 

Managing security in TFS the easy way

The old way

Before the introduction of Teams in TFS 2012, managing Security was fairly easy, my recommendations to my customers was always the same, use AD-groups and let the TFS Administrator do all the work. Create three AD groups for every TFS project and add them to the TFS project groups.

TFS Group AD-group
Project Administrators TFS-MyProject-Administrators
Project Contributors TFS-MyProject-Contributors
Project Readers TFS-MyProject-Readers

 

Use the same groups and add them to SharePoint and Reporting Services according to this matrix:

TFS SharePoint Reporting Services
Project Administrators Project site-level Administrator Project site-level Content Manager
Project Contributors Project site-level Contributors Project site-level Browser
Project Readers Project site-level Readers Project site-level Browser

 

A great tool to help you do this is the Team Foundation Administration Tool in Codeplex

The new way

When Teams were introduced in TFS 2012 things changed, a Team Administrator could add users to a Team and they were automatically added to the project contributors group overriding the project contributor AD groups. I thought a lot about this and spoke to my colleagues at Solidify and my customers and the got the idea to try to skip the project AD groups and let the TFS project completely handle themselves and this way lighten the work load of the TFS Administrator.

Use the build in Security this way:

TFS Comment
Project Administrators The project administrator creates Teams and assigns Team Administrators
Team Administrator The Team administrator assigns members to his/her Teams and they are automatically added to the project contributor groups.
Project Contributors You might consider giving everyone in the Project Contributor group some or all of the following rights to make things easier:

  • Add/Change Areas
  • Add/Change Iterations
  • Create Shared Queries
  • Create builds
  • Create branches
Project Readers

 

Let the project administrator handle SharePoint and Reporting services the same way if you use them. You might even consider to give everyone read access to all project reporting sites to make thins easier.

Managing Access levels in TFS Web Access

Regardless if you chose the old way or the new way you also have to use the Access Levels in TFS Web Access to Access your users to the right Access Levels.

Acces Level Comment
Stakeholder This level is free and the user can add and change Work Items and se but not change the Agile planning
Basic This is the level for product owners, scrum masters and other people that are not developers but want to do Agile planning. Create the following AD-groups: TFS_CAL_Users and TFS_MSDN_Professional_Users
Advanced This level has access to all parts of TFS web access. Create the following AD-groups: TFS_MSDN_Enterprise_Users (former Ultimate and Premium), and TFS_MSDN_Test_Professional_Users

 

My recommendations here are that you set the default level to Stakeholder and create AD-Groups for the different MSDN licenses and add them to the Access Level groups. The reason to use AD groups here is that in my opinion that the AD groups are better for audit purposes and if Microsoft decide to change the license levels they are easier to move from one level to another.

Test license change in VSO and TFS 2015

Many of my customers are having problems with the license model for testers where a non-frequent tester (for example Acceptance tester) has to have at least a Visual Studio Test Professional to do their test even if they only run test in the test hub in TFS Web Access.

This changes next year!

In January Microsoft is including test execution capabilities in the test hub into the Basic level of VS Online, people who need to manage tests in the test hub can use an Advanced license and people who need the full Microsoft Test Manager set of capabilities can purchase Visual Studio Test Professional or above.

In the on-premises version of TFS, TFS 2015 Microsoft is including test execution rights, using the test hub into the TFS Client Access License (CAL). User who need more will need at least Visual Studio Test Professional or above.

Read more about licenses here:

Release management license change

Stakeholder license change

Release Management 2013 licensing change

When Microsoft acquired InRelease, later Release Management for Visual Studio in 2013 you had to pay a license for each agent deployed on every server you wanted to deploy to. Even though you got licenses together with Visual Studio Ultimate these agents would cost a lot of money for big companies.

Effective January 1, 2015, target servers receiving automated deployment from Release Management Server will no longer require a Visual Studio Deployment license, in other words, it’s free!

From the licensing whitepapers:

To utilize the Release Management solution in Visual Studio 2013, you must acquire licenses for the following:

  1. Each person using the Release Management Client for Visual Studio 2013 for creating, updating or deleting a release pipeline sequence must be licensed for either Visual Studio Ultimate with MSDN, Visual Studio Premium with MSDN, Visual Studio Test Professional with MSDN or MSDN Platforms.
  2. A Team Foundation Server CAL is not required to approve stages or sign off on a release.

Read more about in in the Visual Studio and MSDN Licensing White Paper