TFS or not? Being a perfectionist in a realistic world

Oren pointed out that he would run away from TFS because it’s not a “zero friction tool”.

He does have some valid points, mostly about the length of time some of the source control actions might take, though personally I haven’t found this to be much of a problem. I'd usually say "stay clear of all-or-nothing recommendations" but Oren's is a special case because I know him and respect his opinion on many matters.

However, I think that Oren is making one big mistake: he's throwing the baby out with the bath water. Just because the source control is not as zero-friction as some open source alternatives, does not mean that TFS is not a valuable suite of tools, with more added value than most open source tools that I know of.

  • The ability to associate a work item with a check-in action is very powerful in determining and reporting “delta” between failing builds
  • Builds are also connected to checkin, and build history allows you to ‘drill down” to see all the source differences between the last success build and the current failing one
  • The ability to use “workspaces”, which map current source control into local directories is powerful because it allows you to work concurrently on multiple versions of the same product, and switching between them in a couple of clicks from the IDE
  • Powerful automated reporting
  • Distributed and extensible build capabilities
  • Task and bug management

I mean, Oren, c’mon! You don’t like a part of a part of team system – the source control aspect is not perfect for you, but what alternative do you have for a suite of tools that works together so powerfully?

Also, it’s still a version 1.0 product, and you know that version 3.0 is usually the one to remember, but as a version 1.0 product, and compared to most OSS tools (working together), VSTS gives me something that I find hard to get anywhere else – true collaboration.

There are parts of TFS that I personally still have problems with:

  • The build management and maintenance could be far better. So I turn to 3rd party tools and integrate them in to solve my problem.
  • Unit Testing has some bugs and is generally slower. But it still works just fine and I’d use it in combination with other testing products to get what I need. I’m not even going to discuss how annoyed I am that unit testing is not part of all VS.NET SKUs
  • Lacking ability to do GUI testing. 3rd party tools again.
  • Requirement management solution is not enough for some organizations. Again, 3rd party tools if you need them

None of these means I’m giving up using VSTS when it makes sense, and for many organizations, it makes a lot of sense. Especially compared to what they currently have. Take an organization using ClearCase and have them move to VSTS Source Control, then ask them about zero friction. It’s a matter of perspective.

Giving up a full range of possibilities just because one of them is not perfect is kind of narrow minded – the total is greater than the sum of all of it’s parts in this case. A slower moving source control system is not enough justification for me. Being a perfectionist is problematic when talking about system tools. Realistic is much more likely to solve more problems.

Published Sunday, April 29, 2007 4:02 AM by RoyOsherove

Comments

Sunday, April 29, 2007 9:32 AM by Ayende Rahien

# re: TFS or not? Being a perfectionist is a realistic world

Just to correct, because it is NOT a zero friction tool

Sunday, April 29, 2007 10:01 AM by Gareth

# re: TFS or not? Being a perfectionist is a realistic world

I agree with both of your views! TFS does indeed introduce good management and the ability to report and track changes. However the 1.0 product is incredibly weak when dealing with offline. Which quite frankly (besides being shocking) is a pain for remote workers. It appears that MS approached the process side first and the source control (and offline) was at the end when they had a time crunch. TFS is a nice package that is rolled up, but when coming from a pure source control system that is designed for offline and concurrent edits it  does come across as less than adequate.

The other thing that I'm surprised it doesnt do (and neither do a lot of other tools) is the lack of key words support (aka VSS and other older tools). The MS comment as I recall to this was something like "Seems easy enough to right mouse button **shrug**". Again for offsite users and when code to deployed to a customer site (stored procedures, scripts, etc) you can no longer tell what version they have without having to pull the 'code' in question and compare it.

Hopefully all of these will be covered in 2.0 :-), although I wonder how much the upgrade will be!

Sunday, April 29, 2007 11:08 AM by RoyOsherove

# re: TFS or not? Being a perfectionist in a realistic world

Gareth: Actually, TFS has a very powerful offline solution called a proxy server, which deals exactly with the issues you mention. It's a source control cache that sits at the remote site which makes things much faster (and trasperant of course).

Not sure what you mean by keywords. Can you elaborate?

Roy.

Sunday, April 29, 2007 2:40 PM by Andreas Öhlund

# re: TFS or not? Being a perfectionist in a realistic world

First of all: I'm a huge fan of TFS ( beeing stuck with SourceSafe for years who's not? :) ) and I'm on your side of the case Roy. But I would agree with Gareth that when it comes to offline usage TFS isn't that great. The proxy server works well in a "offshore development office" scenario but is the proxy really an option when it comes to the "bring my laptop and work from home scenario"? I guess that the solution for this is to open up the TFS box for internet access using https. But all the fanatic sysadmin/security guys will definitely make you fight hard for that solution.

But offline usage will probably be better in V3.0...

Gareth is probably talking about the keyword expansion feature that SourceSafe had.

Offline support or not I think that TFS rules, TFS realy takes "Integrated Development Environment" to the next level!!

Sunday, April 29, 2007 3:06 PM by Joshua Flanagan

# re: TFS or not? Being a perfectionist in a realistic world

Roy - can you explain further what you mean about the proxy server being used for offline access (not to be confused with remote access)? Are you suggesting developers install the proxy server software on their machines, and they will have a painless offline experience?

Painless = dont make me dismiss a bunch of dialogs and change my source control bindings every time I want to work with my local code and I am not connected to the network.

Sunday, April 29, 2007 3:08 PM by Ayende Rahien

# re: TFS or not? Being a perfectionist in a realistic world

Roy,

Offline for me means that I can work on it at the coffee shop while waiting for a meeting, not working against yet another server.

Sunday, April 29, 2007 4:42 PM by RoyOsherove

# re: TFS or not? Being a perfectionist in a realistic world

True, the "coffeeshop" scenario is not working amazingly great at the momement. I won't even argue about that...

Sunday, April 29, 2007 8:06 PM by Nick

# re: TFS or not? Being a perfectionist in a realistic world

I totally agree with Oren that TFS has too much "friction" atm - friction on the users (ie painful offline, slow to commit, read-only bits), friction on managers (no good web solution - although this is solved now that MS have TeamPlain), friction on the bank balance (for SMEs the current pricing is too high, although at least this has been fixed for certified MS partners).

That said, IMHO I have to agree that the collaborative aspect of TFS as a whole is second to none.  Although even there it is possible (although painful to set up) to get an equivalent setup using other tools (CC.NET, Nunit, Subversion etc).  Some of these, such as subversion, have better integration for non-Visual studio development which can be particularly important if you are developing using 3rd party addins/tools.

Tuesday, May 01, 2007 7:59 PM by Cory Foy

# re: TFS or not? Being a perfectionist in a realistic world

Unit Testing /is/ going to be in all versions (except Express):

http://www.cornetdesign.com/2007/03/unit-testing-to-move-into-visual-studio.html

Yes, the offline support is awful. It's pretty much non-existant, unless you count unbinding, marking your files as not read-only, rebinding and running a command line as existant. ;)

That said, I work closely with the VSTS team on a daily basis, and they are doing some kick-butt stuff. Like you said, Roy, if this is 1.0, imagine what 3.0 is going to be like (I already can't wait for Orcas and Rosario!)

Wednesday, May 02, 2007 2:12 PM by Cory Foy

# re: TFS or not? Being a perfectionist in a realistic world

Roy,

Just wanted to let you know that I followed up with Oren offline and had some good conversations about his points. It's hard to compare using VS with /any/ integrated source control provider with not using an integrated provider, and I ran into similar issues even using the MSSCCI provider for SVN (which is why we switched to TortoiseSVN at the time).

I posted a reply to his comments with some follow-up notes:

http://www.cornetdesign.com/2007/05/vststfs-performance.html

Saturday, June 02, 2007 5:38 AM by Colin Jack

# re: TFS or not? Being a perfectionist in a realistic world

As you say VSTS is a 1.0 product and as a developer who has been using it for a year I have to say it shows. The worst bit about it is MS don't seem interested in listening to feedback. With an open source product you can normally submit a bug/feature request and get feedback pretty quickly but with Microsoft you get very little. To me thats the most frustrating part, it just doesn't feel like the product is improving. It could be a good product but that won't happen if Microsoft don't start to listen to the developer community more.
Sunday, July 08, 2007 12:59 AM by Ivan Porto Carrero

# Subversion vs Team Foundation

Subversion vs Team Foundation

Sunday, July 08, 2007 2:35 AM by Ivan Porto Carrero

# Subversion vs Team Foundation

Subversion vs Team Foundation

Saturday, September 08, 2007 3:22 AM by Elegant Code » A Positive Team System Rant

# Elegant Code » A Positive Team System Rant

Pingback from  Elegant Code » A Positive Team System Rant

# jeremy burks - stack: A Ruby Build Tool For .Net Development

Pingback from  jeremy burks - stack: A Ruby Build Tool For .Net Development