<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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: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>Comments on: Dear TFS</title>
	<atom:link href="http://caseywatson.wordpress.com/2009/02/22/dear-tfs/feed/" rel="self" type="application/rss+xml" />
	<link>http://caseywatson.wordpress.com/2009/02/22/dear-tfs/</link>
	<description>keepin' it real... real simple.</description>
	<lastBuildDate>Mon, 23 Feb 2009 16:57:34 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Casey Watson</title>
		<link>http://caseywatson.wordpress.com/2009/02/22/dear-tfs/#comment-25</link>
		<dc:creator><![CDATA[Casey Watson]]></dc:creator>
		<pubDate>Mon, 23 Feb 2009 16:57:34 +0000</pubDate>
		<guid isPermaLink="false">http://caseywatson.wordpress.com/?p=124#comment-25</guid>
		<description><![CDATA[Sounds like I may have opened the floodgates.]]></description>
		<content:encoded><![CDATA[<p>Sounds like I may have opened the floodgates.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sdfsda</title>
		<link>http://caseywatson.wordpress.com/2009/02/22/dear-tfs/#comment-24</link>
		<dc:creator><![CDATA[sdfsda]]></dc:creator>
		<pubDate>Mon, 23 Feb 2009 16:40:27 +0000</pubDate>
		<guid isPermaLink="false">http://caseywatson.wordpress.com/?p=124#comment-24</guid>
		<description><![CDATA[Thanks for the Post Casey.  I&#039;m new to TFS, having used Subversion on my last project and Source Safe before that.  Subversion was a god-send from a developer&#039;s perspective.  We also used Rational for admin stuff.  I was stuck about 6 months ago in an admin role for a TFS implementation for a medium-sized group (? - about 50 separate applications, about 100 regular developers/admin and maybe another 100 lookers-on).  Since then my overall impression is that TFS is better than Source Safe, but not as good as a Subversion/NUnit/TeamCity combo and TFS’s Admin/CM side is better than nothing but not as good as Rational.  You get a comprehensive suite for CM and SC/Builds/Test, but in return for getting one suite, you lose the best of those separate tools.  I&#039;m not convinced that the sacrifice has been worth it.  

Robert - thanks for bringing up the issue of integration.  This is actually the real sore point for my customers.  TFS was chosen not to satisfy Developer concerns, but for the Admin/CM folks.  They wanted it because it was a “one-tool” fix for their previous setup.  This particular contract has been running for upwards of 15 years with largely the same group of folks, using separate tools for their needs:  Dimensions/Rational for CM, custom test/build scripts and NUnit for testing/building, and Source Safe for SC, along with a few other tools customized for Requirements, risk assessment and other Admin activities.   They put in a lot of effort to integrate all these, the focus being reports for the end customer.  So by the sales material, this was a prime group for a TFS “upgrade”.   The experience has so far been so-so.  So let me give you a brief rundown on the major issues.

Developers:  
The developers here are like most, they don’t really care what you give them to work with, they figure it out since they are really only concerned to get the coding done and pass testing.  The things that Casey focused on are right on the mark with our experience here.  However, there are some other problems.  Most of the applications being worked are legacy apps built in VS 2003/.Net 1.1 and VB6/ASP 3.0.  Despite implementing the MSSCCI provider, etc. TFS 2008 just does not play well with the legacy apps.  For instance, if you have a Web App in 2003, the default behavior upon a check-out/get-latest is to place the web project automatically in the Inetpub path, while other non-web projects are placed in your designated Workspace path.  We found this out accidentally.  This is partly a problem since if there are multiple branches for different phases of work then we can’t very well have the same Inetpub path and root name; and since the product delivered to testing must have the correct paths/naming then we can’t just make different copies under different virtual directories, etc.  There’s been a lot of heartache in figuring out how to successfully do work, and there turns out to be lots of different work-arounds that developers have come up with.  Other problems involve the Workspaces – it’s a great idea, but all of us here have come to the conclusion that the best policy is to have one workspace at the TFS root level, and let it mirror the Server’s Project setup.  All that stuff in the MS sales/training materials about doing fancy things with Workspaces has been largely thrown out.  Another big heartburn is Merging/Branching and the lack of a roll-back (I know this is coming in 2010).

CM/Admin Issues:  
Part of the problem here has been the local implementation of TFS.  TFS was sold to my customer as a comprehensive suite but the expectations were not handled well.  Granted, the previous suite of tools and procedures took 15 years to customize and tweak, but still, expectations are key here – not just how my company sold TFS, but how TFS sells itself.  Problems here focus mostly on prep work – my customer was ill informed and not prepared for the amount of work required before live data was actually entered.  For instance, having properly nailed down Work Item template definitions was not properly sold to them.  As a result, we’ve been making up the Work Items as we go along, and once data is present, the work required to radically update a WIT goes up 3 or 4 fold.  Migration of data has proved problematic as well, most of it requiring custom code since the Excel option has a number of issues (cannot automatically port over links/attachments; it’s a RAM hog; can only do one Project at a time, etc.).  Basically, they thought that once the TFS server was set up and permissions implemented, then it would be a cinch to start using, not that it would take several weeks of prep work.  The OOTB implementation is what was sold, but this just does not cut it.  Customization is really the catch word for all of TFS.   My customer and I have had to get used to the fact that when they want TFS to do something that their old tools used to do, the answer invariably is “yes, but that requires a customization”, and this usually requires custom coding, and since half the users use Web Access, it often requires one for Windows and one for ASP.

As to Integration, from my experience so far, TFS is only NOMINALLY integrated.   It’s not one tool that accomplishes all the roles of a SDLC, it’s actually 4 different tools jerry-rigged together:  1) the VSTS IDE and TFS Team Explorer or Web Access for communication (with minor annoying functionality differences, btw), 2) a SQL OLTP for Source Control and WI data entry, 3) OLAP and SSRS for Reporting, and 4) WSS and a Share Point site (two of them counting Web Access) for Document handling (anything else?).  What we’ve been finding is that our actual experience suggests that TFS should thus have its work split up – a SQL DBA is needed to handle various SQL issues, permissions, server deployment, etc.;  an SSBI specialist is needed to make reports since MDX and OLAP are supposed to be used (MS has explicitly said not to base reports on the OLTP as this is guaranteed to change);  a Share Point/Web Parts person to handle customizations here;  and a normal Developer to handle all the customizations required to get TFS workable for special needs.   In addition, since the Work Item Template definitions are just XML files and tedious to make/update, CM folks would be best to take charge of these.  In fact, my CM customer here has requested I train them on this, since the work they would do is not that much different than what they used to do to with Rational.  Considering all this, the question presents itself – DOES THIS REALLY REPRESENT INTEGRATION?

Another major issue is how to handle Document versioning and WI/SC integration – we have still yet to tackle this problem, and this is major considering the documentation needs this contract has.  There are 4 (FOUR!) different ways to handle documents in the TFS suite, each involving a different DB storage and set of functionalities – 1) As a versioned item, subject to collocation with development files and partaking in Checking Out/In and Branching/Merging, but this is only in binary and hence can’t be used for comparisons, etc.; 2) as a file attachment to a Work Item that is stored as a part of the Work Item’s metadata (again binary); 3) in the Share Point portion of TFS, allowing for versioning, but then documents can’t be linked with individual Applications/WorkItems let alone Branches/Releases; 4) or you can use the Web Access version – this is also Share Point, but uses a different source DB than the default Project Portal.  This is a major hole for my customer, because with their previous admin setup they were able to easily tie in Document Versioning with specific Releases and even Branches, etc.  So far, we have not figured out how to do this with TFS. 

UI issues &amp; Customization:  One really big issue is the primitive nature of the Work Item controls.   This is particularly galling given that in the Reports the same type of controls (drop-downs, labels, etc.) are fairly up-to-date, so you get to have good filtering controls for reports, but not for actually data entry.  For instance, the WIT combobox control does not have the standard hidden field that has become normal for Windows and Web applications – as a result, things like sorting, or having an ID column separate from the display column require customization or in some cases have to be dispensed with.  I think my customer had a reasonable expectation that this would be standard for TFS WIT controls as well.  Other things, like the lack of a multiple check box combo also require customization, even though on the Reporting side, this kind of control is standard – at the very least the customer is frustrated by the ability to custom filter, but not to add data in a like manner.  Another thing that we can’t use is the HTML field type – I have figured out a fix for Reports, but the query results grid does not properly encoded the HTML mark up in an HTML field type, so in queries (which are used much more than Reports) any such field has the markup showing literally.  As a result, we’ve had to go through all the WIT’s and remove this field type and replace it with PlainText.  I have a lot more, about 2 pages work of such bugs. 

Some other minor holes – 1)  The Email notification uses the Display Name from the AD for fields like AssignedTo, and while the ChangerID uses the unique SID, the Display Name has the potential to be repeated – we’ve actually had such a case, and it was quite a bit of work to make sure the right person got the email – this is again related to the poor quality of the Work Item controls – a combobox with a standard hidden identity field containing the SID would fix the problem; 2) We’ve found that we can’t use the Automatic Work Item State transition change on Check in – you can only really have one transition defined on a checkin in the Work Item flow, and the work flows for my customer are highly customized and so we have to remove any checkin rules for state changes.  3) My customer and their customer have their own Work Item ID formats and their own numbering system that they need to carry over from their previous databases.  We have successfully worked around this and they can have their own non-TFS ID formats with auto numbering, but the problem remains that we cannot integrate this number into things like Work Item linking, finding WI’s to associate to on Checkin, showing these custom IDs in Emails, etc.  So there is a limit to how the customizations can be used to override things they don’t want to see.  They’re getting used to it, but they still don’t like it.

Anyway, thanks for providing a platform to rant a bit about some of the frustrations I’ve found working with TFS.]]></description>
		<content:encoded><![CDATA[<p>Thanks for the Post Casey.  I&#8217;m new to TFS, having used Subversion on my last project and Source Safe before that.  Subversion was a god-send from a developer&#8217;s perspective.  We also used Rational for admin stuff.  I was stuck about 6 months ago in an admin role for a TFS implementation for a medium-sized group (? &#8211; about 50 separate applications, about 100 regular developers/admin and maybe another 100 lookers-on).  Since then my overall impression is that TFS is better than Source Safe, but not as good as a Subversion/NUnit/TeamCity combo and TFS’s Admin/CM side is better than nothing but not as good as Rational.  You get a comprehensive suite for CM and SC/Builds/Test, but in return for getting one suite, you lose the best of those separate tools.  I&#8217;m not convinced that the sacrifice has been worth it.  </p>
<p>Robert &#8211; thanks for bringing up the issue of integration.  This is actually the real sore point for my customers.  TFS was chosen not to satisfy Developer concerns, but for the Admin/CM folks.  They wanted it because it was a “one-tool” fix for their previous setup.  This particular contract has been running for upwards of 15 years with largely the same group of folks, using separate tools for their needs:  Dimensions/Rational for CM, custom test/build scripts and NUnit for testing/building, and Source Safe for SC, along with a few other tools customized for Requirements, risk assessment and other Admin activities.   They put in a lot of effort to integrate all these, the focus being reports for the end customer.  So by the sales material, this was a prime group for a TFS “upgrade”.   The experience has so far been so-so.  So let me give you a brief rundown on the major issues.</p>
<p>Developers:<br />
The developers here are like most, they don’t really care what you give them to work with, they figure it out since they are really only concerned to get the coding done and pass testing.  The things that Casey focused on are right on the mark with our experience here.  However, there are some other problems.  Most of the applications being worked are legacy apps built in VS 2003/.Net 1.1 and VB6/ASP 3.0.  Despite implementing the MSSCCI provider, etc. TFS 2008 just does not play well with the legacy apps.  For instance, if you have a Web App in 2003, the default behavior upon a check-out/get-latest is to place the web project automatically in the Inetpub path, while other non-web projects are placed in your designated Workspace path.  We found this out accidentally.  This is partly a problem since if there are multiple branches for different phases of work then we can’t very well have the same Inetpub path and root name; and since the product delivered to testing must have the correct paths/naming then we can’t just make different copies under different virtual directories, etc.  There’s been a lot of heartache in figuring out how to successfully do work, and there turns out to be lots of different work-arounds that developers have come up with.  Other problems involve the Workspaces – it’s a great idea, but all of us here have come to the conclusion that the best policy is to have one workspace at the TFS root level, and let it mirror the Server’s Project setup.  All that stuff in the MS sales/training materials about doing fancy things with Workspaces has been largely thrown out.  Another big heartburn is Merging/Branching and the lack of a roll-back (I know this is coming in 2010).</p>
<p>CM/Admin Issues:<br />
Part of the problem here has been the local implementation of TFS.  TFS was sold to my customer as a comprehensive suite but the expectations were not handled well.  Granted, the previous suite of tools and procedures took 15 years to customize and tweak, but still, expectations are key here – not just how my company sold TFS, but how TFS sells itself.  Problems here focus mostly on prep work – my customer was ill informed and not prepared for the amount of work required before live data was actually entered.  For instance, having properly nailed down Work Item template definitions was not properly sold to them.  As a result, we’ve been making up the Work Items as we go along, and once data is present, the work required to radically update a WIT goes up 3 or 4 fold.  Migration of data has proved problematic as well, most of it requiring custom code since the Excel option has a number of issues (cannot automatically port over links/attachments; it’s a RAM hog; can only do one Project at a time, etc.).  Basically, they thought that once the TFS server was set up and permissions implemented, then it would be a cinch to start using, not that it would take several weeks of prep work.  The OOTB implementation is what was sold, but this just does not cut it.  Customization is really the catch word for all of TFS.   My customer and I have had to get used to the fact that when they want TFS to do something that their old tools used to do, the answer invariably is “yes, but that requires a customization”, and this usually requires custom coding, and since half the users use Web Access, it often requires one for Windows and one for ASP.</p>
<p>As to Integration, from my experience so far, TFS is only NOMINALLY integrated.   It’s not one tool that accomplishes all the roles of a SDLC, it’s actually 4 different tools jerry-rigged together:  1) the VSTS IDE and TFS Team Explorer or Web Access for communication (with minor annoying functionality differences, btw), 2) a SQL OLTP for Source Control and WI data entry, 3) OLAP and SSRS for Reporting, and 4) WSS and a Share Point site (two of them counting Web Access) for Document handling (anything else?).  What we’ve been finding is that our actual experience suggests that TFS should thus have its work split up – a SQL DBA is needed to handle various SQL issues, permissions, server deployment, etc.;  an SSBI specialist is needed to make reports since MDX and OLAP are supposed to be used (MS has explicitly said not to base reports on the OLTP as this is guaranteed to change);  a Share Point/Web Parts person to handle customizations here;  and a normal Developer to handle all the customizations required to get TFS workable for special needs.   In addition, since the Work Item Template definitions are just XML files and tedious to make/update, CM folks would be best to take charge of these.  In fact, my CM customer here has requested I train them on this, since the work they would do is not that much different than what they used to do to with Rational.  Considering all this, the question presents itself – DOES THIS REALLY REPRESENT INTEGRATION?</p>
<p>Another major issue is how to handle Document versioning and WI/SC integration – we have still yet to tackle this problem, and this is major considering the documentation needs this contract has.  There are 4 (FOUR!) different ways to handle documents in the TFS suite, each involving a different DB storage and set of functionalities – 1) As a versioned item, subject to collocation with development files and partaking in Checking Out/In and Branching/Merging, but this is only in binary and hence can’t be used for comparisons, etc.; 2) as a file attachment to a Work Item that is stored as a part of the Work Item’s metadata (again binary); 3) in the Share Point portion of TFS, allowing for versioning, but then documents can’t be linked with individual Applications/WorkItems let alone Branches/Releases; 4) or you can use the Web Access version – this is also Share Point, but uses a different source DB than the default Project Portal.  This is a major hole for my customer, because with their previous admin setup they were able to easily tie in Document Versioning with specific Releases and even Branches, etc.  So far, we have not figured out how to do this with TFS. </p>
<p>UI issues &amp; Customization:  One really big issue is the primitive nature of the Work Item controls.   This is particularly galling given that in the Reports the same type of controls (drop-downs, labels, etc.) are fairly up-to-date, so you get to have good filtering controls for reports, but not for actually data entry.  For instance, the WIT combobox control does not have the standard hidden field that has become normal for Windows and Web applications – as a result, things like sorting, or having an ID column separate from the display column require customization or in some cases have to be dispensed with.  I think my customer had a reasonable expectation that this would be standard for TFS WIT controls as well.  Other things, like the lack of a multiple check box combo also require customization, even though on the Reporting side, this kind of control is standard – at the very least the customer is frustrated by the ability to custom filter, but not to add data in a like manner.  Another thing that we can’t use is the HTML field type – I have figured out a fix for Reports, but the query results grid does not properly encoded the HTML mark up in an HTML field type, so in queries (which are used much more than Reports) any such field has the markup showing literally.  As a result, we’ve had to go through all the WIT’s and remove this field type and replace it with PlainText.  I have a lot more, about 2 pages work of such bugs. </p>
<p>Some other minor holes – 1)  The Email notification uses the Display Name from the AD for fields like AssignedTo, and while the ChangerID uses the unique SID, the Display Name has the potential to be repeated – we’ve actually had such a case, and it was quite a bit of work to make sure the right person got the email – this is again related to the poor quality of the Work Item controls – a combobox with a standard hidden identity field containing the SID would fix the problem; 2) We’ve found that we can’t use the Automatic Work Item State transition change on Check in – you can only really have one transition defined on a checkin in the Work Item flow, and the work flows for my customer are highly customized and so we have to remove any checkin rules for state changes.  3) My customer and their customer have their own Work Item ID formats and their own numbering system that they need to carry over from their previous databases.  We have successfully worked around this and they can have their own non-TFS ID formats with auto numbering, but the problem remains that we cannot integrate this number into things like Work Item linking, finding WI’s to associate to on Checkin, showing these custom IDs in Emails, etc.  So there is a limit to how the customizations can be used to override things they don’t want to see.  They’re getting used to it, but they still don’t like it.</p>
<p>Anyway, thanks for providing a platform to rant a bit about some of the frustrations I’ve found working with TFS.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mattflo</title>
		<link>http://caseywatson.wordpress.com/2009/02/22/dear-tfs/#comment-23</link>
		<dc:creator><![CDATA[mattflo]]></dc:creator>
		<pubDate>Mon, 23 Feb 2009 15:45:33 +0000</pubDate>
		<guid isPermaLink="false">http://caseywatson.wordpress.com/?p=124#comment-23</guid>
		<description><![CDATA[Wow. Thank you for airing your dirty laundry for my Monday morning amusement.]]></description>
		<content:encoded><![CDATA[<p>Wow. Thank you for airing your dirty laundry for my Monday morning amusement.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: VSTS Links - 02/23/2009 - Team System News - Team System Rocks</title>
		<link>http://caseywatson.wordpress.com/2009/02/22/dear-tfs/#comment-22</link>
		<dc:creator><![CDATA[VSTS Links - 02/23/2009 - Team System News - Team System Rocks]]></dc:creator>
		<pubDate>Mon, 23 Feb 2009 13:29:36 +0000</pubDate>
		<guid isPermaLink="false">http://caseywatson.wordpress.com/?p=124#comment-22</guid>
		<description><![CDATA[[...] Casey Watson on Dear TFS (a breakup letter) [...]]]></description>
		<content:encoded><![CDATA[<p>[...] Casey Watson on Dear TFS (a breakup letter) [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scotch Drinker</title>
		<link>http://caseywatson.wordpress.com/2009/02/22/dear-tfs/#comment-21</link>
		<dc:creator><![CDATA[Scotch Drinker]]></dc:creator>
		<pubDate>Mon, 23 Feb 2009 04:10:40 +0000</pubDate>
		<guid isPermaLink="false">http://caseywatson.wordpress.com/?p=124#comment-21</guid>
		<description><![CDATA[Dear TFS,

I&#039;m not usually one to get in the middle of a fantastic breakup, but sometimes, you just gotta get involved.  

You definitely are deeper than other source control systems I&#039;ve known.  If by deeper you mean overly controlling, nagging, and micro-managing.  Problem is, I&#039;ve got a wife for that.  Oh, and an IDE.  All I want from you is 1 thing.  That&#039;s what I pay you the big bucks for.

While we&#039;re talking about nagging, don&#039;t go blaming your mother-in-law for your crap.  I want my source control to be practically invisible.  If I wanted bondage, I&#039;d talk to Rational.  And you, sir, are no Rational.

Funny that you talk about a non-existent user interface, TFS.  You look like you put your makeup on as a passenger at a Monster Truck Rally.  If I wanted pretty, I&#039;d talk to Perforce.  And you, sir, are no Perforce.

Subversion isn&#039;t the type of source control to go down on guys like me, I&#039;ve got memories of Visual SourceSafe for that.  Isn&#039;t that your cousin?  Or is it wife?  Hell it could be both, it&#039;s all pretty incestuous at Redmond.  

Look, I&#039;m just looking for one thing when I take a source control tool out.  I don&#039;t need commitment, love, flowers and romance.  I&#039;m just looking to get down to business.  And frankly, you&#039;re lacking in that department.  All the chitchat and the nagging and the &quot;Did you floss your teeth&quot; crap is too much.

Don&#039;t be mad, baby.  You can&#039;t help it that SourceSafe is your cousin/wife.

Hugs, 
All the Source Control Tools I&#039;ve Loved Before]]></description>
		<content:encoded><![CDATA[<p>Dear TFS,</p>
<p>I&#8217;m not usually one to get in the middle of a fantastic breakup, but sometimes, you just gotta get involved.  </p>
<p>You definitely are deeper than other source control systems I&#8217;ve known.  If by deeper you mean overly controlling, nagging, and micro-managing.  Problem is, I&#8217;ve got a wife for that.  Oh, and an IDE.  All I want from you is 1 thing.  That&#8217;s what I pay you the big bucks for.</p>
<p>While we&#8217;re talking about nagging, don&#8217;t go blaming your mother-in-law for your crap.  I want my source control to be practically invisible.  If I wanted bondage, I&#8217;d talk to Rational.  And you, sir, are no Rational.</p>
<p>Funny that you talk about a non-existent user interface, TFS.  You look like you put your makeup on as a passenger at a Monster Truck Rally.  If I wanted pretty, I&#8217;d talk to Perforce.  And you, sir, are no Perforce.</p>
<p>Subversion isn&#8217;t the type of source control to go down on guys like me, I&#8217;ve got memories of Visual SourceSafe for that.  Isn&#8217;t that your cousin?  Or is it wife?  Hell it could be both, it&#8217;s all pretty incestuous at Redmond.  </p>
<p>Look, I&#8217;m just looking for one thing when I take a source control tool out.  I don&#8217;t need commitment, love, flowers and romance.  I&#8217;m just looking to get down to business.  And frankly, you&#8217;re lacking in that department.  All the chitchat and the nagging and the &#8220;Did you floss your teeth&#8221; crap is too much.</p>
<p>Don&#8217;t be mad, baby.  You can&#8217;t help it that SourceSafe is your cousin/wife.</p>
<p>Hugs,<br />
All the Source Control Tools I&#8217;ve Loved Before</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Casey Watson</title>
		<link>http://caseywatson.wordpress.com/2009/02/22/dear-tfs/#comment-20</link>
		<dc:creator><![CDATA[Casey Watson]]></dc:creator>
		<pubDate>Mon, 23 Feb 2009 01:58:34 +0000</pubDate>
		<guid isPermaLink="false">http://caseywatson.wordpress.com/?p=124#comment-20</guid>
		<description><![CDATA[You know, when I posted this, I really didn&#039;t expect to receive the amount of feedback that I&#039;ve  gotten.  I do, however, really enjoy the feedback.

Maybe in a few years, like 2010, when you (TFS) are a little more mature, we can talk again.  I&#039;m not saying definitely, but maybe.  For now, though, I think it&#039;s on our mutual interests that we part ways.

This is the end for now.  You&#039;re more than welcome to hang out with my friends, but I personally don&#039;t want to see you that often.  I hope you understand.

I may give Subversion a call.  I honestly think that she&#039;s a little more experienced and that you still have some growing up to do.]]></description>
		<content:encoded><![CDATA[<p>You know, when I posted this, I really didn&#8217;t expect to receive the amount of feedback that I&#8217;ve  gotten.  I do, however, really enjoy the feedback.</p>
<p>Maybe in a few years, like 2010, when you (TFS) are a little more mature, we can talk again.  I&#8217;m not saying definitely, but maybe.  For now, though, I think it&#8217;s on our mutual interests that we part ways.</p>
<p>This is the end for now.  You&#8217;re more than welcome to hang out with my friends, but I personally don&#8217;t want to see you that often.  I hope you understand.</p>
<p>I may give Subversion a call.  I honestly think that she&#8217;s a little more experienced and that you still have some growing up to do.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Horvick</title>
		<link>http://caseywatson.wordpress.com/2009/02/22/dear-tfs/#comment-19</link>
		<dc:creator><![CDATA[Robert Horvick]]></dc:creator>
		<pubDate>Mon, 23 Feb 2009 01:01:30 +0000</pubDate>
		<guid isPermaLink="false">http://caseywatson.wordpress.com/?p=124#comment-19</guid>
		<description><![CDATA[Hmm - sorry to post twice but my fat fingers hit tab when they didn&#039;t mean to.

The other issue was not getting what you ask for.  You are right that TFS won&#039;t automatically give you code that it thinks you already have.  I&#039;m not really aware of any systems that work exactly the way it sounds like you want.  No system can do this reliably.  

Say a file TFS thinks you have is missing or edited - but you didn&#039;t use the &quot;delete&quot; or &quot;edit&quot; command to do that - and you ask for it again.  The &quot;right&quot; thing depends on your intent which TFS cannot infer.  

Is over-writing your change right?  Is implying a delete the right thing?  Is pending an edit the right thing?  The TFS workflow is the checkout/commit model.  Subversion uses a different model but has many of the same restrictions.

In the end the safe behavior is to not guess what the user meant when it could result in data lose (say you were working offline and forgot to run &quot;tfpt online&quot; to detect offline changes - running a get should overwrite your changes).

If you have a file you need to get and TFS won&#039;t give it because it thinks you already have it you need to use the /force (/f) parameter to &quot;get&quot; to let TFS know your intent.  If you want it to over-write the file without the resolve dialog you can use the /overwrite (/i) parameter.

Ultimately what&#039;s important is that you are using something for version control.  If it&#039;s not TFS then Subversion is a great choice.  I spend a lot of time hacking Ruby and have really come to appreciate Git as well.

Perhaps in the future you will get another chance to look at TFS and find it more to your liking.

One thing you didn&#039;t cover though is the integration story.  I&#039;m curious if you are just giving up on version control or if you are also giving up on workitem tracking, team build and the integration with reports and SharePoint.

Anyway - all the best with your new relationship.

Robert.]]></description>
		<content:encoded><![CDATA[<p>Hmm &#8211; sorry to post twice but my fat fingers hit tab when they didn&#8217;t mean to.</p>
<p>The other issue was not getting what you ask for.  You are right that TFS won&#8217;t automatically give you code that it thinks you already have.  I&#8217;m not really aware of any systems that work exactly the way it sounds like you want.  No system can do this reliably.  </p>
<p>Say a file TFS thinks you have is missing or edited &#8211; but you didn&#8217;t use the &#8220;delete&#8221; or &#8220;edit&#8221; command to do that &#8211; and you ask for it again.  The &#8220;right&#8221; thing depends on your intent which TFS cannot infer.  </p>
<p>Is over-writing your change right?  Is implying a delete the right thing?  Is pending an edit the right thing?  The TFS workflow is the checkout/commit model.  Subversion uses a different model but has many of the same restrictions.</p>
<p>In the end the safe behavior is to not guess what the user meant when it could result in data lose (say you were working offline and forgot to run &#8220;tfpt online&#8221; to detect offline changes &#8211; running a get should overwrite your changes).</p>
<p>If you have a file you need to get and TFS won&#8217;t give it because it thinks you already have it you need to use the /force (/f) parameter to &#8220;get&#8221; to let TFS know your intent.  If you want it to over-write the file without the resolve dialog you can use the /overwrite (/i) parameter.</p>
<p>Ultimately what&#8217;s important is that you are using something for version control.  If it&#8217;s not TFS then Subversion is a great choice.  I spend a lot of time hacking Ruby and have really come to appreciate Git as well.</p>
<p>Perhaps in the future you will get another chance to look at TFS and find it more to your liking.</p>
<p>One thing you didn&#8217;t cover though is the integration story.  I&#8217;m curious if you are just giving up on version control or if you are also giving up on workitem tracking, team build and the integration with reports and SharePoint.</p>
<p>Anyway &#8211; all the best with your new relationship.</p>
<p>Robert.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Horvick</title>
		<link>http://caseywatson.wordpress.com/2009/02/22/dear-tfs/#comment-18</link>
		<dc:creator><![CDATA[Robert Horvick]]></dc:creator>
		<pubDate>Mon, 23 Feb 2009 00:50:48 +0000</pubDate>
		<guid isPermaLink="false">http://caseywatson.wordpress.com/?p=124#comment-18</guid>
		<description><![CDATA[I normally don&#039;t respond to &quot;TFS breakup&quot; blog posts but I didn&#039;t want the response from &quot;TFS&quot; to be the last word.

First - well written and humorous post.  I think you called out some very real (and very important) issues that people frequently have with TFS (and other version control systems, in fairness).  I hope you will be somewhat happy to know that we have heard this feedback loud and clear and made very real investments in improving these areas in the next release (2010).  Totally doesn&#039;t help you now - I get that.  Sorry.

As far as resolving conflicts go - moving to SVN isn&#039;t going to change that.  If there are conflicting changes you need to resolve them.  It sounds like a part of your process that might be missing is performing a &quot;get&quot; before checking in.  No matter what system you are using your base version at checkin should be the tip (or you risk losing data which would make everyone sad).  When doing a get you can auto-resolve the conflicts and only deal with those thar require manual resolution.

The whole issue about needing a link workitem on checkin - well, TFS was right there.  That is something that your team project admin configured and if you&#039;re not happy with it you can override the checkin policy (and accept whatever the consequences of that are - i.e. hassles from your peers/manager/etc).  Or go complain to your project admin about it.

Personally I&#039;m a big fan of giving people the tools to do the right thing and trusting them to do it.  So let them link bugs and trust they will when it&#039;s appropriate, but don&#039;t create rules that say they have to.  Those rules, as you have pointed out, get in the way of good flow.]]></description>
		<content:encoded><![CDATA[<p>I normally don&#8217;t respond to &#8220;TFS breakup&#8221; blog posts but I didn&#8217;t want the response from &#8220;TFS&#8221; to be the last word.</p>
<p>First &#8211; well written and humorous post.  I think you called out some very real (and very important) issues that people frequently have with TFS (and other version control systems, in fairness).  I hope you will be somewhat happy to know that we have heard this feedback loud and clear and made very real investments in improving these areas in the next release (2010).  Totally doesn&#8217;t help you now &#8211; I get that.  Sorry.</p>
<p>As far as resolving conflicts go &#8211; moving to SVN isn&#8217;t going to change that.  If there are conflicting changes you need to resolve them.  It sounds like a part of your process that might be missing is performing a &#8220;get&#8221; before checking in.  No matter what system you are using your base version at checkin should be the tip (or you risk losing data which would make everyone sad).  When doing a get you can auto-resolve the conflicts and only deal with those thar require manual resolution.</p>
<p>The whole issue about needing a link workitem on checkin &#8211; well, TFS was right there.  That is something that your team project admin configured and if you&#8217;re not happy with it you can override the checkin policy (and accept whatever the consequences of that are &#8211; i.e. hassles from your peers/manager/etc).  Or go complain to your project admin about it.</p>
<p>Personally I&#8217;m a big fan of giving people the tools to do the right thing and trusting them to do it.  So let them link bugs and trust they will when it&#8217;s appropriate, but don&#8217;t create rules that say they have to.  Those rules, as you have pointed out, get in the way of good flow.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: TFS</title>
		<link>http://caseywatson.wordpress.com/2009/02/22/dear-tfs/#comment-17</link>
		<dc:creator><![CDATA[TFS]]></dc:creator>
		<pubDate>Sun, 22 Feb 2009 23:46:15 +0000</pubDate>
		<guid isPermaLink="false">http://caseywatson.wordpress.com/?p=124#comment-17</guid>
		<description><![CDATA[Dear Casey,
   If that&#039;s what you want, then fine.  I mean, it&#039;s not like you ever took the time to appreciate me for who I am.  Sure, I may be a little deeper than some of your other source control systems, but I&#039;m also a lot more flexible.  A real coder would really appreciate that, if you know what I mean.

   As for the nagging... I guess that&#039;s just how my administrators brought me up.  I don&#039;t have to be that way.  I can be different, but they just configured me this way.  If you don&#039;t like it, talk to them.
   
   Well, go on and call SVN.  You always liked them cheap and shallow anyway.  She&#039;s doesn&#039;t even have a real user interface... just an extension of a shell of one.  But whatever...  If that&#039;s what makes you happy.  Just don&#039;t come running back to me begging for the stability of our relationship when she finally goes down on you and it&#039;s, um, not quite what you had envisioned.

Signed, 

TFS]]></description>
		<content:encoded><![CDATA[<p>Dear Casey,<br />
   If that&#8217;s what you want, then fine.  I mean, it&#8217;s not like you ever took the time to appreciate me for who I am.  Sure, I may be a little deeper than some of your other source control systems, but I&#8217;m also a lot more flexible.  A real coder would really appreciate that, if you know what I mean.</p>
<p>   As for the nagging&#8230; I guess that&#8217;s just how my administrators brought me up.  I don&#8217;t have to be that way.  I can be different, but they just configured me this way.  If you don&#8217;t like it, talk to them.</p>
<p>   Well, go on and call SVN.  You always liked them cheap and shallow anyway.  She&#8217;s doesn&#8217;t even have a real user interface&#8230; just an extension of a shell of one.  But whatever&#8230;  If that&#8217;s what makes you happy.  Just don&#8217;t come running back to me begging for the stability of our relationship when she finally goes down on you and it&#8217;s, um, not quite what you had envisioned.</p>
<p>Signed, </p>
<p>TFS</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scotch Drinker</title>
		<link>http://caseywatson.wordpress.com/2009/02/22/dear-tfs/#comment-15</link>
		<dc:creator><![CDATA[Scotch Drinker]]></dc:creator>
		<pubDate>Sun, 22 Feb 2009 13:18:07 +0000</pubDate>
		<guid isPermaLink="false">http://caseywatson.wordpress.com/?p=124#comment-15</guid>
		<description><![CDATA[I totally hooked up with Subversion last week.  If you want, I can get you in touch with her.  She&#039;s actually kind of into that sort of thing.  If you know what I mean.]]></description>
		<content:encoded><![CDATA[<p>I totally hooked up with Subversion last week.  If you want, I can get you in touch with her.  She&#8217;s actually kind of into that sort of thing.  If you know what I mean.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

