What build tool do you use? And TFS Vs. Open Source Round 3

Ah, Oren. You amuse me yet again, you OSS guru you ;) (he replied about my earlier post regarding using TFS Vs. Open source tools)

(No I don't have shares in Microsoft)

(I also do consulting on TFS)

(I also do Consulting for Configuration management using open source and commercial tools, many times connecting tools from both worlds together)

Oren:

"Let me put it in the simplest terms that I can, TFS puts me out of the zone. That is simply unacceptable, period. If I need to be aware of "Don't go near the Team Explorer Tab, it will hung VS for 5 seconds", I am not in the zone. If I am not in the zone, I rarely get to code well"

Aha, my dear colleague. Yet you continue to use Visual Studio .NET, which, even without team system, has it's share of usability problems for you, I'm Sure. Why not use notepad or eclipse for writing the code, then running a command line to compile it, then use an XML Editor to change the config files? Why are you using a suite of integrated tools to develop code, in an environment which you probably aren't that crazy over?

Seeing the bigger picture perhaps? There is some value to it after all.

And don't get me started on the "zone" thing. You develop on a windows machine, right? your "zone" gets disrupted a million times a day by tiny little operating system mishaps, dialogs, crashes and what not, yet you continue to use it and not another operating system. I guess sometimes you compromise to get what you need.

And how about working with people? People sometimes take me out of the "zone", and cellphones too. Gosh, I should just program in a cave with a rock and a wall in front of me. Oh, wait, there are advantages to doing the opposite.

Resharper has it's slow moments inside VS.NET. It sometimes makes you aware that it is working. Yet I still use it. Sum is great than thee parts etc..

Oren said:

"And it is another story yet again when to say, "I know a different solution, which can give me all that I need/want, so I don't have to deal with those shortcoming." The bigger picture as I see it is that I get everything that I want, and don't have to waste my time on patching holes in the tools that I use. Tools should be transperant, not road blocks"

I'm wondering if the word "I" is to blame here. Yes, for you you get all that you want, while still paying the price of configuration, forking, patching, learning curve etc. What about "us"? Would it be just as easy for an entire team or an full dev group to do such a move? Assuming that this magical suite of OSS tools that provide exactly what you could get in TFS exists (yes, I'm sure you can make it happen, Oren), what is the cost of:

  • Learning that you can actually do something like this without having an OSS guru in the house? (Solution Discoverability)
  • Writing the documentation of how you did it and keeping it all as one big happy maintainable system?

Again,  not for you personally, but for an organization?

My main point is that, yes, both systems, the closed one and the open one, need care and attention. At the end of the day, it is the system that can last longer in the real world, which is discoverable, supported and more usable, that will gain more popularity. That's the same percentage you see with Windows and Linux adoption,  That's the reason Mock Object frameworks are still considered somewhat of a "black magic" for lots of people still. that's why Castle and Active Record are still now as well known as the documented and commercial ORM tools out there (and they are considered to be top notch when it comes to documentation)

TFS may not be your thing, but it sure as hell saves lots of time for lots of people who learn to work with what they have and optimize it, extend it, and not go and work on something that may be the "perfect" thing for them, but less perfect for other people. If you plan on saying "just say no" you should at least know that people might find out that what they turned down actually has more value than the little things that annoy you.

When you aim wide, you have to aim a little lower. I think that's just the way it is. Smaller or one men shops may find it easier to use open source tools. larger ones usually still aim for something with a little more support. (Linux is not an example because it has also turned into a money-making model and so gets support, updates, documentation, consulting etc..)

I'm not ashamed to say that I've used VSS and still use it today in some cases, along with svn, and I still find VSS' experience to be better in terms of usability .Yeah, it's kind of a crappy product in many ways, but the bar is so low it's just easy to work with and integrated everywhere (yes, so does svn... I know I know)

So, am I a heretic who should be shot because I tend to flow into the path of least resistance? You are doing the same thing, only you are looking at a different kind of resistance. Adoption resistance is just as important.

 

( I may sound a bit harsh, but this is all in a good mood. I respect and like Oren very much, and much beer will be had together at DevTeach next month!)

Published Sunday, April 29, 2007 5:34 PM by RoyOsherove

Comments

Sunday, April 29, 2007 10:01 PM by Low Country Software Ramblings » Around the Net #31

# Low Country Software Ramblings » Around the Net #31

Sunday, April 29, 2007 11:10 PM by The Other Steve

# re: What build tool do you use? And TFS Vs. Open Source Round 3

I think TFS is still immature.  We knew it would be when it was first released.  It's a 1.0 product release.  The only reason it's even being somewhat considered by enterprises is because of bundling in combination with MSDN, it works out to be cheaper per desktop install than most of the big competition.  (MKS, Merant, Rational, Borland, etc.)

The problem is, it's not a leap forward over competition.  It's dragging behind in many ways.

What would make it compelling is if it did something dramatically different or better.  Not just integration.  The other commercial products are also nicely integrated, even nicer in some cases.  I'm talking working better with disconnected developers, maintaining synchronized repositories in multiple physical locations, etc.  These are the problems that everybody else is working on solving.  Microsoft is still just working on making their product function in the simplest manner.

This is what makes the comparison to Open Source possible.  Because OSS solutions at their heart, only do the barest minimum, but they generally do it well, even if it's not documented.  Microsoft has to innovate in this space to gain respect.

Just my opinion.

Monday, April 30, 2007 7:04 AM by Michael Dorfman

# re: What build tool do you use? And TFS Vs. Open Source Round 3

I assume you've already seen Sam Gentile's comments on this thread:(http://codebetter.com/blogs/sam.gentile/archive/2007/04/29/getting-annoyed-at-agile-correctness.aspx)

Personally, I think that framing it as "TFS vs OSS" misses the point-- the real question is, as others have pointed out, "One integrated toolset" vs "roll-your-own integration with independent tools."  I'm interested in this particular case, because I have so far been pursuing the "roll your own" path while keeping an eye on the "one integrated system" path as a future goal.

At the moment, we're using Vault + FogBugz + FinalBuilder + mbUnit + TypeMock.NET + TestDriven.NET + CruiseControl.Net as a toolset, and we've got the basic integrations between them.  

My question is: what additional value would I get out of the TFS over and above what I have today?

I'm certainly willing to live with some "1.0" pain, if the reward is there.  So: what are the "killer app" integrations to knock me off the fence?

Monday, April 30, 2007 8:26 AM by Gunnlaugur Thor Briem

# re: What build tool do you use? And TFS Vs. Open Source Round 3

Wait, wait ... you find ... VSS' usability to be better than that of Subversion?

Do you know of any other people with this affliction?

Which Subversion *client* did you try? Telepathy 0.6a?

In any case you lost me with that. Your ideas of usability must be on a different planet. Maybe that's lucky for you; ours is overpopulated.

Over here, Subversion and Trac were *dead easy* to set up and integrate, including scheduled backups (took literally minutes) and migration with history from VSS (took a bit longer, but have you tried the same from VSS to TFS?). And they performed just fine --- on a VMware virtual machine with SAN disks.

We have TFS on serious hardware, serving no more than 40-50 users with a repository of 4,7 GB. My Visual Studio takes 38 seconds --- blocking the entire UI --- to rename a file. That's even at night when I'm alone in the office. 38 seconds means kiss your flow goodbye.

Monday, April 30, 2007 1:33 PM by Adi

# re: What build tool do you use? And TFS Vs. Open Source Round 3

Monday, April 30, 2007 1:36 PM by Adi

# re: What build tool do you use? And TFS Vs. Open Source Round 3

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

# re: What build tool do you use? And TFS Vs. Open Source Round 3

Gunnlaugur,

It shouldn't take that long. Even on mine, which is running on a VPC with maybe 512 of RAM, it took under 10 seconds.

I'd put a sniffer on to see where the bottleneck is coming from. Maybe grab some Perfmon data from your server - maybe you are running into hotspots on your SAN or something similar.

Feel free to contact me offline at foyc at cornet design dot com and I'll be happy to work with you to see if we can track down the slowness.

Although I agree with your SVN comments - I really enjoyed working with it on the projects we used it for. I especially enjoyed how easy it was to add pre and post hooks to the check-in process.