Blog Home  Home Feed your aggregator (RSS 2.0)  
Accentient
Visual Studio ALM Experts
 
# Wednesday, May 02, 2012

Thank you for attending the workshop yesterday. You can find the presentation link below.

It was three hours of packed information (and a packed room). I believe we had around 90 people in the workshop.

image

The workshop focused on five primary topics:

  • Scrum is popular (because it works)
  • Scrumdamentals (the fundamentals of Scrum)
  • Using Scrum
  • Continuous Improvement
  • Next Steps

As I mentioned, there are some good resources for you to bookmark:

Thank you to Boise Code Camp and the Idaho Technology Council for supporting the workshop.

Files: Presentation (3.5 mb)

Wednesday, May 02, 2012 10:52:28 AM (Mountain Daylight Time, UTC-06:00)  #    Comments [2]   Conferences | Scrum  | 
# Monday, April 30, 2012

Overview

In TFS/VS 11, frameworks other than MS Test are supported, which is cool. Peter Provost mentions them here.

OK, so you start to use this great new feature, queue up a team build and the tests aren’t run.

Assem Bansal has a great article here, so you do that, and no tests are run either. Confusing. The issue is that the 64 bit version is not picking up the reference to the test extension even when it is installed. Hey, it is a beta!

The steps to correct this are below, which I picked up from Ricci Gian Maria here.

I put the steps in a checklist to make it easier for me to follow.

Step

Description

1

Log on locally to the build server

2

Install the nUnit test runner extension

http://visualstudiogallery.msdn.microsoft.com/6ab922d0-21c0-4f06-ab5f-4ecd1fe7175d

3

Run the download, and the extension will be installed

4

Open windows explorer, and navigate to the users folder for the account that you are logged in as

5

Copy all the nUnit assemblies from the nUnit extension (you will have to browse them until you see the four listed below.

They will be in C:\Users\<UserName>\AppData\Local\Microsoft\VisualStudio\11.0\Extensions\<Extension Folder>

clip_image002

6

Add them to a location in version control

If you are doing a lot of build customisation (you probably will be - eventually :) ), it is best practice to have a team project for the extension assemblies as well as the customised build templates

clip_image004

7

Add the version control reference to the build controller

Build menu - manage Build Controllers - Properties; Set the Version control path to custom assemblies to the location created in step 6.

clip_image006

8

Queue the build with a solution containing nUnit tests

9

The tests are run, and the data is stored in TFS

clip_image007

And now the tests are in the build. Awesome.

Monday, April 30, 2012 1:40:39 AM (Mountain Daylight Time, UTC-06:00)  #    Comments [1]   Simon Reindl | Team Foundation Build | TFS 11 | Unit Testing | Visual Studio 11 | Visual Studio 2010  | 
# Wednesday, April 11, 2012

Tracking waste in TFS

Overview

Tracking waste and gathering the empirical data is one of the most effective ways of convincing people for the need to adapt.

This needs an Estimated Effort field, as in Scrum for Team System template.

This can be done with the MS templates, by adding this field in.

You need to use the estimated effort field, so that the burndown is not affected.

Steps

Within the area path of the team project, create a top level area called waste, under that add the key waste areas as you become aware of them

clip_image001

Whenever a team member encounters an issue that is causing them to lose time, they create a Task (Sprint Backlog Task in SfTS 3) and set the Area path (feature scope in SfTS 3) to be waste and the sub area if known.

Then update the estimated effort with the amount of time lost.

clip_image002

Set

Estimated Effort = time lost

Planning scope/Iteration Path = sprint

Work Remaining = 0

Feature Scope/Area Path = Waste\SubArea

Description = Meaningful comment

Title = Meaningful Title

Create a separate work items or update the work item as and when further waste is identified.

Reporting

Create a new work item query, and save it with a meaningful name. I have used "Waste Query"

clip_image003

Add the columns that you want to report on, by editing the column options. I have added the Estimated Effort and Area Path columns

clip_image004

After saving the query, you can then open it up in excel and create a report with a pivot table and a chart to help create transparency regarding waste

clip_image005

Other Process Templates

For this to work with other process templates, you will need to add in an “Estimated Effort” field to the Task work item

1. Get the latest version of the power tools for the version of TFS that you are using:

TFS11: http://visualstudiogallery.msdn.microsoft.com/27832337-62ae-4b54-9b00-98bb4fb7041a

TFS2010: http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f

2. Open the Task work item from the server

image

Select the Team Project Collection, Team Project, and Work Item to edit

SNAGHTML1235dce

Add a new field called Estimated Effort, with the details as below.

Note: The reference name must have a full stop and no spaces.

image

Once that has been completed, you need to surface the new field on the Work Item Form

Click On the Layout tab, right click on the column to add the field to , new control

image

Add the details of the new field

image

Preview the form to check, and then save the changes.

Create a New Task work item to check your changes

image

Top Tip: get the power tools installed, and use Work Item templates to reduce the friction of creating new work items.

image

Wednesday, April 11, 2012 1:37:44 PM (Mountain Daylight Time, UTC-06:00)  #    Comments [1]   Best Practice | Misc | Scrum | Simon Reindl | TFS 11 | TFS 2008 | TFS 2010 | Visual Studio 2010  | 
# Sunday, April 08, 2012

Team Foundation Server 11 has made it even easier to create a work item with a date prior to today. Awesome. So, why would you want to do this? Work with me here …

Maybe you are importing requirements, test cases, or bugs from another tool. Maybe you want to back-fill a Sprint backlog with tasks you were tracking by hand. Maybe you want to create a utility to automatically populate several sprints of work in order to generate and study the burndown and velocity reports. Ok, maybe that last one is just interesting for me as I’m writing my latest book.

Whatever the reason, the approach is not straightforward, so I thought I would share my failures (and ultimate success) with you.

Start here

  1. Download and install the various Beta products (or download Brian Keller’s VM).
  2. Start Visual Studio 11 Beta.
  3. Create a new C# console application (or class library, WPF app, Winforms app, etc.)
  4. Add assembly references and USING statements for Microsoft.TeamFoundation.Client and Microsoft.TeamFoundation.WorkItemTracking.Client.

Attempt #1: I tried the obvious #FAIL

TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(new Uri("http://vstfs:8080/tfs/scrum"));
tpc.EnsureAuthenticated();
WorkItemStore store = new WorkItemStore(tpc);
Project tp = store.Projects["Tailspin"];
WorkItemType wit = tp.WorkItemTypes["Task"];
WorkItem wi = new WorkItem(wit);
wi.Title = "Task 123";
wi.CreatedDate = DateTime.Parse("01/01/2012"); // Cannot assign to this field; it is read-only; won’t even build
wi.Save();

Attempt #2: I tried using Fields collection instead #FAIL

TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(new Uri("http://vstfs:8080/tfs/scrum"));
tpc.EnsureAuthenticated();
WorkItemStore store = new WorkItemStore(tpc);
Project tp = store.Projects["Tailspin"];
WorkItemType wit = tp.WorkItemTypes["Task"];
WorkItem wi = new WorkItem(wit);
wi.Title = "Task 123";
wi.Fields["System.CreatedDate"].Value = DateTime.Parse("01/01/2012"); // TF26194: The value for the field 'Created Date' cannot be changed
wi.Save();

Attempt #3: I tried using two distinct Save operations #FAIL

TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(new Uri("http://vstfs:8080/tfs/scrum"));
tpc.EnsureAuthenticated();
WorkItemStore store = new WorkItemStore(tpc);
Project tp = store.Projects["Tailspin"];
WorkItemType wit = tp.WorkItemTypes["Task"];
WorkItem wi = new WorkItem(wit);
wi.Title = "Task 123";

wi.Save();
wi.Fields["System.CreatedDate"].Value = DateTime.Parse("01/01/2012");
wi.Save();
// TF237124: Work Item is not ready to save

Attempt #4: I explored the BypassRules flag on the WorkItemStore #FAIL

TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(new Uri("http://vstfs:8080/tfs/scrum"));
tpc.EnsureAuthenticated();

WorkItemStore store = new WorkItemStore(tpc, WorkItemStoreFlags.BypassRules);
Project tp = store.Projects["Tailspin"];
WorkItemType wit = tp.WorkItemTypes["Task"];
WorkItem wi = new WorkItem(wit);
wi.Title = "Task 123";

wi.Save(); // TF26212: Team Foundation Server could not save your changes.
wi.Fields["System.CreatedDate"].Value = DateTime.Parse("01/01/2012");
wi.Save();

This was a different error message, so I knew I was getting close. I traded emails with someone on the Visual Studio product group and he walked me in. It turns out that the user (or service account) running the above code must be a member of the Project Collection Service Accounts group. This can be set from either the Team Foundation Server Administration Console or from the web-based control panel. I opted for the web-based control panel and added my user account (Andy) to this group:

image

Attempt #5: Added user to the Project Collection Service Accounts group #SUCCESS

As you can see, I was able to successfully change the Created Date to 1/1/2012 on the second Save operation. The fact that I had to perform two saves is messy, but I can live with it. I’m told that you can set the System.ChangedDate field this way too, but I’m running into similar blocks. Maybe it’s not working yet in the beta. We’ll see.

image

Disclaimer: This feature is intended primarily for synchronization and migration tools. These tools should typically be running as a service account in order to bypass the WI rules. I don’t recommend adding an individual user (like I did above) to the Project Collection Service Accounts group except for developing and testing. One option would be to use impersonation (of the service account) when connecting to the TPC.

Sunday, April 08, 2012 8:51:48 PM (Mountain Daylight Time, UTC-06:00)  #    Comments [1]   TFS 11 | Visual Studio 11  | 
# Monday, March 19, 2012

This is one journey to upgrade TFS 2005 to TFS11

Key points if you are in a hurry

You only get one chance at the upgrade, on the initial install. You need to do this as two upgrades TFS2005 –> TFS2008/2010 –> TFS11.

Two Step Warning

TFS2005 to TFS 11 is not supported in the documentation. Upgrades from TFS 2008 and 2010 are supported. You need to migrate to TFS 2010 first, and then to TFS11.

If you do try to go in one hop, you will see the following TF400101: Database cannot be upgraded.

 

image

Learning Points

Make sure that your Temp location for SQL is twice as big as your largest database. There is a lot of heavy lifting done during the upgrade.

One of the longest steps is usually copying the data around. Portable USB 3 hard drives are very fast. If you can, move the data that way.

If you are using 2005, I strongly recommend migrating to a newer server. With any upgrade it is vital that you have a backup of the data.

You should have three machines, one with your existing TFS2005, a transient TFS2010 server, and the final target TFS11 server.

Step Summary

  • Build the TFS2010 server, install and configure with out SharePoint
  • Backup and Restore your TFS2005 databases to the TFS 2010 database instance
  • Upgrade the TFS2005 to TFS2010
  • Build the TFS11 server, install and configure ALL the prerequisites.
    • SharePoint is optional. If you are using SharePoint, there will be a 10 GB RAM warning.
  • Backup and Restore your TFS2010 databases to the TFS11  database instance
  • Install TFS 11
  • Configure TFS to be an upgrade
  • Upgrade complete

Detailed Steps

Step Zero – Read the guide

or finish reading this post!

Step One – Server Build

Build the TFS2010 server (no SharePoint!), make sure it has at least double the drive space as your SQL databases. The upgrade is disk intensive.

Configure TFFS 2010.

Build the target TFS11 server, but don’t install TFS

Step Two – Backup and Move the databases

Take a backup of the TFS2005 databases

   1:  DECLARE @DBName VARCHAR(50) -- database name 
   2:  DECLARE @path VARCHAR(256) -- path for backup files 
   3:  DECLARE @fileName VARCHAR(256) -- filename for backup 
   4:  DECLARE @fileDate VARCHAR(20) -- used for file name
   5:   
   6:  SET @path = 'C:\Backup\' 
   7:   
   8:  SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)
   9:   
  10:  DECLARE db_cursor CURSOR FOR 
  11:  SELECT name 
  12:  FROM master.dbo.sysdatabases 
  13:  WHERE name LIKE ('Tfs%') 
  14:   
  15:  OPEN db_cursor  
  16:  FETCH NEXT FROM db_cursor INTO @DBName  
  17:   
  18:  WHILE @@FETCH_STATUS = 0   
  19:  BEGIN  
  20:         SET @fileName = @path + @DBName + '_' + @fileDate + '.BAK' 
  21:         BACKUP DATABASE @DBName TO DISK = @fileName 
  22:              WITH NOFORMAT
  23:                  , INIT
  24:                  , NAME = @DBName
  25:                  , SKIP
  26:                  , NOREWIND
  27:                  , NOUNLOAD
  28:                  , STATS = 100')
  29:   
  30:         FETCH NEXT FROM db_cursor INTO @DBName  
  31:  END  
  32:   
  33:  CLOSE db_cursor  
  34:  DEALLOCATE db_cursor

 

move these databases to the TFS 2010 server, and restore them

image

Step Three – Upgrade to TFS2010

On the TFS2010 server, open a command prompt as an administrator (right click, run as administrator).

navigate to c:\Program Files\Microsoft Team Foundation Server 2010\Tools

run

TFSConfig import /sqlinstance:”<SQL Server Instance>” /CollectionName:”<the upgraded collection name>” /confirmed

image

Wait a while .. 216 steps later

image

You then need to take a backup of:

  • tfs_configuration database
  • tfs_Warehouse database
  • Every Team project collection database that you have attached in the configuration

Well worth while running the TFS 2010 Dogfood stats at this point (http://blogs.msdn.com/b/granth/archive/2009/10/23/tfs2010-sql-queries-for-tfs-statistics.aspx)

Use the same script as above.

Copy them and restore them to the TFS 11 server.

 

Step Four - Install TFS11

from the media, run tfs_server

At the splash screen, accept the License and click continue

image

Enable Updates

image

Accept the inevitable User Account Control

image

Watch the Install

image

Now – Don’t freak out that you haven’t done an upgrade. This is done in the configuration step. Since TFS2010 there is the two phase approach – Install and then Configure.

The upgrade happens in the configure step

image

OK – Install phase complete, click close. The error message is because i was not connected to the interweb when the install was running.

Step Four – Upgrade and Configure

The configure screen will be shown. If you have closed the screen for any reason, then you can get to it from the start menu.

Open the Team Foundation Administration Console

image

From there, click on the Application Tier, and then Configure Installed Features

image

 

image

Click on Configure and Start Wizard

image

Then Click Next

image

OK – after this point it is a fairly vanilla install of TFS, sort out your accounts first, make sure you have space on the hard drive and crack on.

I will not put in lots of screen shots, as it is not any different to a standard install, and you are smart enough to do all that stuff anyway.

It will prompt for an existing TFS_Warehouse, and if any TPC database is not there the upgrade will fail.

image

imageimage

image

 

And you now have the completed upgrade in TFS11.

Monday, March 19, 2012 11:51:05 PM (Mountain Standard Time, UTC-07:00)  #    Comments [1]   Best Practice | Simon Reindl | TFS 11 | TFS 2010 | Visual Studio 2005  | 
# Friday, March 16, 2012

Today I was trying to open the ProcessGuidance.html file ...

image

A double-click, or a right-click > Open both resulted in Internet Explorer asking me if I want to Save or Cancel the document download. This was a surprise. I was expecting it to just open the web page.

image

It turns out that this is a setting in SharePoint Foundation 2010. Here are the steps I followed to fix this:

  1. Launched SharePoint 2010 Central Administration.
  2. Clicked Application Management > Manage web applications.
  3. Selected my web application.
  4. Selected General Settings.
  5. Scrolled down and selected Permissive Browser File Handling.

image

Now the document opens up in the browser, rather than prompting me to save it!

Friday, March 16, 2012 5:46:18 AM (Mountain Standard Time, UTC-07:00)  #    Comments [2]   SharePoint | TFS 11  | 
# Thursday, March 15, 2012

In case you hadn’t seen it, SQL Management Studio 2012 is now a Visual Studio powered tool.

image

Technorati Tags: ,,

Nice…

Thursday, March 15, 2012 12:26:24 AM (Mountain Standard Time, UTC-07:00)  #    Comments [3]   Personal Thoughts | Simon Reindl | Visual Studio 2010  | 
# Monday, March 12, 2012

Being the geek I am, I wanted to take a detailed look at the reports in the new Scrum template. Rather than wait for guidance to be posted, or call up my friends at Microsoft (again), I thought I would do my own experimenting.

  1. I downloaded the Visual Studio Scrum 2.0 – Preview 3 process template from the Team Foundation Server 11 Beta into C:\Microsoft Visual Studio Scrum 2.0.
  2. I launched SQL Server Business Intelligence Development Studio (BIDS) otherwise known as Visual Studio 2008. (I can’t wait for this to be unified into one IDE someday).
  3. I created a new Report Server Project named ScrumReports.

image

  1. From Windows Explorer, I dragged the eight .rdl reports …

image

… into my Reports folder in Solution Explorer. This makes a copy of the .rdl files under my project.

image

  1. I then created two shared data sources with the exact names that the reports will expect.
    • TfsOlapReportDS: a Microsoft SQL Server Analysis Services connection (Data Source=vstfs;Initial Catalog=Tfs_Analysis)
    • TfsReportDS: a Microsoft SQL Server connection (Data Source=vstfs;Initial Catalog=Tfs_Warehouse)

image

  1. Now I can open any of the reports in the designer and study the layout, built-in fields, parameters, and datasets. I can also preview the reports.

image

  1. I then drilled-down into the various datasets to learn their purpose and how they fit with the report.

image

For larger datasets with larger queries, I copied/pasted the code into this cool online SQL formatter to improve readability:

image

Monday, March 12, 2012 9:01:40 PM (Mountain Standard Time, UTC-07:00)  #    Comments [7]   Scrum | TFS 11  | 

Try this: Download the Visual Studio Scrum 2.0 – Preview 3 process template from the Team Foundation Server 11 Beta into one folder and then do the same with the Visual Studio Scrum 1.0 version of the template.

image

Next, drop to the (Developer) command prompt and run this:

tf.exe folderdiff "C:\Microsoft Visual Studio Scrum 1.0" "C:\Microsoft Visual Studio Scrum 2.0" /recursive

Yep, they’ve changed a lot:

image

If you double-click the ProductBacklogItem.xml difference, you can see the differences in the new new IDE-hosted tool.

image

If you are wanting a complete, functional walkthrough of the differences, you’ll have to wait for my upcoming book.

#ItsInTheBook

Monday, March 12, 2012 8:10:26 PM (Mountain Standard Time, UTC-07:00)  #    Comments [1]   Scrum | TFS 11  | 

image

When configuring Team Foundation Server 11, the default action is to install and configure SharePoint Foundation 2010. I think this is great. I really love SharePoint 2010, and am glad that Microsoft opted to install the newer version automatically, rather than WSS3 like it did previously. Keep in mind that WSS3 will still work with TFS11 and even has a smaller RAM requirement as well.

After installing the SharePoint prerequisites, I proceeded to the installation and then to the configuration wizard. When I got to the step where I was asked to specify the Database Access Account, I assumed my local windows account would work fine. In fact, if you read the fine print below it says “If your configuration database is hosted on another server, you must specify a domain account”. Mine’s not. I’m creating a VM with an all-up image to be used in an environment that doesn’t have a domain.

image

But SharePoint wasn’t having it. I got the message that The specified user VSTFS\SPSERVICE is a local account. Local accounts should only be used in stand alone mode:

image

This messages makes it a bit more clear, but since this guidance contradicts the TFS guidance I’m following in the TFS11 installation guide, I needed to find another way. Fortunately, I found this Microsoft workaround posted by Neil “The Doc” Hodgkinson. Here are the steps from that I followed:

  1. Canceled out of the the configuration wizard.
  2. Launched the SharePoint 2010 Management Shell.
  3. Ran New-SPConfigurationDatabase.
  4. Entered SharePoint_2010_ConfigDB for the DatabaseName.
  5. Entered VSTFS for the DatabaseServer.
  6. Entered the username and password for the Database Access Account into the dialog. Note: this account is also known as the server farm account and requires certain permissions.
  7. Entered a valid passphrase.

After a few moments, SharePoint created the a new configuration database and an admin content database for me:

image

Next, I launched the SharePoint 2010 Products Configuration Wizard again and it picked up right where I would expect it to:

image

#ProblemSolved

Monday, March 12, 2012 2:49:45 AM (Mountain Standard Time, UTC-07:00)  #    Comments [0]   SharePoint | TFS 11  | 
Copyright © 2012 Richard Hundhausen. All rights reserved.
DasBlog 'Portal' theme by Johnny Hughes.
Pick a theme: