<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>NZ .net Dude</title>
	<atom:link href="http://nzdotnetdude.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://nzdotnetdude.wordpress.com</link>
	<description>Random thoughts from a kiwi .net developer</description>
	<lastBuildDate>Tue, 17 Nov 2009 05:10:31 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='nzdotnetdude.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/c8d02888679148bbc3c84c7fdcde51fa?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>NZ .net Dude</title>
		<link>http://nzdotnetdude.wordpress.com</link>
	</image>
			<item>
		<title>Reboot!</title>
		<link>http://nzdotnetdude.wordpress.com/2009/11/17/reboot/</link>
		<comments>http://nzdotnetdude.wordpress.com/2009/11/17/reboot/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 05:04:44 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Software development Process]]></category>
		<category><![CDATA[Team Foundation Server]]></category>
		<category><![CDATA[VSTS 2010]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[VSTS2010]]></category>
		<category><![CDATA[TFS2010]]></category>

		<guid isPermaLink="false">http://nzdotnetdude.wordpress.com/2009/11/17/reboot/</guid>
		<description><![CDATA[It’s been a while since I added to my series on VSTS 2010 in action, and a lot has happened since I posted Part 2. 
For starters, VS2010 Beta 2 has been released. This refresh contains much more content around the Process Guidance for the MSF 5 process templates, and so I’ve taken a slight [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nzdotnetdude.wordpress.com&blog=361181&post=45&subd=nzdotnetdude&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>It’s been a while since I added to my series on VSTS 2010 in action, and a lot has happened since I posted Part 2. </p>
<p>For starters, VS2010 Beta 2 has been released. This refresh contains much more content around the Process Guidance for the MSF 5 process templates, and so I’ve taken a slight pause in transmission on this series in order to absorb this and to reboot, if you like, my series on VSTS2010. When I post again, I’ll be using, and referring to, the features in Beta 2. </p>
<p>This does mean that I’ll go back over what I’ve already covered too, and update it for the new bits. Conceptually it’s still the same, but it’s a chance for me to tidy up what I’ve said already so that it actually makes some sense! <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>As well as this, the company I work for, Optimation, has re-launched it’s web presence, and the new website includes a <a href="http://www.optimation.co.nz/blog">company blog</a>, which I will be contributing to. In fact, these posts will be submitted to that blog also, and cross posted here. I can’t guarantee the order in which this will happen though, so I recommend that if you’re <em>really</em> hanging out for a new fix of VSTS2010 goodness from me, you check both places. </p>
<p>Also, as I’m not the only person who’ll be contributing to the Optimation blog, a whole range of content will appear there, from some really smart cookies, so do go and check it out! <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So, to summarise, I’m re-starting the series, and it’ll be cross-posted (hopefully – depends on approval from the “editorial team” at work) on the blog of the company I work for, Optimation.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nzdotnetdude.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nzdotnetdude.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nzdotnetdude.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nzdotnetdude.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nzdotnetdude.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nzdotnetdude.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nzdotnetdude.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nzdotnetdude.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nzdotnetdude.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nzdotnetdude.wordpress.com/45/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nzdotnetdude.wordpress.com&blog=361181&post=45&subd=nzdotnetdude&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://nzdotnetdude.wordpress.com/2009/11/17/reboot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9648ab3f31d45b5252e27fedea55120f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mark</media:title>
		</media:content>
	</item>
		<item>
		<title>VSTS 2010 in Action Part 2 &#8211; Project Planning</title>
		<link>http://nzdotnetdude.wordpress.com/2009/07/21/vsts-2010-in-action-part-2-project-planning/</link>
		<comments>http://nzdotnetdude.wordpress.com/2009/07/21/vsts-2010-in-action-part-2-project-planning/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 20:33:32 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Software development Process]]></category>
		<category><![CDATA[Team Foundation Server]]></category>
		<category><![CDATA[VSTS 2010]]></category>

		<guid isPermaLink="false">http://nzdotnetdude.wordpress.com/2009/07/21/vsts-2010-in-action-part-2-project-planning/</guid>
		<description><![CDATA[Welcome to the latest instalment in my series on VSTS2010 in action. So far I&#8217;ve covered the process I&#8217;m using, which matches as much as possible the development process I use at work. I&#8217;ve also talked about the tools I&#8217;m currently using at work, and what I hope to discover about TFS 2010. Check out [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nzdotnetdude.wordpress.com&blog=361181&post=42&subd=nzdotnetdude&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Welcome to the latest instalment in my series on VSTS2010 in action. So far I&#8217;ve covered the process I&#8217;m using, which matches as much as possible the development process I use at work. I&#8217;ve also talked about the tools I&#8217;m currently using at work, and what I hope to discover about TFS 2010. Check out the previous post in the series <span style="color:#ff0000;"><a title="VSTS 2010 in Action Part 1 - Introduction" href="http://nzdotnetdude.wordpress.com/2009/07/14/vsts-2010-in-action-part-1-introduction/">here</a></span>. There is also a full list of all posts in the series <span style="color:#ff0000;"><a title="TFS and VS2010 - play time!" href="http://nzdotnetdude.wordpress.com/2009/07/14/tfs-and-vs2010-play-time/">here</a></span>.</p>
<p>This time I&#8217;m going to cover project planning. Brian Harry has a good overview of the Project Management improvements in TFS 2010 <a href="http:/blogs.msdn.com/bharry/archive/2009/05/19/tfs-2010-project-management.aspx">here</a>, I&#8217;d suggest you have a read of this, since he covers some areas you may be interested in, which I&#8217;m not going to go into, such as MS Project integration.</p>
<p>Our process begins with some project setup tasks, before development really begins. </p>
<ol>
<li>Create backlog of user stories</li>
<li>Add any predecessor/successor links</li>
<li>Define areas and assign stories to each area</li>
<li>Rank the stories</li>
<li>Estimate the stories</li>
</ol>
<p>Then, each iteration/sprint we take a selection of stories from the backlog and implement them. Sounds easy huh? <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>What is a user story? Well, Wikipedia’s definition can be found <span style="color:#ff0000;"><a href="http://en.wikipedia.org/wiki/User_story">here</a></span>, but I like to think of the user story as a way of documenting, from a user point of view, a particular functional requirement that the system must support. So, for example, &#8220;As a user I would like to log in to the site, so that I can manage my bank accounts&#8221;, might be a user story for an internet banking website. Microsoft’s documentation for MSF 5 is still being developed, but they have some good material on User Stories <a href="http://msdn.microsoft.com/en-us/library/dd380634(VS.100).aspx">here</a>.</p>
<p>One of the quirks of the MSF Agile process that came out of the box with TFS in earlier versions is that it used &#8220;Scenarios&#8221; instead of the more well known &#8220;User Story&#8221; or &#8220;Use Case&#8221; for high level requirement documentation, which meant that lazy (or busy!) teams would shy away from using it, because they didn&#8217;t have the time or inclination to implement their own custom Work Item type for user story. Well as of MSF Agile v5, which is the agile process shipping with TFS 2010, Microsoft have switched to the &#8220;User Story&#8221; approach. I&#8217;m not sure its actually much different in fact, other than the change of name for the work item type, but it&#8217;s more consistent with the terminology that agile teams expect.</p>
<p>Here&#8217;s a what the User Story screen looks like in VS2010:</p>
<p><a href="http://nzdotnetdude.files.wordpress.com/2009/07/clip_image001.png"><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="clip_image001" src="http://nzdotnetdude.files.wordpress.com/2009/07/clip_image001_thumb.png?w=398&#038;h=313" border="0" alt="clip_image001" width="398" height="313" /></a></p>
<p>Some points to note about the user story are that there is a title field, which is pretty much the only required field; area and iteration path fields allowing you to classify stories; the Stack Rank, Story Points and Risk fields; the fact that you are encouraged to enter acceptance criteria with the description; and that there are a number of other tabs that support various linkages to other work items such as test cases, tasks and other user stories. I&#8217;ll be coming back to this screen to cover my usage of some of these fields in more detail later so I&#8217;ll leave it at that for now.</p>
<p>At this stage in the project, user stories should not be too highly detailed, since they are really intended to be a starting point, something to be elaborated upon down the track, when the time comes to implement them.</p>
<p>Now, usually the initial list of user stories will be defined in a workshop or series of workshops with the customer. Because of this, there will be a point at the beginning of the project where you&#8217;re going to have to enter a lot of user stories at the same time. You could do this by clicking the &#8220;Team&#8221; menu in Visual Studio, and selecting &#8220;Add New Work Item &gt; User Story&#8221;, filling out the form above, then rinse and repeat for each story. But that&#8217;s not going to be very efficient when you&#8217;ve got a lot of stories to capture. Fortunately you can enter them in bulk through a number of other means, such as from an Excel spreadsheet, or via the project portal.</p>
<p>I&#8217;ve chosen to use Excel to enter the stories into my project backlog. Excel integration is not new to TFS2010, so you&#8217;ll probably be aware of the excel &#8220;Team&#8221; add-in that takes care of the retrieval from and publishing to, TFS. I find that the easiest way to establish the appropriate integration is to do an initial &#8220;push&#8221; from TFS to excel, then make some changes, before publishing back to the server. With TFS2010, there is a ready made spreadsheet that helps you to do this for your product backlog. To find it, open the Team Explorer tool window in Visual Studio, expand the tree under your project, and select &#8220;Documents &gt; Shared Documents &gt; Product Backlog.xlsm&#8221;. This will bring up the Project Backlog spreadsheet.</p>
<p>The worksheet is pretty self explanatory really so I won&#8217;t go into it&#8217;s usage in much detail. It also has a tab containing instructions for its use. My project&#8217;s product backlog, with user stories all entered, estimated and ranked, is shown in this screenshot.</p>
<p><a href="http://nzdotnetdude.files.wordpress.com/2009/07/clip_image002.png"><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="clip_image002" src="http://nzdotnetdude.files.wordpress.com/2009/07/clip_image002_thumb.png?w=515&#038;h=298" border="0" alt="clip_image002" width="515" height="298" /></a></p>
<p>So the first step is to enter all the stories. I&#8217;ve gone through and entered not just the title, but also a description, containing the acceptance criteria for each story. It&#8217;s important to include this up front, since the acceptance criteria will ultimately drive your implementation and testing.</p>
<p>In order to be able to choose the stories for the first iteration, we have to have our project backlog sorted into some kind of priority order. Generally we&#8217;ll need to consider both the importance to the business and system dependencies or importance when we rank stories. So for example, the customer might consider it more important to have the ability for users to make an order in an e-commerce site than for their internal users to be able to update the product catalogue, but if it really makes sense from an implementation point of view to do the product catalogue first then that would likely change the order of precedence for these stories.</p>
<p>I must admit to being surprised that the User Story work item in TFS2010 does not have a priority field (the backlog spreadsheet has this field, but it&#8217;s not present in the User Story work item&#8230; :/). So you&#8217;ll have to trust me that I did take the business priority of each story into account! <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Other major factors that I consider when ranking the backlog were the Risk involved in implementing each story, plus each stories dependencies. One thing that also does not appear in this spreadsheet are the linkages. TFS 2010 supports a number of different types of linkage, but at this stage I am most interested in the predecessor/successor relationships.</p>
<p>So I&#8217;ve gone through all my stories, and assigned a Risk rating, as well as established the links to predecessor and successor stories for each entry in my backlog. At this point I found it also made sense to assign an Area Path for each story, not just for categorisation, but to help me determine the relationships between each story. You are able to use the backlog spreadsheet to do all of this, except establish the relationships. For this you need to use the Visual Studio tools. You can run the &#8220;Open User Stories&#8221; query and use the query results pane to navigate between user stories, updating each story as you go in the lower half of the window. The Query results screen has had a bit of a usability overhaul in VS2010 as well, with the addition of buttons allowing you to quickly show/hide the entire results pane, or the entire work item detail pane, and to change between the original over/under arrangement and side-by-side. Below is a screenshot of the result window with the relevant links tab in focus for one of my user stories, showing the predecessors and successors for that story.</p>
<p><a href="http://nzdotnetdude.files.wordpress.com/2009/07/clip_image003.png"><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="clip_image003" src="http://nzdotnetdude.files.wordpress.com/2009/07/clip_image003_thumb.png?w=490&#038;h=315" border="0" alt="clip_image003" width="490" height="315" /></a></p>
<p>TFS 2010 provides a field on the user story called &#8220;Stack Rank&#8221; which you use to represent the blended ranking of each story. Taking each story’s risk, area path and dependency graph into account I’ve assigned a development order to each item in my backlog, and used the Stack Rank field to store it. So what I end up with is my backlog sorted in the order I should be implementing each story.</p>
<p>Now, I could move on to the next step now, assigning stories to the first iteration. However, first of all I’m going to assign relative sizes to each story using story points. I will explain this in a bit more detail in a future post, but the sizing is important because we can use it to give us a good overview of progress towards project completion, both in terms of burn down, as well as earned value.</p>
<p>So I’ve also done estimates of the size of each story here, from a relative point of view. Note that user stories do not have a field to hold an effort estimate in hours, only the story points estimate. This is because you’ll typically track effort against tasks, rather than stories, and each story should have a number of tasks linked to it. Therefore you can calculate the total estimate hours for each story by adding the effort estimate for all the tasks linked to that story.</p>
<p>So, with that done, we now have our project backlog of user stories, with each story given a risk, links to any successor and predecessor stories, an area path classification, and a relative size estimate measured in story points.</p>
<p>My next post in this series will cover the next step, which is to assign stories to iterations, so we can begin on iteration 0.</p>
<div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:e44b55b4-3509-4e70-ab5e-88641246aaf6" style="display:inline;float:none;margin:0;padding:0;">Technorati Tags: <a rel="tag" href="http://technorati.com/tags/VSTS2010">VSTS2010</a>,<a rel="tag" href="http://technorati.com/tags/TFS">TFS</a>,<a rel="tag" href="http://technorati.com/tags/TFS2010">TFS2010</a>,<a rel="tag" href="http://technorati.com/tags/Requirements">Requirements</a>,<a rel="tag" href="http://technorati.com/tags/Project+Planning">Project Planning</a>,<a rel="tag" href="http://technorati.com/tags/User+Story">User Story</a>,<a rel="tag" href="http://technorati.com/tags/Project+Backlog">Project Backlog</a></div>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nzdotnetdude.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nzdotnetdude.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nzdotnetdude.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nzdotnetdude.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nzdotnetdude.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nzdotnetdude.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nzdotnetdude.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nzdotnetdude.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nzdotnetdude.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nzdotnetdude.wordpress.com/42/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nzdotnetdude.wordpress.com&blog=361181&post=42&subd=nzdotnetdude&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://nzdotnetdude.wordpress.com/2009/07/21/vsts-2010-in-action-part-2-project-planning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9648ab3f31d45b5252e27fedea55120f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mark</media:title>
		</media:content>

		<media:content url="http://nzdotnetdude.files.wordpress.com/2009/07/clip_image001_thumb.png" medium="image">
			<media:title type="html">clip_image001</media:title>
		</media:content>

		<media:content url="http://nzdotnetdude.files.wordpress.com/2009/07/clip_image002_thumb.png" medium="image">
			<media:title type="html">clip_image002</media:title>
		</media:content>

		<media:content url="http://nzdotnetdude.files.wordpress.com/2009/07/clip_image003_thumb.png" medium="image">
			<media:title type="html">clip_image003</media:title>
		</media:content>
	</item>
		<item>
		<title>VSTS 2010 in Action Part 1 &#8211; Introduction</title>
		<link>http://nzdotnetdude.wordpress.com/2009/07/14/vsts-2010-in-action-part-1-introduction/</link>
		<comments>http://nzdotnetdude.wordpress.com/2009/07/14/vsts-2010-in-action-part-1-introduction/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 22:17:22 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Software development Process]]></category>
		<category><![CDATA[Team Foundation Server]]></category>
		<category><![CDATA[VSTS 2010]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Management]]></category>
		<category><![CDATA[VSTS2010]]></category>
		<category><![CDATA[Development Process]]></category>
		<category><![CDATA[Project Management]]></category>

		<guid isPermaLink="false">http://nzdotnetdude.wordpress.com/2009/07/14/vsts-2010-in-action-part-1-introduction/</guid>
		<description><![CDATA[As mentioned, I&#8217;ve been playing with VS and TFS 2010 beta 1, and since I have a personal project that I can use them on, I&#8217;m going to cover my adventures in a series of posts.  
The way I plan to run my project is to follow as closely as possible the actual process we use [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nzdotnetdude.wordpress.com&blog=361181&post=29&subd=nzdotnetdude&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>As mentioned, I&#8217;ve been playing with VS and TFS 2010 beta 1, and since I have a personal project that I can use them on, I&#8217;m going to cover my adventures in a series of posts.  </p>
<p>The way I plan to run my project is to follow as closely as possible the actual process we use at work, since one of my goals is to find out how well TFS 2010 fits with our current process out of the box, and to figure out where any gaps might exist. Once I&#8217;ve worked that out, I&#8217;ll also consider how we might close any gaps, be it through a custom process template, custom or modified work items, custom built reports, or whatever it might be.  </p>
<p>By way of introduction, It would be useful to first cover our current tools and our current process. This should provide some background on where I&#8217;m coming from with this, and hopefully provide some insight on a couple of the issues that I think are present in our existing toolset in particular.  </p>
<p><span style="font-size:17pt;">Current tools</p>
<p></span></p>
<p>Currently we only use a subset of the functionality in TFS 2008, as we have other software that we use for things like Project Tracking, and team collaboration. For better or worse, I&#8217;m going to work through my project in this series whilst making use of the entire TFS toolset, since my personal belief is that by doing so we&#8217;ll get better value for money, as well as enable some key code quality and engineering practices that we currently are not able to perform.  </p>
<p>Our current toolset includes a Software as a Service project management/tracking tool called Rally, which has a really nice user interface and supports a variety of different approaches to agile project management. However, since Rally sits not just outside TFS but outside the firewall, there are some interesting problems we face with it.  </p>
<p>We are, in my opinion, also hamstrung by the fact that we cannot link user stories, defects, tests, etc to items within TFS source control, meaning that we lose the benefits of traceability that an integrated solution offers us. That said, Rally does have a good open API which we can, and do, use to integrate with TFS.  </p>
<p>However, these integrations have to be built by hand, which means someone taking the time to build and test them, and we just don&#8217;t have the time to do that. Add to this the fact that the API changes periodically, meaning that we run the risk of having our integrations just stop working suddenly. Add to this also the fact that any outage in connectivity at all means you lose access to the tool, plus the additional license cost (which is considerable with Rally, I&#8217;m told), and you begin to see why I&#8217;m keen to see whether we can get by with TFS instead.  </p>
<p>As I mentioned, we currently use TFS 2008, but only for Version Control and build. We have one or two projects that make use of the SharePoint integration for collaboration but by and large, projects instead use a Wiki for collaboration, with document storage done on the file system. The Wiki tool we use also incurs a license cost, so I&#8217;m planning to evaluate the experience of using the wiki pages built into the TFS SharePoint templates, whilst also using the project portals for document sharing.  </p>
<p><span style="font-size:17pt;">Our current process</span> </p>
<p>Without going to great lengths explaining our current development process, I&#8217;ll just say that it takes elements of SCRUM, and throws in bits of a couple of other methodologies as well. We generally describe our requirements with User Stories, and elaborate on these by adding tasks to them. Our PM practice lead is keen on 2 week iterations, which I find a little short, but not too bad.  </p>
<p>At the start of the project we&#8217;ll have a workshop with the customer to outline the user stories, so come iteration zero we will have some idea of what we&#8217;re aiming towards. We&#8217;ll also have the list done in some sort of priority order, so we also know which order we should be tackling the stories in.  </p>
<p>We&#8217;ll typically start with an iteration zero, which we would use to do project start up, as well as perhaps a prototype or proof of concept for the project. This is one area I&#8217;m looking at doing something a bit different with my project, but I&#8217;ll talk about that in a later post.  </p>
<p>Prior to each iteration we&#8217;ll do a planning session where we size the user stories using story points, which is a relative sizing method. Again, more on this in a later post. At the planning session we&#8217;ll take the stories from the top of the backlog, and estimate the amount of effort involved in doing each one. We take the total number of available developer hours for the upcoming iteration and subtract the hours for each story off the total until we&#8217;ve used up all the hours we have available.  </p>
<p>Before we do the estimating for the next iteration, we first do a retrospective for the previous iteration. This gives us a chance to discuss what went well, what didn&#8217;t, and what we&#8217;re going to do about it.  </p>
<p><span style="font-size:17pt;">The Project</span> </p>
<p>My project is focused on building a website for a (currently!) fictional business that uses flight simulators to provide customers with multiplayer simulated air to air combat. The website will have a range of static content on it, but also include some content managed areas. Content management won&#8217;t be anything too fancy, though, since the aim of the project isn&#8217;t to build a CMS, or even a CM enabled website. The site will also include a blog, and an online store, so that people can purchase merchandise online, to help fund the business and get it off the ground. </p>
<p>In my next post I&#8217;ll start actually talking about TFS 2010, beginning with getting my product backlog set up. Specifically, I&#8217;ll cover using VS2010 with Team Explorer, the Web Access tool and project portal, and finally Excel to create and manage the backlog.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nzdotnetdude.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nzdotnetdude.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nzdotnetdude.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nzdotnetdude.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nzdotnetdude.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nzdotnetdude.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nzdotnetdude.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nzdotnetdude.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nzdotnetdude.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nzdotnetdude.wordpress.com/29/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nzdotnetdude.wordpress.com&blog=361181&post=29&subd=nzdotnetdude&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://nzdotnetdude.wordpress.com/2009/07/14/vsts-2010-in-action-part-1-introduction/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9648ab3f31d45b5252e27fedea55120f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mark</media:title>
		</media:content>
	</item>
		<item>
		<title>TFS and VS2010 &#8211; play time!</title>
		<link>http://nzdotnetdude.wordpress.com/2009/07/14/tfs-and-vs2010-play-time/</link>
		<comments>http://nzdotnetdude.wordpress.com/2009/07/14/tfs-and-vs2010-play-time/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 22:16:33 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Software development Process]]></category>
		<category><![CDATA[Team Foundation Server]]></category>
		<category><![CDATA[VSTS 2010]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Management]]></category>
		<category><![CDATA[VSTS2010]]></category>
		<category><![CDATA[Development Process]]></category>
		<category><![CDATA[Project Management]]></category>

		<guid isPermaLink="false">http://nzdotnetdude.wordpress.com/2009/07/14/tfs-and-vs2010-play-time/</guid>
		<description><![CDATA[Well, I&#8217;ve finally got the chance to have a play with Visual Studio 2010, and so I thought I&#8217;d give it a decent working over.  
I&#8217;ve got myself a copy of the Beta 1 release of VS 2010 Team Suite edition, plus TFS2010. One of my main interest areas is in the use of TFS, and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nzdotnetdude.wordpress.com&blog=361181&post=28&subd=nzdotnetdude&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Well, I&#8217;ve finally got the chance to have a play with Visual Studio 2010, and so I thought I&#8217;d give it a decent working over.  </p>
<p>I&#8217;ve got myself a copy of the Beta 1 release of VS 2010 Team Suite edition, plus TFS2010. One of my main interest areas is in the use of TFS, and therefore I&#8217;m keen to explore the changes and (hopefully!) improvements in the 2010 release of this, as well as Visual Studio itself. Hopefully I can get a feel for the changes in store for us, since we&#8217;ve paid for Software Assurance with TFS 2008, meaning we get a &#8220;free&#8221; upgrade to TFS 2010 when it arrives.</p>
<p>I have a project that I&#8217;ll be working through using VS 2010 and .net 4, and I&#8217;ll be using TFS for source control, work item tracking/project management, and build services.  </p>
<p>So I&#8217;m off to have a bit of a play! <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nzdotnetdude.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nzdotnetdude.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nzdotnetdude.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nzdotnetdude.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nzdotnetdude.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nzdotnetdude.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nzdotnetdude.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nzdotnetdude.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nzdotnetdude.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nzdotnetdude.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nzdotnetdude.wordpress.com&blog=361181&post=28&subd=nzdotnetdude&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://nzdotnetdude.wordpress.com/2009/07/14/tfs-and-vs2010-play-time/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9648ab3f31d45b5252e27fedea55120f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mark</media:title>
		</media:content>
	</item>
		<item>
		<title>Service Factory Modelling Edition &#8211; part 2</title>
		<link>http://nzdotnetdude.wordpress.com/2008/07/14/service-factory-modelling-edition-part-2/</link>
		<comments>http://nzdotnetdude.wordpress.com/2008/07/14/service-factory-modelling-edition-part-2/#comments</comments>
		<pubDate>Mon, 14 Jul 2008 00:30:15 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Software Factories]]></category>

		<guid isPermaLink="false">http://nzdotnetdude.wordpress.com/?p=26</guid>
		<description><![CDATA[In my last post, I went over a number of issues that my project team and I had with the Service Factory Modelling Edition.
One of the issues was with respect to the generated Entity-to-DataContract translator classes, specifically the fact that the generated class contains no &#8220;collection&#8221; translation method.
Now, it may seem obvious to some that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nzdotnetdude.wordpress.com&blog=361181&post=26&subd=nzdotnetdude&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>In <a href="http://nzdotnetdude.wordpress.com/2008/07/04/service-factory-modelling-edition-part-1/">my last post</a>, I went over a number of issues that my project team and I had with the Service Factory Modelling Edition.</p>
<p>One of the issues was with respect to the generated Entity-to-DataContract translator classes, specifically the fact that the generated class contains no &#8220;collection&#8221; translation method.</p>
<p>Now, it may seem obvious to some that there is a straightforward way to leverage the generated methods to achieve translation of an entire collection of entities to data collection types, or vice-versa, but not everyone finds it so obvious (at least, some on my project team didn&#8217;t find it obvious!! <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</p>
<p>Ok, lets imagine we have generated a translator class for an Address entity and an AddressDC data contract type. You get the following two static methods (code removed for clarity):</p>
<pre style="padding-left:30px;">public static BusinessEntities.Address TranslateAddressDCToAddress(DataContracts.AddressDC from)
{
    ...
}</pre>
<pre style="padding-left:30px;">public static DataContracts.AddressDC TranslateAddressToAddressDC(BusinessEntities.Address from)
{
    ...
}</pre>
<p>Now, we also have a collection of address entities (stored as a List&lt;Address&gt;), that we want to translate into a collection in our data contract. The data contract has been designed using the modelling tools in the Service Factory, and our AddressDC collection has been modelled as a collection of type List also.</p>
<p>Basically, you loop through the collection you&#8217;re translating from and for each record, you call the appropriate translator method, like so:</p>
<p style="padding-left:30px;"><code>List&lt;Address&gt; output = new List&lt;Address&gt;();</code></p>
<p style="padding-left:30px;">foreach (AddressDC addressDCItem in AddressDCColl)<br />
{<br />
    output.Add(TranslateBetweenAddressAndAddressDC.TranslateAddressToAddressDC(addressItem));<br />
}</p>
<p>Ok, so the other part of this equation is making sure that we factor this well, and don&#8217;t write this code over again everywhere we want to use it. The most logical place to put this is to write it as a new method on the existing translator class.</p>
<p>Of course the thing to remember with this, and this is the issue I really had with the translator generation in the Service Factory, is that the translator is not a partial class, so we have to add code to the existing code file, and because of that, we need to realise that this code will be &#8220;removed&#8221; again if the translator ever needs to be re-generated.</p>
<p>Obviously we&#8217;re likely to want collection translators that go both ways, so there will be two new hand-coded methods. Therefore our final translator would look something like this (again, some of the code has been removed for clarity):</p>
<pre style="padding-left:30px;">public static BusinessEntities.Address TranslateAddressDCToAddress(DataContracts.AddressDC from)
{
    ...
} </pre>
<pre style="padding-left:30px;">public static DataContracts.AddressDC TranslateAddressToAddressDC(BusinessEntities.Address from)
{
    ...
}</pre>
<pre style="padding-left:30px;">Public List&lt;Address&gt; TranslateAddressList(DataContracts.AddressDCColl from)
{
    List&lt;Address&gt; output = new List&lt;Address&gt;();</pre>
<pre style="padding-left:30px;">    foreach (AddressDC addressDCItem in from)
    {
        output.Add(TranslateBetweenAddressAndAddressDC.TranslateAddressDCToAddress(addressItem));
    }</pre>
<pre style="padding-left:30px;">    return output;
}</pre>
<pre style="padding-left:30px;">Public DataContracts.AddressDCColl TranslateAddressList(List&lt;Address&gt; from)
{
    DataContracts.AddressDCColl output = new DataContracts.AddressDCColl();</pre>
<pre style="padding-left:30px;">    foreach (Address addressItem in from)
    {
        output.Add(TranslateBetweenAddressAndAddressDC.TranslateAddressToAddressDC(addressItem));
    }</pre>
<pre style="padding-left:30px;">    return output;
}</pre>
<p>Please note that this code has been coded off the cuff, and has not been tested, nor even compiled. It&#8217;s there just to give you a general idea of what to do.</p>
<p>Mark</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/nzdotnetdude.wordpress.com/26/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/nzdotnetdude.wordpress.com/26/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nzdotnetdude.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nzdotnetdude.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nzdotnetdude.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nzdotnetdude.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nzdotnetdude.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nzdotnetdude.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nzdotnetdude.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nzdotnetdude.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nzdotnetdude.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nzdotnetdude.wordpress.com/26/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nzdotnetdude.wordpress.com&blog=361181&post=26&subd=nzdotnetdude&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://nzdotnetdude.wordpress.com/2008/07/14/service-factory-modelling-edition-part-2/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9648ab3f31d45b5252e27fedea55120f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mark</media:title>
		</media:content>
	</item>
		<item>
		<title>Service Factory Modelling Edition &#8211; Part 1</title>
		<link>http://nzdotnetdude.wordpress.com/2008/07/04/service-factory-modelling-edition-part-1/</link>
		<comments>http://nzdotnetdude.wordpress.com/2008/07/04/service-factory-modelling-edition-part-1/#comments</comments>
		<pubDate>Fri, 04 Jul 2008 04:03:48 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Software Factories]]></category>
		<category><![CDATA[Service Factory Modelling Edition]]></category>

		<guid isPermaLink="false">http://nzdotnetdude.wordpress.com/?p=22</guid>
		<description><![CDATA[In my last post I mentioned that I&#8217;d be writing a bit about the experiences I&#8217;ve had recently with some of the Microsoft Patterns and Practices Software Factories. On a recent project, I made the call to introduce the use of the Service Factory Modelling Edition, the Repository Factory (a.k.a. the Data Access Guidance Package), [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nzdotnetdude.wordpress.com&blog=361181&post=22&subd=nzdotnetdude&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>In my last post I mentioned that I&#8217;d be writing a bit about the experiences I&#8217;ve had recently with some of the Microsoft Patterns and Practices Software Factories. On a recent project, I made the call to introduce the use of the Service Factory Modelling Edition, the Repository Factory (a.k.a. the Data Access Guidance Package), and the Smart Client Software Factory to my team.</p>
<p>To get the ball rolling, I&#8217;m going to begin with a bit of a discussion on some of the issues I found with the Service Factory Modelling Edition.</p>
<p>This list is a pretty exhaustive list of the things that tripped us up during the course of the project. I&#8217;m not having a moan here, because overall I think it&#8217;s a pretty cool tool, and I think that the P+P group did a damn fine job of the designers in particular, considering that this is pretty much the first version of the tool to include them.</p>
<ol style="margin-top:0;margin-bottom:0;margin-left:0.375in;direction:ltr;unicode-bidi:embed;" type="1">
<li><span>The model designers don’t support cut-and-paste of sub-elements (such as primitive sub-types on a data contract). So if you have a datacontract type, that is used in two different places, you can&#8217;t copy and paste, you have to create the second one from scratch.<br />
</span></li>
<li><span>The designers for data contract and service contract do not allow the user to manually enter the type name for types that differ from the default &#8220;System.String&#8221; &#8211; have to use the type selector GUI instead (extreme level of user interface friction). This one caused me some aggravationsince in a <strong>lot</strong> of cases, I wanted the type of a contract member to be something other than string.<br />
</span></li>
<li><span>When using the WCF Extension, the DataContract designer should support auto-increment or auto-assignment of the &#8220;Order&#8221; property of sub-types rather than defaulting to 0 for every newly added subtype, since it is necessary to have a unique Order value for every member.<br />
</span></li>
<li><span>There is no support for nullable types in translators. For whatever reason, the Entity to DataContract type translator codegen and wizard do not like nullable types. I had some other issues with the translators also, chiefly the facts that a) they are NOT generated as partial classes, and b) there is no ability to generate a translator for <em>collections</em> of a given Entity/DataContract type. I&#8217;ll cover how I got around this in a later post.<br />
</span></li>
<li><span>No support for tidily removing generated artifacts &#8211; translators, DC&#8217;s, Services, etc. There is no easy way to undo a &#8220;generate&#8221; &#8211; you have to manually delete the generated code if you remove or rename an item using the designers.<br />
</span></li>
<li><span>There is no out-of-the-box support for WCF bindings other than wsHttpBinding and basicHttpBinding. You need to implement an extension to provide this support. This was annoying, but was pretty easy to sort out. I&#8217;ll outline this in a later post also.<br />
</span></li>
<li><span>There is no way to reference types from one data contract model in another data contract model. If you have a data contract type defined in a model, and you want to use that same type in more than one place, then you can only do so within the same model. This leads to some of my models being overly large, with everything on the one model or, if you do persist in splitting things up into separate models (which I think makes perfect sense), then you end up with more than one copy of the type (one on each model), which is a real problem when it comes to code generation, and keeping the two (or more!!) models in synch with each other.<br />
</span></li>
<li><span>No support for generation of asynchronous client proxy code. At one point I wanted to be able to generate an asynchronous client proxy, but I found that this was not supported in the Service Factory Modelling Ed. </span><span style="font-size:10pt;font-family:Verdana;"><br />
</span></li>
<li><span>The out-of-the-box service host project is implemented as an ASP.Net web site. There is no support within the service factory for self-hosting scenarios, such as hosting services in a windows service (at least, I never found any). I will also cover my solution to this in a later post. </span></li>
</ol>
<p>&nbsp;</br><br />
Again, as I said, I&#8217;m not criticising the Service Factory. I think it really made things easier on this project in particular, as we had a very junior developer join the team mid-project (she was from the customer&#8217;s development team in fact) and I think that without this tool, she would probably still be trying to get her head around the concepts involved in service development.</p>
<p>Mark</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/nzdotnetdude.wordpress.com/22/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/nzdotnetdude.wordpress.com/22/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nzdotnetdude.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nzdotnetdude.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nzdotnetdude.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nzdotnetdude.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nzdotnetdude.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nzdotnetdude.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nzdotnetdude.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nzdotnetdude.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nzdotnetdude.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nzdotnetdude.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nzdotnetdude.wordpress.com&blog=361181&post=22&subd=nzdotnetdude&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://nzdotnetdude.wordpress.com/2008/07/04/service-factory-modelling-edition-part-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9648ab3f31d45b5252e27fedea55120f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mark</media:title>
		</media:content>
	</item>
		<item>
		<title>Its been a while!</title>
		<link>http://nzdotnetdude.wordpress.com/2008/07/03/its-been-a-while/</link>
		<comments>http://nzdotnetdude.wordpress.com/2008/07/03/its-been-a-while/#comments</comments>
		<pubDate>Thu, 03 Jul 2008 03:56:52 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Software Factories]]></category>

		<guid isPermaLink="false">http://nzdotnetdude.wordpress.com/?p=21</guid>
		<description><![CDATA[Wow, ok so it&#8217;s been a while since I&#8217;ve posted anything! Well, I&#8217;ve got some material to post on so I&#8217;m going to be doing a few more over the next few days.
I&#8217;ve recently been working on a project where I&#8217;ve been using the MS Patterns and Practices group&#8217;s Software Factories, along with VS 2005, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nzdotnetdude.wordpress.com&blog=361181&post=21&subd=nzdotnetdude&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Wow, ok so it&#8217;s been a while since I&#8217;ve posted anything! Well, I&#8217;ve got some material to post on so I&#8217;m going to be doing a few more over the next few days.</p>
<p>I&#8217;ve recently been working on a project where I&#8217;ve been using the MS Patterns and Practices group&#8217;s Software Factories, along with VS 2005, and I have some thoughts and comments on these that I&#8217;d like to share.</p>
<p>Hopefully what I have to say will be helpful to someone, since much of what I&#8217;m going to post relates to solutions I found to some fairly fundamental limitations in a couple of the factories that our team used.</p>
<p>In particular, I&#8217;ll be addressing workarounds for issues found in the Service Factory Modelling Edition, and the Repository Factory (or Data Access Guidance Package), along with general notes on our teams experiences with these and the Smart Client Software Factory.</p>
<p>So, as I said, hopefully someone reading will find this interesting, or even helpful&#8230;</p>
<p>Cheers<br />
Mark</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/nzdotnetdude.wordpress.com/21/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/nzdotnetdude.wordpress.com/21/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nzdotnetdude.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nzdotnetdude.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nzdotnetdude.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nzdotnetdude.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nzdotnetdude.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nzdotnetdude.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nzdotnetdude.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nzdotnetdude.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nzdotnetdude.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nzdotnetdude.wordpress.com/21/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nzdotnetdude.wordpress.com&blog=361181&post=21&subd=nzdotnetdude&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://nzdotnetdude.wordpress.com/2008/07/03/its-been-a-while/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9648ab3f31d45b5252e27fedea55120f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mark</media:title>
		</media:content>
	</item>
		<item>
		<title>Managing Requirements with TFS</title>
		<link>http://nzdotnetdude.wordpress.com/2008/01/31/managing-requirements-with-tfs/</link>
		<comments>http://nzdotnetdude.wordpress.com/2008/01/31/managing-requirements-with-tfs/#comments</comments>
		<pubDate>Wed, 30 Jan 2008 20:58:36 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Software development Process]]></category>
		<category><![CDATA[Team Foundation Server]]></category>
		<category><![CDATA[Requirements Management]]></category>
		<category><![CDATA[RM]]></category>
		<category><![CDATA[TFS]]></category>

		<guid isPermaLink="false">http://nzdotnetdude.wordpress.com/?p=20</guid>
		<description><![CDATA[So, I&#8217;ve always felt that one big gap in software development tools generally was that there&#8217;s never really been a truly effective way of managing requirements, and tracing individual requirements through to the code that implements them.
Sure there are requirements management tools out there, for example, CaliberRM, but I&#8217;ve yet to see a good integrated [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nzdotnetdude.wordpress.com&blog=361181&post=20&subd=nzdotnetdude&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>So, I&#8217;ve always felt that one big gap in software development tools generally was that there&#8217;s never really been a truly effective way of managing requirements, and tracing individual requirements through to the code that implements them.</p>
<p>Sure there are requirements management tools out there, for example, CaliberRM, but I&#8217;ve yet to see a good integrated requirements-to-code tracibility tool.</p>
<p>TFS does have the potential to offer this, with it&#8217;s work item tracking features, and the fact that work items can be linked to code changesets, builds, etc. But I&#8217;ve not been that impressed with this from a requirements management point of view, for a number of reasons.</p>
<p> Firstly, the out-of-the-box process templates offer only a single approach to requirements tracking, using scenarios. This means that if you do things differently (Use Cases &#8211; similar to scenarios, but not really the same thing, features as part of an FDD process, or just plain ol&#8217; numbered requirements in a word doc), you&#8217;ve got to either change the way you do things, or build something yourself to handle your way of doing RM.</p>
<p>However, I found a series of posts by Steve Lange on RM using TFS, which gives a good overview of the topic, from using out of the box TFS for RM, through to coverage of a number of the third party RM tools that are out there now providing integration with TFS. Steve also does a couple of good pros/cons summary tables as well. Read the series <a href="http://blogs.msdn.com/slange/archive/2007/11/06/requirements-management-in-tfs-part-1-of-4-overview.aspx" title="here">here</a>.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/nzdotnetdude.wordpress.com/20/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/nzdotnetdude.wordpress.com/20/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nzdotnetdude.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nzdotnetdude.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nzdotnetdude.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nzdotnetdude.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nzdotnetdude.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nzdotnetdude.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nzdotnetdude.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nzdotnetdude.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nzdotnetdude.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nzdotnetdude.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nzdotnetdude.wordpress.com&blog=361181&post=20&subd=nzdotnetdude&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://nzdotnetdude.wordpress.com/2008/01/31/managing-requirements-with-tfs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9648ab3f31d45b5252e27fedea55120f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mark</media:title>
		</media:content>
	</item>
		<item>
		<title>New job, new house</title>
		<link>http://nzdotnetdude.wordpress.com/2007/08/02/new-job-new-house/</link>
		<comments>http://nzdotnetdude.wordpress.com/2007/08/02/new-job-new-house/#comments</comments>
		<pubDate>Thu, 02 Aug 2007 02:50:27 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://nzdotnetdude.wordpress.com/2007/08/02/new-job-new-house/</guid>
		<description><![CDATA[So despite my best intentions, I&#8217;ve slacked off from blogging again&#8230;.however I have good reason this time &#8211; I left my old job at EDS and have started at Optimation as a .net Solutions Architect. On top of that, we&#8217;ve finally bought ourselves a house &#8211; up on the Kapiti Coast at Paraparaumu Beach&#8230;.
So the work [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nzdotnetdude.wordpress.com&blog=361181&post=19&subd=nzdotnetdude&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>So despite my best intentions, I&#8217;ve slacked off from blogging again&#8230;.however I have good reason this time &#8211; I left my old job at EDS and have started at <a target="_blank" href="http://www.optimation.co.nz">Optimation</a> as a .net Solutions Architect. On top of that, we&#8217;ve finally bought ourselves a house &#8211; up on the Kapiti Coast at Paraparaumu Beach&#8230;.</p>
<p>So the work (or lack of it) at EDS was getting to me, and I decided I needed a change. Well, Optimation certainly is different from EDS!! They&#8217;re a small (compared to EDS) New Zealand based company, with something like 50 people in the Wellington office (myself included). For the moment, it&#8217;s meant saying goodbye to working on a laptop (though thats about to change), goodbye to Vista and Office 2007 <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  , and goodbye to using Orcas/VS 2008 at work &#8211; just as the <a target="_blank" href="http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx">beta 2</a> release is made available too!! Still, I needed the change, and I can get my VS2008 fix at home, hopefully. Plus theres a chance I can convince my new boss to let me use it at work too&#8230; <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/nzdotnetdude.wordpress.com/19/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/nzdotnetdude.wordpress.com/19/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nzdotnetdude.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nzdotnetdude.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nzdotnetdude.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nzdotnetdude.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nzdotnetdude.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nzdotnetdude.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nzdotnetdude.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nzdotnetdude.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nzdotnetdude.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nzdotnetdude.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nzdotnetdude.wordpress.com&blog=361181&post=19&subd=nzdotnetdude&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://nzdotnetdude.wordpress.com/2007/08/02/new-job-new-house/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9648ab3f31d45b5252e27fedea55120f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mark</media:title>
		</media:content>
	</item>
		<item>
		<title>More Orcas stuff</title>
		<link>http://nzdotnetdude.wordpress.com/2007/06/02/more-orcas-stuff/</link>
		<comments>http://nzdotnetdude.wordpress.com/2007/06/02/more-orcas-stuff/#comments</comments>
		<pubDate>Sat, 02 Jun 2007 00:14:04 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Orcas]]></category>

		<guid isPermaLink="false">http://nzdotnetdude.wordpress.com/2007/06/02/more-orcas-stuff/</guid>
		<description><![CDATA[Just another quick post on Orcas, and in particular LINQ.
LINQ is obviously one of the buzzwords in .net at the moment, and I&#8217;ve been following it as the hype has been building&#8230;I have to say that to begin with my first thoughts were &#8220;well, it looks funky, but it&#8217;s never going to replace your standard [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nzdotnetdude.wordpress.com&blog=361181&post=18&subd=nzdotnetdude&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Just another quick post on Orcas, and in particular LINQ.</p>
<p>LINQ is obviously one of <em>the </em>buzzwords in .net at the moment, and I&#8217;ve been following it as the hype has been building&#8230;I have to say that to begin with my first thoughts were &#8220;well, it looks funky, but it&#8217;s never going to replace your standard ADO.Net SqlConnection, SqlCommand, etc method of data access&#8221;.</p>
<p>Now that I&#8217;ve looked into it a bit more, I&#8217;m prepared to admit that I&#8217;m wrong - it&#8217;s going to have a much bigger impact that I first thought. I&#8217;m going to be doing a lot of messing about with LINQ in particular to get a real good feel for how you use it, how it works, what you need to do to extend it, etc. That way, as an architect, I can be prepared to make a call as to how much use it will really be. My gut feel at this stage though is that LINQ could well be something that you&#8217;ll be wanting to use &#8220;everywhere&#8221;.</p>
<p>As I learn more about LINQ, I&#8217;m going to post my thoughts, but in the meantime, I want to pass on the source I&#8217;ve been using to learn about LINQ, in case anyone out there finds it useful. I&#8217;ve subscribed to <a href="http://weblogs.asp.net/scottgu/">Scott Guthrie&#8217;s blog</a>, and he really is <em>the man </em>when it comes to getting concise overview information on LINQ. Scott seems to really have a talent for taking you to the right level of detail to be able to understand the subject at hand. Not too complicated, not too simple, his examples are really straightforward, and in my opinion, Scott&#8217;s blog is the best resource I&#8217;ve found yet for learning about LINQ, and other .net technologies as well. </p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/nzdotnetdude.wordpress.com/18/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/nzdotnetdude.wordpress.com/18/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nzdotnetdude.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nzdotnetdude.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nzdotnetdude.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nzdotnetdude.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nzdotnetdude.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nzdotnetdude.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nzdotnetdude.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nzdotnetdude.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nzdotnetdude.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nzdotnetdude.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nzdotnetdude.wordpress.com&blog=361181&post=18&subd=nzdotnetdude&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://nzdotnetdude.wordpress.com/2007/06/02/more-orcas-stuff/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9648ab3f31d45b5252e27fedea55120f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mark</media:title>
		</media:content>
	</item>
	</channel>
</rss>