TFS and VSO guidance – Teams

I often get questions along the lines of “How do we do this in TFS?” It can be anything from setting up teams to choosing the best process template or how to structure a useful area path tree. My answer is always “Well, it depends…” because that is the truth. It really does depend on quite a lot of things. Fortunately, most of the time, you can change how you do things as you gather more and more experience from working with TFS in your organization. On the other hand, if you start out wrong it might require quite a lot of work to rectify that mistake. This realisation quickly turns the original question into “Ok, so how are we supposed to do this in TFS? Are there any recommendations or best practices? What does Microsoft say?”

Well, if you take a quick look at MSDN Library you will quickly realize that Microsoft actually has quite a lot to say. But over the years they have become less and less prescriptive. Which is good. Unless you are looking for some solid pointers… As far as recommendations and best practices goes these golden nuggets of information can sometimes be difficult to find.

So, this is the first post in a series where I will try to give you some solid guidance on TFS/VSO or point you towards existing solutions and recommendations. These posts will be based on my experience from working with TFS over the last 10 years.

Setting up Teams

What you need to know here is that the default way of setting up Teams in a Team Project is flawed. It works, but it is flawed and it will often cause grief down the road. Why? Because it uses the Area Path field to define your teams. This is not what the field was originally intended for. The Area Path field is intended to categorize work into product areas. The team is not a product area. Having multiple purposes for one field is bad design and this will quickly become apparent when you want two teams to work on the same product as you suddenly find yourself maintaining two identical area path structures in TFS, one for each team.

A much much better way to set up teams in TFS is to add a separate Team field, which is actually fully supported by Microsoft and opens up a hidden Team settings interface in WebAccess. It will require some customization of your TFS but it is definitely worth the effort.

Team field settings page

Unfortunately, for those of you who are using VSO it is currently not possible to do the necessary customizations in VSO. You’re stuck with the default. This might change in the near future though as VSO process customization is coming.

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.

 

 

 

License Update Visual Studio Online and maybe TFS 2013.4

Stakeholders

With all the nice stuff included in TFS web access you probably have a lot of Stakeholders who are interested in using TFS web access. Up to now to use the Backlog and other stuff you needed a TFS CAL or pay 20$ per user per month in Visual Studio Online.

Now Microsoft have decided to let Stakeholders use much of this for free in Visual Studio Online with a new Stakeholder license. This will probably be introduced to on Premises TFS in TFS 2013.4 as a part of the “Limited User Access”

What will be able to do

  • Full read/write/create on all work items
  • Create, run and save (to “My Queries”) work item queries
  • View project and team home pages
  • Access to the backlog, including add and update (but no ability to reprioritize the work)
  • Ability to receive work item alerts

What they won’t be able to do

  • No access to Code, Build or Test hubs.
  • No access to Team Rooms
  • No access to any administrative functionality (Team membership, license administration, permissions, area/iterations configuration, sprint configuration, home page configuration, creation of shared queries, etc.)

Access to the Test Hub in Visual Studio Online

If you want access to the Test hub in TFS Web Access you need Visual Studio Premium, Ultimate or Test professional. If you are an acceptance tester and only need access to the Test Hub that might be a bit expensive, the cheapest version you can buy is Visual Studio Test professional.

Microsoft has now decided to include this in the Visual Studio Online Advanced plan. At the moment this will not be included in on premises TFS.