(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)
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..
"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!)