What Source Control tool do you use? And more on TFS Vs. Open Source tools - ISerializable - Roy Osherove's Blog

What Source Control tool do you use? And more on TFS Vs. Open Source tools

Regarding my last post, Oren (Ayende) points out that regarding TFS's features, he can either find a match for them in open source land, or he doesn't really care about them.

What bugs me is whether, assuming you can find and create such a solution out of a package of open source applications working together that operate with the same level of integration as TFS, can you still handle the things that matter to the organization using your solution:

  • Maintainability: Granted, it's not easy to maintain a TFS installation, but it sure as hell just as hard if not harder to maintain a full range of open source tools, each one from a different publisher, different versions and compatibilities, documentation and support services (if at all).
  • Learning curve: I have no doubt that 9 times out of 10, it is harder to get up to speed on an open source product than a commercial one (there are always exceptions). Double that by the number of different products you are using and see what you get. Usually the documentation is not as good, and the support contract (if exists) is very poor as well. The efforts to maintain the source code and create your own version might actually be higher than what you are trying to save. And no, I don't think it will still be less that the cost of a commercial product (TFS or otherwise)
  • Ease of use: Usually I find that Open source products tend to be less usable than commercial ones. Money does matter. Yes, there are always exceptions. Actually, Eclipse is an IDE I find more usable than VS.NET. But then again, Eclipse's community is funded as far as I know. Money matters.
  • If you found subversion to be working too slow for you, what are the odds you'd go hack the code for yourself to get a better version? then update it with every new drop? what would be the cost of that?

I do realize that many of my points here are actually related to the Open source thing as a whole, but it does matter when the product and solution you are trying to install is to be delivered in an organization with lots of things at stake. I think that even in small groups VSTS can win out over OSS solutions by pure integration, but usability wise it may still be lacking.

There are always workarounds for this kind of thing (like using TestDriven.NET when running tests in VSTS IDE), so what I think I'm saying is, well, don't discount something just because one thing is not perfect. If you do, it (in this case) is purely a matter of individual preference. Just like I hate editing XML files. At an organizational level I do realize that to get the good you sometimes need to get a little bad, and find ways to minimize it.

It's quite easy to say "I'm not using this because of X,Y,Z". It's quite a different story to say "I know it has it's problems, but looking at the bigger picture I owe it to myself to see if I can find a way to work with it despite of the shortcomings"

And no, I don't advise you to drop source control integration, but learn to live with it to accept the other benefits. I agree that taking source control or work items out of the picture it becomes a much less relevant product. that's why I think working with all of them is the only way you will find true value in such a product.

As a pragmatist, I don't necessarily use products just because they are Microsoft oriented. I do believe in the best tool for the job. I have no problem acknowledging TFS's problems as well as its advantages, while still looking at many other tools to see if they fit the job better. I didn't see anything that really comes close, with all the hiccups it does have.

Working with a tool like CI Factory or TFS Integrator is always something I'm looking at because they bring value to places where TFS is lacking. But slamming on a tool just because some parts of it are not the fastest is just wrong. the Source control is still one of the strongest ones I've seen in terms of features. discounting it would mean underestimating a product that actually has much value.

Published Sunday, April 29, 2007 12:26 PM by RoyOsherove

Comments

Sunday, April 29, 2007 12:48 PM by Rachit

# re: What Source Control tool do you use? And more on TFS Vs. Open Source tools

Very well said Roy! I agreed with you on most of the points.

Sunday, April 29, 2007 3:41 PM by Stephen A. Bohlen

# re: What Source Control tool do you use? And more on TFS Vs. Open Source tools

In general this entire issue seems to me like a conceptual re-hash of the age-old 'single swiss-army-knife toolset that tries to be all things to all people' vs. the 'best-of-breed' approach to creating a toolset for yourself.

All the age-old issues come to the fore both in favor of and against the single monolithic solution (pos=high level of integration between the tools, neg=likley not the best available for any ONE thing it does).

And all the same familiar issues are present in re: the 'best-of-breed' tool selection paradigm too (pos=flexibility to pick best tool for the job, neg=steeper learning curve due to dissimilar interfaces, integration challenges vary by tool, etc.)

In some ways, this is the same argument that ensued when MS Office was originally released with what any objective person would have to agree were pretty anemic wordprocessing and spreadsheet apps that paled compared to what WordPerfect and Lotus-123 offered at the time.  But if one attempted to embed a 123 spreadsheet in a WordPerfect document, heaven help you (and I was one brave soul who attempted this under WFW3.11).  And so, until doing such a thing became a more mainstream need, most existing users of WordPerfect and 123 stayed with those solutions until the need to cross-integrate content from one to the next became greater than the need for any one specific function or feature offered by the separate tools.

I think (at least at this point in the VSTS release cycle) any objective person would be similarly hard-pressed to argue that just about any SINGLE tool offered by VSTS is even as good as (never mind better than) what is already available in one or more mature stand-alone tools (either opensource OR commercial 3rd-party).

As someone who came to the development world long before even VS (and thus certainly long before VSTS), I tend to prefer the 'assemble your own tools' approach and accept the 'penalty' of my having to do the integration to get the tools to play nice together so that I can have the freedom of choice in my tools, but I readlily admit that's a personal preference; I have chosen one over the other and have accepted both the positives and the negatives of my choices.

I'm certainly not suggesting that the day won't come when I'll need to somehow accomplish the software-development equivalent of trying to embed a Lotus-123 spreadsheet into my WordPerfect document, but until that day comes (for me) I will remain firmly in my present camp.

If anyone's interested, my toolset largely consists of the following collection of things that likley aren't that different from what others have selected too...

-SourceGear Vault for source control

-NAnt for build control

-NUnit for unit testing

-Rhino Mocks for Mock objects

-NDBUnit for data-dependent unit testing (how else does one test one's DAL?)

-CruiseControl.NET for a CI environment

-NCover for test coverage reports

-NDepend

-NDoc for XML comment -> code doc formats (ok, so I'm giving up on this and moving to SandCastle like everyone else, but I'm NOT happy about it :)

Sunday, April 29, 2007 4:41 PM by Rik Hemsley

# Ramblings

I, too, am absolutely pragmatic when it comes to the tools I use. I'm not drawn to tools because they're open source or closed - the criteria you've given are the ones which everything is judged by, but I think you're showing a little unfair negativity towards (some) open source tools, so I had to leap to their defence.

The open source tools I use for .NET are (at least) Subversion, TortoiseSVN, NUnit and NAnt.

"as hard if not harder to maintain a full range of open source tools"

I haven't tried TFS, but I also don't have a problem maintaining the above tools. I don't mind having to go to separate web sites to download them as this isn't something I do very often. Sometimes I install from copies I already have, as I have no desire to see if there's a newer version.

"documentation"

The documentation for all of the above is decent enough - I certainly haven't had much trouble getting them all working. For NUnit and NAnt, I followed the examples of others, found on websites/blogs, but have had to refer to the NAnt docs a few times to help me sort out building some VB6 code.

Examples of great documentation are the TortoiseSVN integrated help and the Subversion book - which is free in HTML form and you can also buy on paper.

"support services (if at all)"

When I had questions about doing slightly unusual things with Subversion (on the server end), I joined the #svn IRC channel on FreeNode and the helpful people there were glad to answer my questions - or point me to the relevant documentation.

"it is harder to get up to speed on an open source product than a commercial one (there are always exceptions)"

This entirely depends on the product. I haven't noticed either being better in general. I've had very good (TortoiseSVN/ASP.NET) and very bad (Ruby on Rails/MSI) experiences with getting into unfamiliar products.

"Ease of use"

Do you have any examples?

"If you found subversion to be working too slow [...]"

Indeed, if svn had problems, I wouldn't enjoy fixing it (it's not written in VB.NET, C# or Ruby, and I've forgotten everything else ;) but I'm pretty confident that I'd be able to get a fix for any real problem within hours - and for that fix to be in the next release of svn.

If I find a problem in a closed source product, I'm completely at the mercy of the person or group behind it. If they decide my issue is important (and not 'by design') then they might get around to fixing it in several months - or just promise it won't be an issue in the next major release, which might be in a few years.

I know this isn't true for all closed source products, but neither is it necessarily true to say that it's harder to get fixes for open source projects.

Lastly: Some of the closed source development tools I use day-to-day: VS.NET, VisualSVN, ReSharper, NCover, ViEmu.

Sunday, April 29, 2007 4:56 PM by Ayende Rahien

# re: What Source Control tool do you use? And more on TFS Vs. Open Source tools

@Stephan,

The way I understand history, Excel and Word took the market by storm because their competitors were stupid.

Lotus 123 spent a lot of time re-writing their code, and the Word competitors didn't have a Windows version until very late in the game.

Also, can you think about the killer "embed excel in word" feature for TFS?

Monday, April 30, 2007 12:20 PM by Ryan Ternier

# re: What Source Control tool do you use? And more on TFS Vs. Open Source tools

My bosses loved the open source source/control and bug tracking software because everything was displayed in "Table/Spreadsheet" views.

They're all old ENgineers. The developers were cryinging for TFS for months while it was in beta, heck we were even throwing tantrums, and we finally got our way mwhaha.

However, once we got TFS a few of the managers and directors hated it because looking at the Work Items was too hard for them. Until we showed them the Export to Excel... then we had to teach them... ignore that... then we had to write their queries for them.

But, once all that was done, they loved TFS. THere are many featuers of TFS that we can now not live wihout. The main one is the ability to check in code, and have it linked to bugs in the same system.

When MS Excel first came out, it sucked compared to Lotus 123. MS has always used the Speed to Market Strategy for new products. THey got Excel out, and then they improved on it. Eventually, it was better than Lotus 123.

Tuesday, May 01, 2007 11:03 PM by lb

# re: What Source Control tool do you use? And more on TFS Vs. Open Source tools

suprised to see subversion poll so well. i thought of it more as an 'up and comer' than a 'most popular' winner.

Thursday, May 03, 2007 12:15 AM by RandomGuy

# re: What Source Control tool do you use? And more on TFS Vs. Open Source tools

That's because subversion just works.  The thing I don't like with TFS is that I cant use it with my old VS 2003 projects.

Thursday, May 03, 2007 4:28 AM by Damien Guard

# re: What Source Control tool do you use? And more on TFS Vs. Open Source tools

The thing putting me off TFS is the extortionately high pricing.

Team Edition for Software Developers - new installation... $5,469 for first year, $2,229 for subsequent.

Visual Studio Pro Edition is a $799 one-off.

Sure Subversion, AnkhSVN, Trac, NUnit etc. aren't well integrated but over a 3 year period you're paying nearly $10,000 PER DEVELOPER for integration.

Sure there are other benefits for being with the MSDN subscription it comes bundled with but not enough to justify $50,000 over the next 3 years for a small 5-man team.

[)amien

Thursday, May 03, 2007 7:13 AM by Antao

# re: What Source Control tool do you use? And more on TFS Vs. Open Source tools

At our company, we have a full open source pipeline:

- Subversion

- TortoiseSVN

- AnkhSVN

- NAnt

- NDoc

- MbUnit

- Doubler

- NCover

- CruiseControl.NET

- Trac

It took some time to make it all work but we don't regret it. When a bug is found, the fix comes out way faster than with commercial products.

I have nothing against Microsoft. I love .NET and Visual Studio. I just think that open source is ahead of them on other tools...

Wednesday, May 16, 2007 9:13 PM by Dave

# re: What Source Control tool do you use? And more on TFS Vs. Open Source tools

We are caught between a rock and a hard place. We love the idea of TFS, we use Ms products every where else and am sure that the learning curve and features would be all but spot on but the price is exorbitant and that basically excludes it as a solution. It is a shame but it does not fare well for our environment of 4 developers. Something like Subversion seems to cover all bases but the learning curve for our network guys to set it up and for us developers (who currently use an old version of SourceSafe) to get into seems quite steep from where we are standing. The old version of SourceSafe has many, many problems but between price and learning curve, we are unfortunately stuck where we are for the moment.
Friday, June 01, 2007 11:05 AM by Colin Jack

# re: What Source Control tool do you use? And more on TFS Vs. Open Source tools

TFS is very expensive and, in our experience, very buggy. Its also got some fundamental design problems, such as the use of the VSMDI file and the way it treats moving files between projects so I certainly wouldn't be a big fan of it. We also find MS to be very unrepsonsive and many issues that we or other reported in 2005 are still in the SP1, and presumably will still be in Orcas.

# Jay R. Wren - lazy dawg evarlast » Blog Archive » TFS woes

Pingback from  Jay R. Wren - lazy dawg evarlast  » Blog Archive   » TFS woes

# Interesting finding - 04/30/2007 « Breaking the bottleneck…

Pingback from  Interesting finding - 04/30/2007 « Breaking the bottleneck…