Blog Home  Home Feed your aggregator (RSS 2.0)  
Accentient - Thursday, July 22, 2010
Visual Studio ALM Experts
 
# Thursday, July 22, 2010

Thanks to the folk who made it to the VBUG meeting. It was great to talk about Scrum and VS2010.

 

A copy of the presentation if you would like to download it Scrum and 2010


 

Also, here is the link to the download of the Microsoft VM with 2010 all loaded and the excellent labs as well.

http://blogs.msdn.com/b/briankel/archive/2010/06/25/now-available-visual-studio-2010-rtm-virtual-machine-with-sample-data-and-hands-on-labs.aspx

Thursday, July 22, 2010 4:07:31 AM (Mountain Daylight Time, UTC-06:00)  #    Comments [0]    | 
# Thursday, June 24, 2010

I am really looking forward to going to the Bracknell VBUG group to talk about Scrum and VS2010 on July 7. It should be a great evening. http://www.vbug.co.uk/Events/July-2010/VBUG-Bracknell-SCRUM.aspx

Thursday, June 24, 2010 1:36:59 PM (Mountain Daylight Time, UTC-06:00)  #    Comments [0]   Scrum | Simon Reindl | TFS 2010  | 
# Monday, June 21, 2010

I am a huge fan of both Rugby Union and the Scrum methodology. When I first heard of the framework there was a sense of wonderment at the use of the rugby term to describe the development framework.

For those folk who are not too familiar with the rugby version, this is a short video of just scrums.

From this, you see some scrums that go bad - (collapses,  going backwards), and some solid scrums.

For a scrum to work in either sense the following must be in place:

Cohesive Team – the tight 5 (front row and second row) must work as a cohesive unit for the scrum to go anywhere. Without great collaboration, the scrum goes nowhere. In much the same way a fragmented scrum team will not realise the hyper productivity that is the sweet spot. It should be fun, while being some of the hardest graft you have ever done. At the end you must be able to reflect with pride on the work that you have done.

Commitment – If you don’t commit, you will fail. In the rugby scrum it is the initial contact (the engage) that determines whether the scrum will collapse or settle. If either side does not completely commit, the scrum will collapse. If you are on a team where there is not a common level of commitment, the sprint will not go as well as you plan. The reliance on your fellow team members must be there. This trust takes time to develop, and where altering the team will affect the teams velocity.

Balance of Skills – The rugby scrum uses some of the most specialised positions on the pitch, and you need the selection right to be able to scrummage effectively, In the same way you need the right skill mix in the scrum team. There are no silos any more – you need to get to done. so you need people with the skills to design, build, test, package, deploy and document the incremental release. You can’t go in to a rugby scrum with the hooker, thinking you will sort that out after the scrum – you will have lost by then. Similarly you can’t go in to a sprint with the assumption that the testing will be completed later – you won’t get to done.

Focus and Intent – In both the game and the framework you need to have a clear goal and the intent to achieve it. In the rugby scrum a lack of intent will result in a collapse or similar. Watch at 1:08 where the opposition prop is “popped” out of the scrum allowing the wallabies to drive through. In the framework world, a lack of focus and intent will stop either getting anything done, or not clearing the PBI.

Communication – This is the key to effective teamwork, and the heart of the framework and the game. Where are you at, what are you going to do next and what is stopping you? The daily scrum is critical to keep the team focussed, in the same way the calls in the scrum keep the forwards working as unit.

Crouch – Touch – Pause – ENGAGE!

Monday, June 21, 2010 4:12:19 PM (Mountain Daylight Time, UTC-06:00)  #    Comments [0]   Personal Thoughts | Scrum | Simon Reindl  | 
# Monday, June 14, 2010

Thank you to everyone who attended my talks at Tech-Ed 2010 last week in New Orleans. I had a great time talking Scrum, Visual Studio 2010, and all intersections in-between.

Here are my presentations, in case you want to download them.

Also, I uploaded a few random photos to flickr.

Monday, June 14, 2010 6:45:36 PM (Mountain Daylight Time, UTC-06:00)  #    Comments [0]   Conferences | Team Foundation Build | Visual Studio 2010  | 
# Thursday, June 03, 2010

There are situations (infrastructure component used across the enterprise is one example) where it is more useful to put the assembly in to the GAC.

Using Heat, a transform needs to be used that will add the assembly=”.net” to the wixobj.

In the wixproj File, add a transforms line:

 

  <ItemGroup>

    <HeatProject Include="@(ProjectReference->'%(FullPath)')">

      <ProjectOutputGroups>Binaries;Symbols;Documents;Satellites;Content</ProjectOutputGroups>

      <Transforms>..\..\BuildUtilities\XSLT\HeatGAC.xslt</Transforms>

    </HeatProject>

  </ItemGroup>

 

 

The XSLT file contents:

 

<?xml version="1.0" encoding="utf-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl" xmlns:wix="http://schemas.microsoft.com/wix/2006/wi">

  <xsl:output method="xml" indent="yes"/>

 

  <!-- Start the processing from the root copying-->

  <xsl:template match="wix:*|@*">

    <xsl:copy>

      <xsl:apply-templates select="text()|*|@*" />

    </xsl:copy>

  </xsl:template>

 

  <!-- Search for elements that have a file source, and add an attribute that will let wix GAC them-->

  <xsl:template match="*[contains(@Source,'dll')]">

    <xsl:element name="File" namespace="http://schemas.microsoft.com/wix/2006/wi">

      <xsl:attribute name="Id">

        <xsl:value-of select="@Id"/>

      </xsl:attribute>

      <xsl:attribute name ="Source">

        <xsl:value-of select="@Source"/>

      </xsl:attribute>

      <xsl:attribute name="Assembly">.net</xsl:attribute>

      <xsl:attribute name="KeyPath">yes</xsl:attribute>

    </xsl:element>

  </xsl:template>

 

</xsl:stylesheet>

 

This will harvest all the output assemblies and flag them to be installed in to the GAC

Thursday, June 03, 2010 6:27:12 AM (Mountain Daylight Time, UTC-06:00)  #    Comments [0]    | 

There are two really powerful ways to harvest the output from the build in to Wix.

Heat extensions that are native with the Wix Install or John Robbins Paraffin. The advantage with using Heat is that with some clients there is a lot of controls with utilising software from the interweb, and Heat is available from the same location as Wix.

The Wix installation is available from here, remember that you will need v3.5 to use with Visual Studio 2010. (Yes it is still listed as Beta, however it works very well!)

Once you have installed Wix and and the project aggregator, the steps to use Heat to harvest the project output are as follows:

 

Step

Description

  1.  

Create new Wix Project in the solution that you need to build

  1.  

Add the references to the projects that you want packaged

  1.  

Create a new wxs file called “<myPackage>.wxs”

  1.  

Right Click on yourWix Project and select “Unload Project”

  1.  

IN VS2008, at the prompt, click on continue

clip_image002

  1.  

Right click on your Wix project and select “Edit yourWixProject.wixproj”

  1.  

Ensure that all your project references are included in the project xml

  1.  

Scroll to the end of the file

  1.  

Add the following snippet

  <!-- Add the Heat-->

  <ItemGroup>

    <HeatProject Include="@(ProjectReference->'%(FullPath)')">

      <ProjectOutputGroups>Binaries;Symbols;Documents;Satellites;Content</ProjectOutputGroups>

    </HeatProject>

  </ItemGroup>

  1.  

Save your project

  1.  

Right click on your project in solution explorer and select “Reload Project”

  1.  

If you still have the project open in the editor, you will be prompted to close it. Click yes and continue

  1.  

At this point, your wix project is now heat enabled, but not wired up

  1.  

Edit the “<myPackage>.wxs” file

  1.  

In the Fragment add a reference for each binaries directory that you want included

<DirectoryRef Id="AppRootDir">

    <Directory Id="ComponentDir" ComponentGuidGenerationSeed="Insert New GUID Here">

            <Directory Id='MyReferencedProject.Binaries' />

      </Directory>

</DirectoryRef>

  1.  

In the Fragment add a reference for each Symbols directory that you want included

<DirectoryRef Id="AppSymbolDir”>

    <Directory Id="ComponentDir" ComponentGuidGenerationSeed="Insert New GUID Here">

            <Directory Id='MyReferencedProject.Symbols' />

      </Directory>

</DirectoryRef>

  1.  

For the other Project Outputs (Documents;Satellites;Content), the principal is the same, the DirectoryRef is the “appRootDir”

  1.  

For each item that is to be included in the package, a component Group and Component Group Ref needs to be added at the bottom of the file

  <ComponentGroup Id="Project">

      <ComponentGroupRef Id='MyReferencedProject.Binaries' />

      <ComponentGroupRef Id='MyReferencedProject.Symbols' />

  </ComponentGroup>

  1.  

Run the full solution build, and an MSI should appear

  1.  

Use Insted or Orca to check that the correct components are included in the MSI

 

So the project.wxs looks like

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Product Id="*" Name="SetupDemo" Language="1033" Version="1.0.0.0" Manufacturer="SetupDemo" UpgradeCode="78282ed7-9280-497b-affa-da3fce3f4f47">
    <Package InstallerVersion="200" Compressed="yes" Id ="*" />

    <Media Id="1" Cabinet="Demo1.cab" EmbedCab="yes" />

    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="INSTALLLOCATION" Name="SetupDemo">
          <Directory Id="AppRootDir" Name="Demo"/>
          <Directory Id="AppSymbolDir" Name="Demo" />

        </Directory>
      </Directory>
    </Directory>

    <Feature Id="ProductFeature" Title="SetupDemo" Level="1">
       <ComponentGroupRef Id="Project" />

      <!-- Note: The following ComponentGroupRef is required to pull in generated authoring from project references. -->
      <ComponentGroupRef Id="Product.Generated" />
    </Feature>
  </Product>
</Wix>

 

And the associated (Demo.wxs) looks like

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="
http://schemas.microsoft.com/wix/2006/wi">
    <Fragment>
    <DirectoryRef Id="AppRootDir">
      <Directory Id="ComponentDir" ComponentGuidGenerationSeed="DBA8384E-CE1B-41af-B573-4203FB8A6A3B">
        <Directory Id="Demo.Binaries" />
      </Directory>
    </DirectoryRef>
    <DirectoryRef Id="AppSymbolDir">
      <Directory Id="SymbolsDir" ComponentGuidGenerationSeed="35A3DCB8-4F85-4e3f-AC83-C51B78C04B94">
        <Directory Id="Demo.Symbols" />
      </Directory>
    </DirectoryRef>
    <ComponentGroup Id="Project">
      <ComponentGroupRef Id="Demo.Binaries"/>
      <ComponentGroupRef Id="Demo.Symbols"/>
    </ComponentGroup>
    </Fragment>
</Wix>

 

Tool

Link

Orca is available from here

http://support.microsoft.com/kb/255905

InstEd is available from here

http://www.instedit.com/home.html

Wix installer is available from here

http://wix.sourceforge.net/

Paraffin is available from here

http://www.wintellect.com/CS/files/folders/8198/download.aspx

Thursday, June 03, 2010 6:11:56 AM (Mountain Daylight Time, UTC-06:00)  #    Comments [0]   Development | Simon Reindl | TFS 2008 | TFS 2010  | 
# Saturday, May 29, 2010

I just noticed this new article online at MSDN.

Phil Hodgson provides guidance for potential process-authors who wish to customize process templates used to create team project portals on SharePoint.

Saturday, May 29, 2010 11:57:57 AM (Mountain Daylight Time, UTC-06:00)  #    Comments [0]   TFS 2010  | 
# Wednesday, May 12, 2010

Now that Visual Studio 2010 has launched, teams are discovering just how much capability is included within those .iso files. MSDN does a good job of explaining what the buttons do, but you really need good guidance to go along with the how-to. The Visual Studio ALM Rangers have you covered.

 

They already have many documents published:

They have a couple more in the works:

  • Visual Studio 2010 Database Guidance
  • Visual Studio 2010 Architecture Tooling Guidance

You can find the complete list here. Be sure to bookmark Willy-Peter Schaub’s blog or our ALM Community Aggregator to stay updated.

Wednesday, May 12, 2010 10:11:44 AM (Mountain Daylight Time, UTC-06:00)  #    Comments [0]   Community | Visual Studio 2010  | 
# Monday, May 10, 2010

As you know, you can use the TFS Annotate command to learn which team member made a particular change to a particular file. It can also show you who wrote each line of code in a file and when. This tool has many uses, some of them bad, such as blaming a team member who broke the build, failed a test, didn’t conform to the definition of done, etc. In fact, the same feature is Subversion is simply called blame.

Remember that on a Scrum team, it’s the team that commits to building the product. Good Scrum teams avoid the blame game and instead collaborate and focus on removing impediments quickly. Who broke the build is less important that getting the build working again.

Maybe with a little customization the Annotate command could be of value to a Scrum team:

Annontate for Scrum Teams

Monday, May 10, 2010 12:55:14 PM (Mountain Daylight Time, UTC-06:00)  #    Comments [1]   Scrum | Visual Studio 2010  | 
# Wednesday, May 05, 2010

At the Visual Studio 2010 launch a few weeks ago I was interviewed, along with David Starr, about ALM. I just found the recording online.

Here are the steps to get to it:

1. Go to http://channel9.msdn.com/vs2010_ch9live_ondemand.htm

2. Drag the selector bar ahead to about the 7 hour mark.

 

clip_image001

Wednesday, May 05, 2010 3:15:48 PM (Mountain Daylight Time, UTC-06:00)  #    Comments [0]   Conferences | Visual Studio 2010  | 
Copyright © 2010 Richard Hundhausen. All rights reserved.
DasBlog 'Portal' theme by Johnny Hughes.
Pick a theme: