<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Accentient - David Starr</title>
    <link>http://blog.accentient.com/</link>
    <description>Visual Studio ALM Experts</description>
    <language>en-us</language>
    <copyright>Richard Hundhausen</copyright>
    <lastBuildDate>Wed, 26 Nov 2008 19:19:02 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>richard@accentient.com</managingEditor>
    <webMaster>richard@accentient.com</webMaster>
    <item>
      <trackback:ping>http://blog.accentient.com/Trackback.aspx?guid=c2c0dcb7-404f-4416-828f-1c444e29fae2</trackback:ping>
      <pingback:server>http://blog.accentient.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.accentient.com/PermaLink,guid,c2c0dcb7-404f-4416-828f-1c444e29fae2.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.accentient.com/CommentView,guid,c2c0dcb7-404f-4416-828f-1c444e29fae2.aspx</wfw:comment>
      <wfw:commentRss>http://blog.accentient.com/SyndicationService.asmx/GetEntryCommentsRss?guid=c2c0dcb7-404f-4416-828f-1c444e29fae2</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Believe me, I understand TDD. I grok it. It is in my soul.
</p>
        <p>
I also happen to believe (and know from experience) that unit test frameworks are
valuable far beyond their use in TDD. Some of the best uses are for integration tests
at the API level. 
</p>
        <p>
It is this coolness that makes it so handy to run a unit test harness as a load test
run using VSTS. I worked with one client who had a particular need for this in testing
a HUGE network of independently addressable embedded Linux devices, each one exposing
a TCP/IP-level API. More on how to running unit tests as load tests <a href="http://blogs.microsoft.co.il/blogs/shair/archive/2008/06/19/load-testing-features-of-visual-studio-team-system.aspx" target="_blank">here</a>.
</p>
        <p>
But on to my latest use of a unit test. Remember back in the day when we wrote libraries
without unit test frameworks? What did we do? We wrote a little command line EXE to
exercise the thing while we wrote it and never checked that in to SCC. It worked,
mostly.
</p>
        <p>
I often have the same need when writing Windows Forms applications. I want to spool
up and play with a window without all of the overhead of the entire application. So,
here's my test.
</p>
        <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4">
          <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 1:</span>
              <span style="color: #0000ff">namespace</span> ElegantCode.BeSure.Test.GivenTheConfirmationDialogIsDisplayed</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 2:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 3:</span> [TestClass]</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 4:</span>
              <span style="color: #0000ff">public</span>
              <span style="color: #0000ff">class</span> WhenTheUserClicksNo</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 5:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 6:</span> [TestMethod]</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 7:</span>
              <span style="color: #0000ff">public</span>
              <span style="color: #0000ff">void</span> ThenTheDialogResultShouldBeNo()</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 8:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 9:</span> ConfirmationForm
confirmationDialog = <span style="color: #0000ff">new</span> ConfirmationForm();</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 10:</span> DialogResult
result = confirmationDialog.ShowDialog();</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 11:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 12:</span> Assert.AreEqual(result,
DialogResult.No);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 13:</span> }</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 14:</span> }</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 15:</span> }</pre>
          </div>
        </div>
        <p>
No, this is not a unit test. All this does for me is allow me to open the window in
a run time environment, see it lay out on the screen, click around on it, etc. 
</p>
        <p>
If you notice the structure of the test naming, I am using a little BDD convention
because I am wondering about the idea of building a manual regression suite this way.
What if a tester sites down and runs through a manual test by launching the a unit
test harness that drives the UI.
</p>
        <p>
It's an interesting idea, anyway.
</p>
        <img width="0" height="0" src="http://blog.accentient.com/aggbug.ashx?id=c2c0dcb7-404f-4416-828f-1c444e29fae2" />
      </body>
      <title>Yet Another Use of a Unit Test Framework</title>
      <guid isPermaLink="false">http://blog.accentient.com/PermaLink,guid,c2c0dcb7-404f-4416-828f-1c444e29fae2.aspx</guid>
      <link>http://blog.accentient.com/2008/11/26/YetAnotherUseOfAUnitTestFramework.aspx</link>
      <pubDate>Wed, 26 Nov 2008 19:19:02 GMT</pubDate>
      <description>&lt;p&gt;
Believe me, I understand TDD. I grok it. It is in my soul.
&lt;/p&gt;
&lt;p&gt;
I also happen to believe (and know from experience) that unit test frameworks are
valuable far beyond their use in TDD. Some of the best uses are for integration tests
at the API level. 
&lt;/p&gt;
&lt;p&gt;
It is this coolness that makes it so handy to run a unit test harness as a load test
run using VSTS. I worked with one client who had a particular need for this in testing
a HUGE network of independently addressable embedded Linux devices, each one exposing
a TCP/IP-level API. More on how to running unit tests as load tests &lt;a href="http://blogs.microsoft.co.il/blogs/shair/archive/2008/06/19/load-testing-features-of-visual-studio-team-system.aspx" target="_blank"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
But on to my latest use of a unit test. Remember back in the day when we wrote libraries
without unit test frameworks? What did we do? We wrote a little command line EXE to
exercise the thing while we wrote it and never checked that in to SCC. It worked,
mostly.
&lt;/p&gt;
&lt;p&gt;
I often have the same need when writing Windows Forms applications. I want to spool
up and play with a window without all of the overhead of the entire application. So,
here's my test.
&lt;/p&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt;
&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;namespace&lt;/span&gt; ElegantCode.BeSure.Test.GivenTheConfirmationDialogIsDisplayed&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 2:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 3:&lt;/span&gt; [TestClass]&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 4:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; WhenTheUserClicksNo&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 5:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 6:&lt;/span&gt; [TestMethod]&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 7:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; ThenTheDialogResultShouldBeNo()&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 8:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 9:&lt;/span&gt; ConfirmationForm
confirmationDialog = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ConfirmationForm();&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 10:&lt;/span&gt; DialogResult
result = confirmationDialog.ShowDialog();&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 11:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 12:&lt;/span&gt; Assert.AreEqual(result,
DialogResult.No);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 13:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 14:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 15:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
No, this is not a unit test. All this does for me is allow me to open the window in
a run time environment, see it lay out on the screen, click around on it, etc. 
&lt;/p&gt;
&lt;p&gt;
If you notice the structure of the test naming, I am using a little BDD convention
because I am wondering about the idea of building a manual regression suite this way.
What if a tester sites down and runs through a manual test by launching the a unit
test harness that drives the UI.
&lt;/p&gt;
&lt;p&gt;
It's an interesting idea, anyway.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.accentient.com/aggbug.ashx?id=c2c0dcb7-404f-4416-828f-1c444e29fae2" /&gt;</description>
      <comments>http://blog.accentient.com/CommentView,guid,c2c0dcb7-404f-4416-828f-1c444e29fae2.aspx</comments>
      <category>David Starr</category>
    </item>
    <item>
      <trackback:ping>http://blog.accentient.com/Trackback.aspx?guid=8255dfb7-ba3c-4efa-b558-8efe292f4bc1</trackback:ping>
      <pingback:server>http://blog.accentient.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.accentient.com/PermaLink,guid,8255dfb7-ba3c-4efa-b558-8efe292f4bc1.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.accentient.com/CommentView,guid,8255dfb7-ba3c-4efa-b558-8efe292f4bc1.aspx</wfw:comment>
      <wfw:commentRss>http://blog.accentient.com/SyndicationService.asmx/GetEntryCommentsRss?guid=8255dfb7-ba3c-4efa-b558-8efe292f4bc1</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I am a simple man. All I ever wanted was drag and drop for source control. That folder
chooser dialog was a bear. Now we will get it with <a href="http://msdn.microsoft.com/en-us/vstudio/products/cc533447.aspx" target="_blank">Visual
Studio 2008 SP1</a>. Thank goodness. From the web site:
</p>
        <ul>
          <li>
Simplified the user experience through cleaner "Add to Source Control" dialogs, drag
and drop support to the Source Control Explorer and a much easier to use "Workspace"
dialog for working folder mappings. 
</li>
          <li>
Version control now automatically supports non-solution controlled files. 
</li>
          <li>
Various changes to the Source Control Explorer such as a new checkin date/time display
column, local path hyperlink support and en editable source location field.</li>
        </ul>
        <p>
I am not a big fan of installing a beta SP on may dev laptop, but I gotta tell ya,
I did it for that feature alone.
</p>
        <img width="0" height="0" src="http://blog.accentient.com/aggbug.ashx?id=8255dfb7-ba3c-4efa-b558-8efe292f4bc1" />
      </body>
      <title>Version Control with 2008 SP1</title>
      <guid isPermaLink="false">http://blog.accentient.com/PermaLink,guid,8255dfb7-ba3c-4efa-b558-8efe292f4bc1.aspx</guid>
      <link>http://blog.accentient.com/2008/06/25/VersionControlWith2008SP1.aspx</link>
      <pubDate>Wed, 25 Jun 2008 23:33:12 GMT</pubDate>
      <description>&lt;p&gt;
I am a simple man. All I ever wanted was drag and drop for source control. That folder
chooser dialog was a bear. Now we will get it with &lt;a href="http://msdn.microsoft.com/en-us/vstudio/products/cc533447.aspx" target="_blank"&gt;Visual
Studio 2008 SP1&lt;/a&gt;. Thank goodness. From the web site:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Simplified the user experience through cleaner "Add to Source Control" dialogs, drag
and drop support to the Source Control Explorer and a much easier to use "Workspace"
dialog for working folder mappings. 
&lt;li&gt;
Version control now automatically supports non-solution controlled files. 
&lt;li&gt;
Various changes to the Source Control Explorer such as a new checkin date/time display
column, local path hyperlink support and en editable source location field.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
I am not a big fan of installing a beta SP on may dev laptop, but I gotta tell ya,
I did it for that feature alone.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.accentient.com/aggbug.ashx?id=8255dfb7-ba3c-4efa-b558-8efe292f4bc1" /&gt;</description>
      <comments>http://blog.accentient.com/CommentView,guid,8255dfb7-ba3c-4efa-b558-8efe292f4bc1.aspx</comments>
      <category>David Starr</category>
      <category>Development</category>
      <category>Software Tools</category>
      <category>Team System</category>
    </item>
    <item>
      <trackback:ping>http://blog.accentient.com/Trackback.aspx?guid=5c1f05ed-9f38-4712-983b-8e8de8d519fb</trackback:ping>
      <pingback:server>http://blog.accentient.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.accentient.com/PermaLink,guid,5c1f05ed-9f38-4712-983b-8e8de8d519fb.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.accentient.com/CommentView,guid,5c1f05ed-9f38-4712-983b-8e8de8d519fb.aspx</wfw:comment>
      <wfw:commentRss>http://blog.accentient.com/SyndicationService.asmx/GetEntryCommentsRss?guid=5c1f05ed-9f38-4712-983b-8e8de8d519fb</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
In many Agile development processes, there exists the idea of THE BACKLOG. This is
particularly true in Scrum, the methodology that originated the idea. The recipe from
Scrum is a Product Backlog which contains all the requirements or features desired
in the software being created. 
</p>
        <p>
The backlog items are organized in priority order, determined by the Product Owner
(PO). The PO can use any criteria to prioritize the backlog items. Priorities may
be driven by risk, return on investment, or client demand. No matter what technique
is used, this prioritization is crucial to the use and effectiveness of the backlog. 
</p>
        <p>
This all works quite well in a  situation of a single team creating a single
product. It even works well when we scale up a bit and have one team working on several
products. It just becomes necessary for the two product owners to strike a bargain
on how to share team capacity.
</p>
        <p>
It turns out that scaling to even bigger scenarios with an Enterprise Backlog and
many teams working from it presents some new challenges. In this model you manage
all work in the enterprise in a single backlog. This immediately draws into question
what the "real" backlog is. Backlog managers may be interested in a view of the backlog
that shows the prioritized list of items for a particular system, a team, a product,
a release, or some other grouping.It becomes quickly apparent there are many ways
to "see" the backlog.
</p>
        <p>
          <a href="http://blog.accentient.com/content/binary/WindowsLiveWriter/HowtoViewYourBacklog_126CB/image_2.png">
            <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="239" alt="image" src="http://blog.accentient.com/content/binary/WindowsLiveWriter/HowtoViewYourBacklog_126CB/image_thumb.png" width="404" border="0" />
          </a>
        </p>
        <h2>Which Backlog View Wins?
</h2>
        <p>
Obviously, a PO is primarily interested in the view that shows the backlog for a particular
product. For a release manager, coordinating the overall release of a product suite,
the view of items to be included across many products in a big release is the perfect
view. If you are a project manager, interested in a theme of work that will affect
many products (think the Smart Art feature in Office 2007), you are looking for the
theme view. We can think of this problem as dimensions in a multidimensional cube
if it helps you BI types.
</p>
        <p>
With all these views of the backlog going on, and each one of theme prioritized from
1-n, which one is the actual backlog? 
</p>
        <ul>
          <li>
Theme View 
</li>
          <li>
System View 
</li>
          <li>
Release Cycle View 
</li>
          <li>
Scrum Team View 
</li>
          <li>
Product View 
</li>
        </ul>
        <p>
The easy answer is, "They are all important, depending on who you are and what you
are interested in." It is true, though, that two of these view are closer to reality
than all the others. While most of these views represent what we hope will get done,
2 of them are just a bit closer to what will get done, or has been done.
</p>
        <h3>The Scrum Team View
</h3>
        <p>
This view aggregates the work items into a collection that actually represents what
the team will be doing. This is the backlog the team will use in Sprint planning as
they plan an iteration of work. If you are a theme owner and your work items aren't
showing up in the Scrum Team View, you're in trouble.
</p>
        <h3>The Release Cycle View
</h3>
        <p>
This view (and an associated burndown chart) helps us see the reality of features
that are scheduled for release and those that have been completed. This view represents
the absolute reality of what we can tell the clients will be in the next release.
</p>
        <h2>Just Get Them
</h2>
        <p>
The real truth is that all of the views really are important. The real challenge is
in deriving the views in the first place. If you are trying to work with an Enterprise
Backlog and haven't got a good model for segmenting it, you may soon find it unwieldy.
Find the right view to help you interact with the requirements and make sure your
backlog items provide the data needed to see it. Just remember the 2 views that live
closer to where the rubber meets the road.
</p>
        <img width="0" height="0" src="http://blog.accentient.com/aggbug.ashx?id=5c1f05ed-9f38-4712-983b-8e8de8d519fb" />
      </body>
      <title>Viewing Your Backlog</title>
      <guid isPermaLink="false">http://blog.accentient.com/PermaLink,guid,5c1f05ed-9f38-4712-983b-8e8de8d519fb.aspx</guid>
      <link>http://blog.accentient.com/2008/05/23/ViewingYourBacklog.aspx</link>
      <pubDate>Fri, 23 May 2008 04:33:34 GMT</pubDate>
      <description>&lt;p&gt;
In many Agile development processes, there exists the idea of THE BACKLOG. This is
particularly true in Scrum, the methodology that originated the idea. The recipe from
Scrum is a Product Backlog which contains all the requirements or features desired
in the software being created. 
&lt;/p&gt;
&lt;p&gt;
The backlog items are organized in priority order, determined by the Product Owner
(PO). The PO can use any criteria to prioritize the backlog items. Priorities may
be driven by risk, return on investment, or client demand. No matter what technique
is used, this prioritization is crucial to the use and effectiveness of the backlog. 
&lt;/p&gt;
&lt;p&gt;
This all works quite well in a&amp;nbsp; situation of a single team creating a single
product. It even works well when we scale up a bit and have one team working on several
products. It just becomes necessary for the two product owners to strike a bargain
on how to share team capacity.
&lt;/p&gt;
&lt;p&gt;
It turns out that scaling to even bigger scenarios with an Enterprise Backlog and
many teams working from it presents some new challenges. In this model you manage
all work in the enterprise in a single backlog. This immediately draws into question
what the "real" backlog is. Backlog managers may be interested in a view of the backlog
that shows the prioritized list of items for a particular system, a team, a product,
a release, or some other grouping.It becomes quickly apparent there are many ways
to "see" the backlog.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.accentient.com/content/binary/WindowsLiveWriter/HowtoViewYourBacklog_126CB/image_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="239" alt="image" src="http://blog.accentient.com/content/binary/WindowsLiveWriter/HowtoViewYourBacklog_126CB/image_thumb.png" width="404" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;h2&gt;Which Backlog View Wins?
&lt;/h2&gt;
&lt;p&gt;
Obviously, a PO is primarily interested in the view that shows the backlog for a particular
product. For a release manager, coordinating the overall release of a product suite,
the view of items to be included across many products in a big release is the perfect
view. If you are a project manager, interested in a theme of work that will affect
many products (think the Smart Art feature in Office 2007), you are looking for the
theme view. We can think of this problem as dimensions in a multidimensional cube
if it helps you BI types.
&lt;/p&gt;
&lt;p&gt;
With all these views of the backlog going on, and each one of theme prioritized from
1-n, which one is the actual backlog? 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Theme View 
&lt;li&gt;
System View 
&lt;li&gt;
Release Cycle View 
&lt;li&gt;
Scrum Team View 
&lt;li&gt;
Product View 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The easy answer is, "They are all important, depending on who you are and what you
are interested in." It is true, though, that two of these view are closer to reality
than all the others. While most of these views represent what we hope will get done,
2 of them are just a bit closer to what will get done, or has been done.
&lt;/p&gt;
&lt;h3&gt;The Scrum Team View
&lt;/h3&gt;
&lt;p&gt;
This view aggregates the work items into a collection that actually represents what
the team will be doing. This is the backlog the team will use in Sprint planning as
they plan an iteration of work. If you are a theme owner and your work items aren't
showing up in the Scrum Team View, you're in trouble.
&lt;/p&gt;
&lt;h3&gt;The Release Cycle View
&lt;/h3&gt;
&lt;p&gt;
This view (and an associated burndown chart) helps us see the reality of features
that are scheduled for release and those that have been completed. This view represents
the absolute reality of what we can tell the clients will be in the next release.
&lt;/p&gt;
&lt;h2&gt;Just Get Them
&lt;/h2&gt;
&lt;p&gt;
The real truth is that all of the views really are important. The real challenge is
in deriving the views in the first place. If you are trying to work with an Enterprise
Backlog and haven't got a good model for segmenting it, you may soon find it unwieldy.
Find the right view to help you interact with the requirements and make sure your
backlog items provide the data needed to see it. Just remember the 2 views that live
closer to where the rubber meets the road.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.accentient.com/aggbug.ashx?id=5c1f05ed-9f38-4712-983b-8e8de8d519fb" /&gt;</description>
      <comments>http://blog.accentient.com/CommentView,guid,5c1f05ed-9f38-4712-983b-8e8de8d519fb.aspx</comments>
      <category>David Starr</category>
    </item>
    <item>
      <trackback:ping>http://blog.accentient.com/Trackback.aspx?guid=14957521-feeb-4394-abed-fe7c721ce222</trackback:ping>
      <pingback:server>http://blog.accentient.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.accentient.com/PermaLink,guid,14957521-feeb-4394-abed-fe7c721ce222.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.accentient.com/CommentView,guid,14957521-feeb-4394-abed-fe7c721ce222.aspx</wfw:comment>
      <wfw:commentRss>http://blog.accentient.com/SyndicationService.asmx/GetEntryCommentsRss?guid=14957521-feeb-4394-abed-fe7c721ce222</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I just had a meeting where we discussed setting up a TFS 2008 production server and
I went through the system requirements with our system administrator. The focus was
on groups needed in Active Directory, what software is needed on the server, things
like that.
</p>
        <p>
Here are some camera phone shots of the whiteboard during this discussion. Wow.
</p>
        <p>
What's the takeaway from all this? PLAN YOUR IMPLEMENTAION DELIBERATELY. Stand up
a research VM and play with it before you decide how you want to set up a production
system.
</p>
        <h3>Groups and Accounts to Create and Administer
</h3>
        <p>
          <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="237" alt="img091" src="http://blog.accentient.com/content/binary/WindowsLiveWriter/08c4668c035b_A77E/img091_0aa76950-3b7e-4b79-ac32-1ca39b4a2c67.jpg" width="295" border="0" />
        </p>
        <h3>Things to Install on the Server
</h3>
        <p>
 <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="237" alt="img090" src="http://blog.accentient.com/content/binary/WindowsLiveWriter/08c4668c035b_A77E/img090_ec9a3b65-bcc5-4a5f-81bb-7a1e5837d144.jpg" width="295" border="0" /></p>
        <img width="0" height="0" src="http://blog.accentient.com/aggbug.ashx?id=14957521-feeb-4394-abed-fe7c721ce222" />
      </body>
      <title>Installing a TFS Production Server - Meeting Notes</title>
      <guid isPermaLink="false">http://blog.accentient.com/PermaLink,guid,14957521-feeb-4394-abed-fe7c721ce222.aspx</guid>
      <link>http://blog.accentient.com/2008/04/18/InstallingATFSProductionServerMeetingNotes.aspx</link>
      <pubDate>Fri, 18 Apr 2008 18:34:13 GMT</pubDate>
      <description>&lt;p&gt;
I just had a meeting where we discussed setting up a TFS 2008 production server and
I went through the system requirements with our system administrator. The focus was
on groups needed in Active Directory, what software is needed on the server, things
like that.
&lt;/p&gt;
&lt;p&gt;
Here are some camera phone shots of the whiteboard during this discussion. Wow.
&lt;/p&gt;
&lt;p&gt;
What's the takeaway from all this? PLAN YOUR IMPLEMENTAION DELIBERATELY. Stand up
a research VM and play with it before you decide how you want to set up a production
system.
&lt;/p&gt;
&lt;h3&gt;Groups and Accounts to Create and Administer
&lt;/h3&gt;
&lt;p&gt;
&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="237" alt="img091" src="http://blog.accentient.com/content/binary/WindowsLiveWriter/08c4668c035b_A77E/img091_0aa76950-3b7e-4b79-ac32-1ca39b4a2c67.jpg" width="295" border="0"&gt;
&lt;/p&gt;
&lt;h3&gt;Things to Install on the Server
&lt;/h3&gt;
&lt;p&gt;
&amp;nbsp;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="237" alt="img090" src="http://blog.accentient.com/content/binary/WindowsLiveWriter/08c4668c035b_A77E/img090_ec9a3b65-bcc5-4a5f-81bb-7a1e5837d144.jpg" width="295" border="0"&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.accentient.com/aggbug.ashx?id=14957521-feeb-4394-abed-fe7c721ce222" /&gt;</description>
      <comments>http://blog.accentient.com/CommentView,guid,14957521-feeb-4394-abed-fe7c721ce222.aspx</comments>
      <category>David Starr</category>
      <category>Team System</category>
    </item>
    <item>
      <trackback:ping>http://blog.accentient.com/Trackback.aspx?guid=5231c632-c4c4-4327-a990-8ca019fccf98</trackback:ping>
      <pingback:server>http://blog.accentient.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.accentient.com/PermaLink,guid,5231c632-c4c4-4327-a990-8ca019fccf98.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.accentient.com/CommentView,guid,5231c632-c4c4-4327-a990-8ca019fccf98.aspx</wfw:comment>
      <wfw:commentRss>http://blog.accentient.com/SyndicationService.asmx/GetEntryCommentsRss?guid=5231c632-c4c4-4327-a990-8ca019fccf98</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I am currently in Jacksonville, North Carolina to teach a 3 day Team System class
to the U. S. Marine Corp. To get here, I took 3 planes today with the last one loaded
up with Marines on their way to Camp Laugune, just like me.
</p>
        <p>
I was listening to podcasts, mostly "<a href="http://www5.google.com/aclk?sa=L&amp;ai=Bg3vlh-TyR4_1NofqigGQ6aiPBsyXgzLkw83IBNiE_gSA8QQIABABGAEg7YrfBjABOABQ7dHv6gZgyeaqiqSkiBHIAQGAAgHZA5zyummCxiBT4AMA&amp;sig=AGiWqtzjpCU_bWeNEY3fMXKhQsR9uSSaSQ&amp;q=http://www.thislife.org" target="_blank">This
American Life</a>" and "<a href="http://www.dotnetrocks.com/" target="_blank">.Net
Rocks</a>". In fact, if you are at all into Team System, you have go to listen to
this episode of .Net Rocks: <a href="http://www.dotnetrocks.com/default.aspx?showNum=328" target="_blank">Joel
Semeniuk on the State of Team System.</a> Joel sheds some light on what to expect
in <a href="http://msdn2.microsoft.com/en-us/vstudio/bb725993.aspx" target="_blank">Rosario</a>,
which is a mature v3 of Team System with a strong focus on test.
</p>
        <p>
None of this is the point, though. The point is to let you know that nothing will
make you feel like a bigger wuss than riding in an airplane of Marines with a ring
neck pillow that won't fit in your carry on bag.
</p>
        <p>
They were polite. No one actually called me out. "Hey, neck pillow, computer geek,"
they could have said. But, they didn't. One or two did sneer a little, though. It's
ok, my neck was really comfy.
</p>
        <p>
This is going to be an great week.
</p>
        <img width="0" height="0" src="http://blog.accentient.com/aggbug.ashx?id=5231c632-c4c4-4327-a990-8ca019fccf98" />
      </body>
      <title>A Geeky Road Adventure</title>
      <guid isPermaLink="false">http://blog.accentient.com/PermaLink,guid,5231c632-c4c4-4327-a990-8ca019fccf98.aspx</guid>
      <link>http://blog.accentient.com/2008/04/02/AGeekyRoadAdventure.aspx</link>
      <pubDate>Wed, 02 Apr 2008 01:54:55 GMT</pubDate>
      <description>&lt;p&gt;
I am currently in Jacksonville, North Carolina to teach a 3 day Team System class
to the U. S. Marine Corp. To get here, I took 3 planes today with the last one loaded
up with Marines on their way to Camp Laugune, just like me.
&lt;/p&gt;
&lt;p&gt;
I was listening to podcasts, mostly "&lt;a href="http://www5.google.com/aclk?sa=L&amp;amp;ai=Bg3vlh-TyR4_1NofqigGQ6aiPBsyXgzLkw83IBNiE_gSA8QQIABABGAEg7YrfBjABOABQ7dHv6gZgyeaqiqSkiBHIAQGAAgHZA5zyummCxiBT4AMA&amp;amp;sig=AGiWqtzjpCU_bWeNEY3fMXKhQsR9uSSaSQ&amp;amp;q=http://www.thislife.org" target="_blank"&gt;This
American Life&lt;/a&gt;" and "&lt;a href="http://www.dotnetrocks.com/" target="_blank"&gt;.Net
Rocks&lt;/a&gt;". In fact, if you are at all into Team System, you have go to listen to
this episode of .Net Rocks: &lt;a href="http://www.dotnetrocks.com/default.aspx?showNum=328" target="_blank"&gt;Joel
Semeniuk on the State of Team System.&lt;/a&gt; Joel sheds some light on what to expect
in &lt;a href="http://msdn2.microsoft.com/en-us/vstudio/bb725993.aspx" target="_blank"&gt;Rosario&lt;/a&gt;,
which is a mature v3 of Team System with a strong focus on test.
&lt;/p&gt;
&lt;p&gt;
None of this is the point, though. The point is to let you know that nothing will
make you feel like a bigger wuss than riding in an airplane of Marines with a ring
neck pillow that won't fit in your carry on bag.
&lt;/p&gt;
&lt;p&gt;
They were polite. No one actually called me out. "Hey, neck pillow, computer geek,"
they could have said. But, they didn't. One or two did sneer a little, though. It's
ok, my neck was really comfy.
&lt;/p&gt;
&lt;p&gt;
This is going to be an great week.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.accentient.com/aggbug.ashx?id=5231c632-c4c4-4327-a990-8ca019fccf98" /&gt;</description>
      <comments>http://blog.accentient.com/CommentView,guid,5231c632-c4c4-4327-a990-8ca019fccf98.aspx</comments>
      <category>David Starr</category>
    </item>
    <item>
      <trackback:ping>http://blog.accentient.com/Trackback.aspx?guid=ab34dc84-ffaa-40da-8bc2-d050ac0fe2a7</trackback:ping>
      <pingback:server>http://blog.accentient.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.accentient.com/PermaLink,guid,ab34dc84-ffaa-40da-8bc2-d050ac0fe2a7.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.accentient.com/CommentView,guid,ab34dc84-ffaa-40da-8bc2-d050ac0fe2a7.aspx</wfw:comment>
      <wfw:commentRss>http://blog.accentient.com/SyndicationService.asmx/GetEntryCommentsRss?guid=ab34dc84-ffaa-40da-8bc2-d050ac0fe2a7</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Because of the decentralized control model of Agile software development methodologies,
there is a living debate on the role of a Product Owner, particularly in Scrum which
defines the term. 
</p>
        <p>
Here are links to sufficiently ambiguous definitions from some trusted sources, all
saying effectively the same thing. 
</p>
        <blockquote>
          <p>
            <a href="http://www.scrumalliance.org/articles/39-glossary-of-scrum-terms#1122" target="_blank">http://www.scrumalliance.org/articles/39-glossary-of-scrum-terms#1122</a>
          </p>
          <p>
            <a href="http://www.mountaingoatsoftware.com/product_owner" target="_blank">http://www.mountaingoatsoftware.com/product_owner</a>
          </p>
        </blockquote>
        <p>
More informative is this course description from the Ken Schwaber for his Certified
Product Owner Course. 
</p>
        <blockquote>
          <p>
            <a href="http://www.controlchaos.com/certification/cspo.php" target="_blank">http://www.controlchaos.com/certification/cspo.php</a>
          </p>
        </blockquote>
        <p>
and this course description from Mike Cohn: 
</p>
        <blockquote>
          <p>
            <a href="http://www.mountaingoatsoftware.com/product_owner_training" target="_blank">http://www.mountaingoatsoftware.com/product_owner_training</a>
          </p>
        </blockquote>
        <p>
There is another question commonly asked in this discussion, though. “Who writes the
requirements?” 
</p>
        <p>
The idea behind Agile product development is that requirements DO exist, typically
in the form of a backlog. The next point is that they are expected to change. In this
regard, the Product Owner has the responsibility to continuously and actively manage
the requirements. It is easily seen that the only way for a Product Owner to effectively
do this is through intimate familiarity with the requirements. While the Product Owner
may not have been the person to initially place an item on the Product Backlog, they
are accountable to the team for maturing that requirement into an executable state. 
</p>
        <p>
Therefore, who is responsible for requirements? Clearly, the Product Owner. 
</p>
        <p>
Lastly, if you are still having trouble identifying the Product Owner for a given
system, product, project, or initiative, remember this one thing: 
</p>
        <blockquote>
          <p>
"The Product Owner is the one person in an organization responsible for P&amp;L (Profit
and Loss) of the work." -- Jeff Sutherland
</p>
        </blockquote>
        <img width="0" height="0" src="http://blog.accentient.com/aggbug.ashx?id=ab34dc84-ffaa-40da-8bc2-d050ac0fe2a7" />
      </body>
      <title>Who is a Product Owner?</title>
      <guid isPermaLink="false">http://blog.accentient.com/PermaLink,guid,ab34dc84-ffaa-40da-8bc2-d050ac0fe2a7.aspx</guid>
      <link>http://blog.accentient.com/2008/03/28/WhoIsAProductOwner.aspx</link>
      <pubDate>Fri, 28 Mar 2008 14:43:54 GMT</pubDate>
      <description>&lt;p&gt;
Because of the decentralized control model of Agile software development methodologies,
there is a living debate on the role of a Product Owner, particularly in Scrum which
defines the term. 
&lt;p&gt;
Here are links to sufficiently ambiguous definitions from some trusted sources, all
saying effectively the same thing. &lt;blockquote&gt; 
&lt;p&gt;
&lt;a href="http://www.scrumalliance.org/articles/39-glossary-of-scrum-terms#1122" target="_blank"&gt;http://www.scrumalliance.org/articles/39-glossary-of-scrum-terms#1122&lt;/a&gt; 
&lt;p&gt;
&lt;a href="http://www.mountaingoatsoftware.com/product_owner" target="_blank"&gt;http://www.mountaingoatsoftware.com/product_owner&lt;/a&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
More informative is this course description from the Ken Schwaber for his Certified
Product Owner Course. &lt;blockquote&gt; 
&lt;p&gt;
&lt;a href="http://www.controlchaos.com/certification/cspo.php" target="_blank"&gt;http://www.controlchaos.com/certification/cspo.php&lt;/a&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
and this course description from Mike Cohn: &lt;blockquote&gt; 
&lt;p&gt;
&lt;a href="http://www.mountaingoatsoftware.com/product_owner_training" target="_blank"&gt;http://www.mountaingoatsoftware.com/product_owner_training&lt;/a&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
There is another question commonly asked in this discussion, though. “Who writes the
requirements?” 
&lt;p&gt;
The idea behind Agile product development is that requirements DO exist, typically
in the form of a backlog. The next point is that they are expected to change. In this
regard, the Product Owner has the responsibility to continuously and actively manage
the requirements. It is easily seen that the only way for a Product Owner to effectively
do this is through intimate familiarity with the requirements. While the Product Owner
may not have been the person to initially place an item on the Product Backlog, they
are accountable to the team for maturing that requirement into an executable state. 
&lt;p&gt;
Therefore, who is responsible for requirements? Clearly, the Product Owner. 
&lt;p&gt;
Lastly, if you are still having trouble identifying the Product Owner for a given
system, product, project, or initiative, remember this one thing: &lt;blockquote&gt; 
&lt;p&gt;
"The Product Owner is the one person in an organization responsible for P&amp;amp;L (Profit
and Loss) of the work." -- Jeff Sutherland
&lt;/p&gt;
&lt;/blockquote&gt;&lt;img width="0" height="0" src="http://blog.accentient.com/aggbug.ashx?id=ab34dc84-ffaa-40da-8bc2-d050ac0fe2a7" /&gt;</description>
      <comments>http://blog.accentient.com/CommentView,guid,ab34dc84-ffaa-40da-8bc2-d050ac0fe2a7.aspx</comments>
      <category>David Starr</category>
    </item>
    <item>
      <trackback:ping>http://blog.accentient.com/Trackback.aspx?guid=a074005d-e25a-4a20-991f-5878a3aaa8d3</trackback:ping>
      <pingback:server>http://blog.accentient.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.accentient.com/PermaLink,guid,a074005d-e25a-4a20-991f-5878a3aaa8d3.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.accentient.com/CommentView,guid,a074005d-e25a-4a20-991f-5878a3aaa8d3.aspx</wfw:comment>
      <wfw:commentRss>http://blog.accentient.com/SyndicationService.asmx/GetEntryCommentsRss?guid=a074005d-e25a-4a20-991f-5878a3aaa8d3</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Seriously. They can't.
</p>
        <blockquote>
          <p>
            <a title="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=259259&amp;SiteID=1" href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=259259&amp;SiteID=1">http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=259259&amp;SiteID=1</a>
          </p>
        </blockquote>
        <p>
You may delete specific values, but not the list itself. This means you can effectively
"zero out" a list by deleting all of it's items. 
</p>
        <p>
I don't quite understand why this would be a good feature, as it doesn't really stand
up for a test of trace-ability. I just deleted a Team Project whose work items referenced
a global list, so there are no references to the list in the system anymore.
</p>
        <p>
Perhaps one way to mitigate this would be to use abstract list names? List A, List
B, etc. Then you could re-purpose a list later by giving it new values. Nah.
</p>
        <p>
So, what's the take away? Be very careful about the Global Lists you create in your
Team Foundation Server. They will be with you a long time.
</p>
        <img width="0" height="0" src="http://blog.accentient.com/aggbug.ashx?id=a074005d-e25a-4a20-991f-5878a3aaa8d3" />
      </body>
      <title>TFS Global Lists Can't Be Deleted</title>
      <guid isPermaLink="false">http://blog.accentient.com/PermaLink,guid,a074005d-e25a-4a20-991f-5878a3aaa8d3.aspx</guid>
      <link>http://blog.accentient.com/2008/03/26/TFSGlobalListsCantBeDeleted.aspx</link>
      <pubDate>Wed, 26 Mar 2008 21:18:31 GMT</pubDate>
      <description>&lt;p&gt;
Seriously. They can't.
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;a title="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=259259&amp;amp;SiteID=1" href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=259259&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=259259&amp;amp;SiteID=1&lt;/a&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
You may delete specific values, but not the list itself. This means you can effectively
"zero out" a list by deleting all of it's items. 
&lt;/p&gt;
&lt;p&gt;
I don't quite understand why this would be a good feature, as it doesn't really stand
up for a test of trace-ability. I just deleted a Team Project whose work items referenced
a global list, so there are no references to the list in the system anymore.
&lt;/p&gt;
&lt;p&gt;
Perhaps one way to mitigate this would be to use abstract list names? List A, List
B, etc. Then you could re-purpose a list later by giving it new values. Nah.
&lt;/p&gt;
&lt;p&gt;
So, what's the take away? Be very careful about the Global Lists you create in your
Team Foundation Server. They will be with you a long time.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.accentient.com/aggbug.ashx?id=a074005d-e25a-4a20-991f-5878a3aaa8d3" /&gt;</description>
      <comments>http://blog.accentient.com/CommentView,guid,a074005d-e25a-4a20-991f-5878a3aaa8d3.aspx</comments>
      <category>David Starr</category>
      <category>Team System</category>
    </item>
    <item>
      <trackback:ping>http://blog.accentient.com/Trackback.aspx?guid=cfdcb982-7ba3-4f62-baaa-10fa82d776e1</trackback:ping>
      <pingback:server>http://blog.accentient.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.accentient.com/PermaLink,guid,cfdcb982-7ba3-4f62-baaa-10fa82d776e1.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blog.accentient.com/CommentView,guid,cfdcb982-7ba3-4f62-baaa-10fa82d776e1.aspx</wfw:comment>
      <wfw:commentRss>http://blog.accentient.com/SyndicationService.asmx/GetEntryCommentsRss?guid=cfdcb982-7ba3-4f62-baaa-10fa82d776e1</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Having just inherited a TFS installation to manage, I received a request to add some
values to a global list. I got a little nervous about this when I saw that the server
had many (MANY) global lists in it already and I wanted to be very careful not to
break anything during this change.
</p>
        <p>
Of course the first thing I did was consult the master book on the subject of TFS, <a href="http://www.microsoft.com/MSPress/books/8477.aspx" target="_blank">Rich's<em> Working
with Microsoft® Visual Studio® 2005 Team System</em></a><em>. </em>This was a great
start to groking the whole Global List thing.
</p>
        <p>
The steps needed to do this are pretty simple and documented well from Microsoft.
The step to export your current global lists is to use the glexport command line tool.
From the Visual Studio command line prompt (this works fine on a client), do this:
</p>
        <blockquote>
          <p>
glexport /f AllGlobalLists.xml /t myTfsServerName
</p>
        </blockquote>
        <p>
Credentials used are the local login credentials. This gives me one big file containing
all the global lists in the server. Now the question I had was this, "Should I edit
this master global lists file and import the whole thing, or should I just try to
import changes to one list?" Obviously I wanted to work only on the one list I needed
to change, but what effect would it have if I pulled out all the other lists from
the file and uploaded just a single list in a smaller XML file?
</p>
        <p>
I was scared to death of deleting all the other lists in the file. I saved a copy
of the master, and then took out all the global lists except the one I was interested
in, changed the values, and ended up with something like this:
</p>
        <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4">
          <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #0000ff">&lt;?</span>
              <span style="color: #800000">xml</span>
              <span style="color: #ff0000">version</span>
              <span style="color: #0000ff">="1.0"</span>
              <span style="color: #ff0000">encoding</span>
              <span style="color: #0000ff">="utf-8"</span>?<span style="color: #0000ff">&gt;</span></pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #0000ff">&lt;</span>
              <span style="color: #800000">gl:GLOBALLISTS</span>
              <span style="color: #ff0000">xmlns:gl</span>
              <span style="color: #0000ff">="http://schemas.microsoft.com/VisualStudio/2005/workitemtracking/globallists"</span>
              <span style="color: #0000ff">&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #0000ff">&lt;</span>
              <span style="color: #800000">GLOBALLIST</span>
              <span style="color: #ff0000">name</span>
              <span style="color: #0000ff">="Teams
- Product Backlog"</span>
              <span style="color: #0000ff">&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #0000ff">&lt;</span>
              <span style="color: #800000">LISTITEM</span>
              <span style="color: #ff0000">value</span>
              <span style="color: #0000ff">="Team
A"</span>
              <span style="color: #0000ff">/&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #0000ff">&lt;</span>
              <span style="color: #800000">LISTITEM</span>
              <span style="color: #ff0000">value</span>
              <span style="color: #0000ff">="Team
B"</span>
              <span style="color: #0000ff">/&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #0000ff">&lt;</span>
              <span style="color: #800000">LISTITEM</span>
              <span style="color: #ff0000">value</span>
              <span style="color: #0000ff">="User
Experience"</span>
              <span style="color: #0000ff">/&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #0000ff">&lt;</span>
              <span style="color: #800000">LISTITEM</span>
              <span style="color: #ff0000">value</span>
              <span style="color: #0000ff">="Team
C"</span>
              <span style="color: #0000ff">/&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #0000ff">&lt;/</span>
              <span style="color: #800000">GLOBALLIST</span>
              <span style="color: #0000ff">&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #0000ff">&lt;/</span>
              <span style="color: #800000">gl:GLOBALLISTS</span>
              <span style="color: #0000ff">&gt;</span>
            </pre>
          </div>
        </div>
        <p>
So, on a wing and a prayer I ran this command:
</p>
        <blockquote>
          <p>
glimport /f TeamList.xml /t myTfsServerName
</p>
        </blockquote>
        <p>
And guess what happened: It worked great! All of my other lists were intact and my
new team names showed up just fine. So I learned 2 things in this little exercise.
</p>
        <ol>
          <li>
You can import a single global list XML file into your TFS server without affecting
other lists. 
</li>
          <li>
glimport and glexport work just fine on a VS2008 client talking to a 2005 TFS server. 
</li>
        </ol>
        <img width="0" height="0" src="http://blog.accentient.com/aggbug.ashx?id=cfdcb982-7ba3-4f62-baaa-10fa82d776e1" />
      </body>
      <title>Managing Global Lists in TFS</title>
      <guid isPermaLink="false">http://blog.accentient.com/PermaLink,guid,cfdcb982-7ba3-4f62-baaa-10fa82d776e1.aspx</guid>
      <link>http://blog.accentient.com/2008/03/24/ManagingGlobalListsInTFS.aspx</link>
      <pubDate>Mon, 24 Mar 2008 21:37:39 GMT</pubDate>
      <description>&lt;p&gt;
Having just inherited a TFS installation to manage, I received a request to add some
values to a global list. I got a little nervous about this when I saw that the server
had many (MANY) global lists in it already and I wanted to be very careful not to
break anything during this change.
&lt;/p&gt;
&lt;p&gt;
Of course the first thing I did was consult the master book on the subject of TFS, &lt;a href="http://www.microsoft.com/MSPress/books/8477.aspx" target="_blank"&gt;Rich's&lt;em&gt; Working
with Microsoft® Visual Studio® 2005 Team System&lt;/em&gt;&lt;/a&gt;&lt;em&gt;. &lt;/em&gt;This was a great
start to groking the whole Global List thing.
&lt;/p&gt;
&lt;p&gt;
The steps needed to do this are pretty simple and documented well from Microsoft.
The step to export your current global lists is to use the glexport command line tool.
From the Visual Studio command line prompt (this works fine on a client), do this:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
glexport /f AllGlobalLists.xml /t myTfsServerName
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Credentials used are the local login credentials. This gives me one big file containing
all the global lists in the server. Now the question I had was this, "Should I edit
this master global lists file and import the whole thing, or should I just try to
import changes to one list?" Obviously I wanted to work only on the one list I needed
to change, but what effect would it have if I pulled out all the other lists from
the file and uploaded just a single list in a smaller XML file?
&lt;/p&gt;
&lt;p&gt;
I was scared to death of deleting all the other lists in the file. I saved a copy
of the master, and then took out all the global lists except the one I was interested
in, changed the values, and ended up with something like this:
&lt;/p&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt;
&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #800000"&gt;xml&lt;/span&gt; &lt;span style="color: #ff0000"&gt;version&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="1.0"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;encoding&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="utf-8"&lt;/span&gt;?&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;gl:GLOBALLISTS&lt;/span&gt; &lt;span style="color: #ff0000"&gt;xmlns:gl&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="http://schemas.microsoft.com/VisualStudio/2005/workitemtracking/globallists"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;GLOBALLIST&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Teams
- Product Backlog"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;LISTITEM&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Team
A"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;LISTITEM&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Team
B"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;LISTITEM&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="User
Experience"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;LISTITEM&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Team
C"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;GLOBALLIST&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;gl:GLOBALLISTS&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
So, on a wing and a prayer I ran this command:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
glimport /f TeamList.xml /t myTfsServerName
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
And guess what happened: It worked great! All of my other lists were intact and my
new team names showed up just fine. So I learned 2 things in this little exercise.
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
You can import a single global list XML file into your TFS server without affecting
other lists. 
&lt;li&gt;
glimport and glexport work just fine on a VS2008 client talking to a 2005 TFS server. 
&lt;/li&gt;
&lt;/ol&gt;
&lt;img width="0" height="0" src="http://blog.accentient.com/aggbug.ashx?id=cfdcb982-7ba3-4f62-baaa-10fa82d776e1" /&gt;</description>
      <comments>http://blog.accentient.com/CommentView,guid,cfdcb982-7ba3-4f62-baaa-10fa82d776e1.aspx</comments>
      <category>David Starr</category>
      <category>Team System</category>
    </item>
  </channel>
</rss>