My Mistake + Here’s Why I Like Team System

Well, we all make mistakes from time to time and this weekend I made a good one.

I’ve written a few posts lately on why I think small businesses need Team System. This weekend I got a comment from Ben Scheirman on my post about the cost of Team System licensing. Ben’s comment was in favor of using free and open-source options such as Subversion, Basecamp, Fogbugz, Cruise Control, and NUnit instead of Team System. Ben also feels that, in addition to the price, these are superior products to the offering from Microsoft.

So far, it’s pretty non-controversial, right? So where’s my mistake?

Well, I deleted the post. Yup. Deleted it. I responded to Ben privately by email explaining why I’d deleted the post and why I thought he might not be 100% right but the bottom line is that I deleted the post.

That wasn’t my best decision ever but here’s what I was thinking. I make my living by teaching customers how to adopt, use, and customize Visual Studio Team System and my blog posts are a big part of how I advertise. While we’re at it, I might as well say that I also happen to really like the product. (More on that later in this post.) On a blog that I use to sell services related to Visual Studio Team System, I didn’t especially want to plug the competition. Plus, on a post about licensing, I didn’t want to have a long, public argument about Team System vs. Everything Else. In addition to those reasons, having a public argument just isn’t my style – especially an argument where I would have to publicly rebut someone and on a topic where I don’t think there’s necessarily a Single True and Right Answer.

So, I deleted the post. The problem is that doing so slammed the door on the whole debate and made it seem like I might be hiding something or think that Team System couldn’t stand up to criticism. Not the case. I made the wrong choice and it caused a bit of a kerfuffle.

Moving on.

It shouldn’t be a surprise that I’m a fan of Microsoft Visual Studio Team System and Team Foundation Server and I happen to think that it has a lot going for it. I think it’s a great product and that’s why I specialize in it and recommend it to my customers but like a lot of things in technology, it’s Apples vs Oranges. There are trade-offs with each choice but at the end of the day, it’s up to you to decide which one you like and, once you’ve made your decision, the best you can say is that you picked the product that’s right for you.

Going back to Ben’s issues with Team System, my rebuttal to his points mostly revolve around Team System being an integrated solution. Here are Ben’s issues with Team System and my response to each.

Issue #1: Using Git and Subversion for source control introduces “far less friction” when only occasionally connected

Ben suggests that having central commanding server that locks your files is not a good approach for distributed teams. Assuming that you’re completely unproductive and unable to code as soon as you pull your network cable, then yes. That’d be pretty bad. Fortunately, that’s not the case.

The ability to add, edit, and delete files offline (i.e. without a connection to TFS Source Control) was added to VS2005 via the Team Foundation Server Power Tools and is now part of the Team Explorer 2008 default installation. Make your disconnected code changes and when you’re back in the office again, click the “go online” button in Visual Studio and your changes are sync’d back to TFS.

Issue #2: “Most people…don’t like managing work items within Visual Studio” because the user experience is “horrible”

Ben specifically mentions a “dropdown box that is 1600px wide” as being a problem and that the user experience is only slightly better when you’re using Team System Web Access. Well, if you don’t like the interface, you can edit it. The user interface for displaying/editing work items is editable through an HTML-like XML configuration file. If you don’t like how it looks or perhaps the workflow isn’t exactly what you want; hop into the XML and change the layout or maybe change the control that is used to display a data field. If you can’t make it work by tweeking the XML, you can also write your own user controls that can be displayed within your work items.

Team System is extremely customizable. If something isn’t working the way you want, change it.

Another option is to use the integration between TFS Work Items and Excel and Microsoft Project. If I need to create 100 different work items quickly, my choice is probably going to be Excel. Make the data work the way you want -- cut, paste, delete, change values – when you’re done, click publish and your changes get written back in to TFS. (You can do the same kind of thing in Microsoft Project, too.)

If you’re always creating the same kind of work items, check out Work Item Templates in the Power Tools for creating work items from within Visual Studio or, if you want to create Work Items without having to start up a browser or Visual Studio, try out “Work Item Stencils” inside of my tool, Dubbelbock.

Issue #3: Subversion, Git, Basecamp, CruiseControl, NUnit, etc is free

Sure it’s free but you have to install, manage, and maintain n applications and make those applications all work together. It might be possible to make them work together but the point is that they weren’t BORN to work together.

Team System and Team Foundation Server were written together and are engineered to work together. Plus, if you’ve got a problem you can call up Microsoft Support and get answers. You can get answers from the open-source community but if you aren’t paying them for the product, what’s your guarantee that they’ll support you on the schedule that your company needs?

Time is money. Is the money that you save by not buying Team System worth the time might lose supporting the free product? It might be. It might not be. Personally, I don’t think so and, in any case, I think the integration of all of the non-source control features with TFS’s source control repository is worth the cost.

Issue #4: Team System’s Automated Build System doesn’t integrate natively with NUnit

Ben’s right. If you want to run NUnit unit tests from a Team Build, you have to do some customization and probably use a 3rd-party component. But the idea with Team Foundation Server and Team Build is that you’re not going to be using NUnit but instead you’ll be using the unit testing features of Visual Studio (MSTest). Does Cruise Control automatically run MSTest unit tests? My guess is that it’s entirely possible but you have to make it do the work. Not a huge deal but just not available out of the box.

The same goes for running NUnit tests from a Team Build. It’s not that hard. You just have to customize it.

If you choose to use NUnit tests with Team Build, what you’ll miss is the integration between MSTest unit tests, your project plan, your defect information, Team Build, and source control and the business intelligence that is gathered by the tool. (I’ll talk more about that in a moment.)

Issue #5: “MSTest has always lagged behind the other free [unit] testing frameworks”

Ben’s point is why use Visual Studio unit tests (MSTest) when you can use NUnit for free. Well, if you’re using Visual Studio 2008 Professional, you’ve already got unit tests as part of the IDE. So, if you want to run the tests, you just run them out of a dialog within the tool. If you want to set a breakpoint and debug your code while you’re running your tests, start the tests in Debug mode from within Visual Studio.

You can do the exact same thing in NUnit but you’ll need to install some extra stuff in order to get the integration. Not the end of the world but it’s about the native integration.

If you’re using a Team Edition of Visual Studio (Team Suite, Team Test, Team Developer), you also get integrated code coverage and code profiling. Once again, if you want code coverage with NUnit, you can do it but it’s not integrated in to the tool.

If you’ve got Team Suite or Team Test, you also have the ability to write Web Tests against that exercise and validate your web applications. Once you’ve created the Web Tests, you can then turn those in to Load Tests. This is all integrated in to Visual Studio. You can run these tests all together. You can easily run these web and load tests from a Team Build.

Summary: Why is integration important?

What are the key pieces of Team System? On the server side, Team Foundation Server (TFS) gives you source control, work item management for managing your project plan and bugs, automated builds, and reporting. On the client side, you can run and debug a number of types of unit tests directly and natively through the Visual Studio user interface.

All of these pieces of Team System work well together because they’re part of the same product.

There’s also the added benefit of being able to associate your code check-ins with a work item such as a task or a bug. Associating your work items to your check-ins gives you traceability on your project. Want to see all the check-ins that were required to implement a feature? The data’s there. Want to see the bugs that were fixed on a check-in? The data’s there.

Now let’s say that a continuous integration build gets kicked off because of your check-in. TFS will associate all the new check-ins that went in to that build with the instance of the build. Since the check-ins are associated to the build and the check-in is associated to your work items, you can now say what bugs and tasks went in to a build. If the build fails, TFS can assign a Bug to the developer that triggered the failed build. Need to QA a build? As you create bugs, associate them to the build number.

You can associate just about anything in TFS to just about anything else in TFS. These associations then get tracked by TFS and are put into a data warehouse for you. TFS also gives you a number of canned reports so that you can see the status of your project. You can also connect to the data warehouse directly using Excel or write your own reports using SQL Server Reporting Services – this allows you to answer the questions that you have about your project status so that you can know when things are going well – but more importantly – know when things are going off the rails. One of my favorites is the “Quality Indicators” report. This shows you trends in code churn, code coverage, unit test passes/failures all graphed together over time on a per-build basis. Amongst other things, this lets me know how my code coverage numbers are trending and, if they’re going down, I can go talk to my team to find out why they’re going down.

Having all this intelligence about the status of your project is one of the biggest reasons why “Team System helps increase the predictability of success” and you don’t have to cobble a bunch of disparate tools together to make it happen.

-Ben

posted @ Monday, July 27, 2009 2:39 PM

Print

Comments on this entry:

# Big man stands up and takes the heat

Left by Brian at 7/27/2009 2:53 PM
Gravatar
Thanks for posting this. It's great to see your response to Ben's post. Even thought you were within your rights to control posts on your blog, it comes across badly.

In my environment, we lean heavily toward single vendor solutions like TFS for everything, for better and worse.

OTOH, Ben vs. Benjamin, FIGHT FIGHT FIGHT!

# re: My Mistake + Here’s Why I Like Team System

Left by Milan Negovan at 7/27/2009 2:55 PM
Gravatar
Good attempt to divert attention from the real issue, which is ethical, not technical. Credibility to a consultant is far more important that technical prowess.

It's also disappointing that being an MVP you give the (already tarnished) program a bad name.

Care to delete this too?

# re: My Mistake + Here’s Why I Like Team System

Left by Scott White at 7/27/2009 2:58 PM
Gravatar
Props for admitting your mistake.

Here's the problem, when everything is baked to work together, everything fails together. For instance users of VS 2008 using TFS 2005 cannot use build #fail.

Problem is that we know updating developers workstations happens faster than servers in the enterprise. I find too often at work that crap in TFS just breaks, albeit I'm not managing it, I just prefer something lighter and less rigid.

TFS 2005 to 2008 migration is also a pain which is why we are stuck on 2005.

# re: My Mistake + Here’s Why I Like Team System

Left by Roger Pence at 7/27/2009 2:59 PM
Gravatar
It's a good argument (in pure Sybil-like fashion I have an affinity for both sides of the discussion) to have publicly. Coming clean quickly was a superb decision.

# re: My Mistake + Here’s Why I Like Team System

Left by Benjamin Day at 7/27/2009 3:03 PM
Gravatar
Roger, I've gotta say that I never thought it would go anything like this.

Scott, TFS2008 is a lot better. You'll be happier if you upgrade.

-Ben

# re: My Mistake + Here’s Why I Like Team System

Left by Ben Scheirman at 7/27/2009 3:03 PM
Gravatar
Ben, thanks for taking this online. I think a healthy discussion can follow.

#1 - about file locking, yes the offline support is just about the only way I can tolerate file locking. And perhaps I should say "read-only" locks on files. I don't mean disabling Shared Checkouts. That truly is retarded.

Without being offline it will contact the server for every file I modify to check it out to me. What if I use a different program to edit my build script or CSS file? Should I have to explicitly check it out in TFS to edit these? I don't think so. This is friction.

Also a lot of the pain comes from the merging. Branching & Merging are so central concepts, though I frequently find myself in conflicts with parts of code that hasn't changed. TFS's auto-merge (in 2005) didn't seem to work at all for me whereas SVN's did.

Perhaps this is a training issue, but I was able to pick up correct usage of SVN without issues in a few days. I've been using TFS for over a year now and still run into snags like this. I'm trying out git on a side project and I'm finding it to be a very pleasant experience. I will likely continue using it for future projects.

In 2005 there was a bug where I got an entire set of files in a state where I couldn't check in or merge any changes. We had to move the code to a "deleted" branch to be able to continue. I blogged about this and I heard that the bug was fixed in 2008. That's a long way to wait for a bug fix so critical. We lost a LOT of time on this one.

...and support? Who needs it? I have twitter!

Ok, so that was a joke, but all kidding aside I haven't ever called PSS simply because it takes forever. I've been more productive searching online & reaching out to people like you than official support. The online communities for things like SVN and Git are so huge that you generally get help/answers right away.

#2 - Time & money. Yep "free" is a bit of a loaded word. I like the Ballmer quote "Linux is only free if your time is worthless." You do have to learn the thing, and you have to be able to install & maintain it. if we're just talking about SCM, look at git. There's no server to maintain. There's no database. Everyone has the entire history. The revision # is actually a hash of the files, making it a sort of thumbprint. There's instant protection against corruption there.

I'm not git expert, in fact I'm still learning it. But it says a lot when entire communities of developers are moving to Git and comparisons such as http://whygitisbetterthanx.com don't even *mention* TFS.

#3-5 you mention something interesting here: data warehousing & stats.

Most companies I've seen don't do any customization of the Process Template. The reports here are of questionable value (I'm speaking mainly from the MSF for Agile template here). For example the remaining work report. This thing shows "work" as # of work items. What kind of a measure is that? What if you had a 1hr work item and a 500 hour work item?

All in all, when you aren't using *ALL* of TFS the value of an integrated suite is not as valuable IMHO. This is why I prefer the "best tool for the job" approach, and have to consider the costs of learning, maintenance, etc.

All of this stuff is just my experience, and I'm open more than anyone to be "shown the light" but I've asked this so many times I beginning to believe that TFS just isn't the tool for me.

# TFS and the case of the deleted blog post

Left by Team System News at 7/27/2009 3:04 PM
Gravatar
In case you haven’t been following the bruhaha going around the Team System community lately, I wanted

# re: My Mistake + Here’s Why I Like Team System

Left by Joshua Flanagan at 7/27/2009 3:07 PM
Gravatar
So the Team System integration is the big feature. All of the mediocre components work together for a mediocre solution. And when they don't, people hire you. Which I assume happens often enough to keep you employed.
With the open source solutions, you get high quality components that may or may not work together easily. When they don't, people hire someone else to integrate them.
I think the Team System integration is a time and money saving myth.

# re: My Mistake + Here’s Why I Like Team System

Left by Marcia McLean at 7/27/2009 3:07 PM
Gravatar
To Milan: for someone who is just starting out as an independent consultant, you certainly have put yourself out on a limb with that uncalled for comment. And if it was meant to be funny, it failed.

Ben: do you see a place for TFS in a one-developer shop?

# A Deleted Response to a TFS Blog Post : b#

Left by at 7/27/2009 3:10 PM
Gravatar
A Deleted Response to a TFS Blog Post : b#

# re: My Mistake + Here’s Why I Like Team System

Left by Benjamin Day at 7/27/2009 3:12 PM
Gravatar
Marcia, I use TFS for all my projects -- even the stuff where I'm writing a silly little utility just for me. I have an instance of TFS running in a VM almost all the time.

# re: My Mistake + Here’s Why I Like Team System

Left by Benjamin Day at 7/27/2009 3:19 PM
Gravatar
Ben Scheirman: A lot of the stuff you're objecting to with VSTS/TFS is related to the 2005 version of the product. What do you expect? It was version 1 of the product. I ain't gunna lie -- some stuff sucked. TFS2008 is *WORLDS* better. Plus, we're not too far away from the release of Team System 2010 which is going to be huge improvement over TFS2008 and Team System 2008.

But I think you've kinda gotten to one of my key points in this post: it's a matter of preference. You've got to weigh the options and make your choice.

Additionally, if you don't use all the pieces of Team System then of course you're not going to get all the benefits. Until you're running your unit tests with code coverage as part of an automated build and until you're associating checkins to work items, you're not going to really see TFS sing.

You're on target with the Remaining Work Items report. Not super useful if your tasks are all roughly of the same level of effort/time. But it's easy to get at the number of hours remaining in your project or iteration without breaking a sweat.

# re: My Mistake + Here’s Why I Like Team System

Left by Justice~! at 7/27/2009 3:20 PM
Gravatar
This may sound controversial, but I have been using TFS 2008 and I actually quite like it. We've been using NUnit and CC.net/FinalBuilder for those parts but I haven't had an issue with the work items, the merging, working disconnected, etc. etc. etc. I think it is pretty good. I never understood why people dogged it but perhaps a lot of this is from the '05 version?

# re: My Mistake + Here’s Why I Like Team System

Left by Sergio Pereira at 7/27/2009 3:24 PM
Gravatar
I wonder why you don't think TeamCity, NUnit, Unfuddle were born to work together... Do you think the JetBrains guys who designed TeamCity or the ThoughtWorkers that created CC.NET didn't care about making them easy to integrate with SVN, NUnit, NAnt, etc? Play with Unfuddle for 15 minutes and tell me if it was not born to work with CI servers.

# re: My Mistake + Here’s Why I Like Team System

Left by Judah Himango at 7/27/2009 3:28 PM
Gravatar
Small correction: FogBugz is neither free nor open source.

# re: My Mistake + Here’s Why I Like Team System

Left by Benjamin Day at 7/27/2009 3:30 PM
Gravatar
Sergio,

Like I said, it's a matter of preference. I'm not saying that you're wrong to like the products that you've picked -- I just happen to like (and specialize in) Visual Studio Team System. Are you happy? Is your team getting your work done on time and on budget? Then maybe you made the right choice of tooling. But if you ask me for my recommendation, I'm going to say VSTS.

# re: My Mistake + Here’s Why I Like Team System

Left by Louis Salin at 7/27/2009 3:40 PM
Gravatar
We installed TFS 2008 at a previous job and had to call Microsoft for support because the thing simply wouldn't work. They told us we had to install it on its own server! Thank God we weren't counting our pennies! This software is so full of friction that management had to force us to use it.

This is not for small businesses.

# re: My Mistake + Here’s Why I Like Team System

Left by Sergio Pereira at 7/27/2009 3:44 PM
Gravatar
Ben, I'm not disputing you personal preference. I was just commenting on your "Issue #3" where you state "the point is that they weren’t BORN to work together".
For the record I use TFS 2008 at work and if I had gone straight from VSS to TFS I'd say TFS is great. But the reality is that having spent time with CC.NET, TC, SVN, trac, Unfuddle, Assembla, etc, I can only, at most, tolerate TFS 2008. But, as you very well said, it might just be a personal preference issue.

# re: My Mistake + Here’s Why I Like Team System

Left by Scott Bellware at 7/27/2009 3:44 PM
Gravatar
Ben,

Customization is only an appreciable thing when you get paid to do customization.

Those lighter weight tools aren't born to work together because there's no real justification for them to be directly integrated. They're enlisted in a build by support offered by the build script, as is the case with MS Build. This can seem like a selling point in abstract, but there's little actionable value to be derived in practice.

As for MS Build and the host of Microsoft's testing tools, so far they're only been attractive to people who are relatively green in regards to the purpose and practice of testing.

I want the best tools that reflect the state of my art of my practice. None of the tools that have been tightly welded into Microsoft's ALM suite are state of the art. I don't want to couple my pace of improvement to Microsoft's pace of improvement, and this issue is the paramount issue.

Many of us have been working with and teaching customers how to increase the performance of .NET software teams for many more years than TFS has been in existence. TFS is still playing catch up and has embraced the tight coupling that will see to it that it never catches up.

Installation of team tools is a one-time cost. The cost of rolling out the loosely-coupled stack is far lower than rolling out TFS. This is clearly evidenced in the consulting industries that grow up around these kinds of tool suites. On-going operations of these large tools suites is usually more costly than operations of more loosely coupled tools than are free to advance at the pace that human knowledge advances.

I appreciate that you make money doing TFS consulting, and I don't think you should be faulted for that, but I think there's even more value to be had and to be offered by bringing state of the art approaches to team and organizational performance through management and engineering maturity and continuous improvement.

A number of years ago, the community had some great ideas about software development and built some tools to support those ideas. Years later Microsoft tried to copy the tools and has yet to grasp the ideas. I think the tools would make a lot more sense if you were focusing on those ideas, and especially the evolution of those ideas to where we are today; unencumbered to advance our understanding by tools that can't evolve as fast as knowledge and understanding has.

# re: My Mistake + Here’s Why I Like Team System

Left by Demis Bellot at 7/27/2009 3:57 PM
Gravatar
Well you get some internet points for your prompt damage control blog post.

But this still leaves the questions on how much advice you can trust off a man who hides truths on a whim for financial gain. Unfortunately the internet is made up too many people perverting the truth for financial gain, it actually makes the whole industry look bad.

# re: My Mistake + Here’s Why I Like Team System

Left by Benjamin Day at 7/27/2009 4:02 PM
Gravatar
Demis, what can I say? I screwed up. In my defense, I did respond to Ben's comment after I pulled it down. The part that I should have made more clearly in my email to him was that I was interested in having the discussion but was interested in having it privately.

# re: My Mistake + Here’s Why I Like Team System

Left by Chad Myers at 7/27/2009 4:06 PM
Gravatar
Ben Day:

A little advice, consultant to consultant: Don't tie your personal brand to any one particular technology. TFS/VSTS will eventually die out like all technologies and then what will you do?

If you're really a good consultant, you should be seeking the best solution for each customer, not how to shoehorn TFS into every environment.

# re: My Mistake + Here’s Why I Like Team System

Left by Matt Briggs at 7/27/2009 4:20 PM
Gravatar
The discussion everywhere else in the computer science world isnt about incremental improvements to a CVS style SCM, it is whether to go git or hg. The reason is because CVS is crap, and everyone has known that for years now. SVN isn't crap, its just not great. Git is great. And this isn't just some guys opinion, this is what everyone is saying outside of the microsoft world.

What amazes me about the microsoft world is that we aren't looking for whats great, we will sit and twiddle our thumbs until MS realizes they are two generations behind the rest of the world when it comes to fundamental SCM design. They will then release TS 2056 or whatever, and it will introduce "innovative new features" like distributed source control, and the whole community will be all a-twitter about how great DCVS is. Until then, the discussion will be non existent, except for a few people who are considered overly opinionated or just plain mean, because they are pushing the rest of the community to learn things that may or may not become sanctioned by MS in the next few decades.

And seriously, a shop that cares about the metrics that are supplied by TFS is not one that I would ever want to work at. LoC checked in or Tests Run are pointless metrics compared to burndown charts, code reviews, and continuous testing (which doesn't even exist in .net land) in the grand scheme of things.

# re: My Mistake + Here’s Why I Like Team System

Left by pete w at 7/27/2009 4:24 PM
Gravatar
TFS can do some really cool things!

I just havent found a client willing to justify the cost for it yet. Most of the features the TFS offers above the others dont seem to generate much excitement yet. so its been nothing but TeamCity/NANT/SVN systems I've dealt with in the past few years.

Sometimes I feel a little guilty using NANT scripts to glue disjoint systems together, but as long as everyone else is doing it, at least we have support :)

# mookid on code

Left by at 7/27/2009 4:49 PM
Gravatar
mookid on code

# re: My Mistake + Here’s Why I Like Team System

Left by Jordan Nolan at 7/27/2009 4:54 PM
Gravatar
The most distressing thing here for me is that Mr. Scheirman decided to publish a personal and confidential email without first checking with the person who sent it. That's just bad manners.

# re: My Mistake + Here’s Why I Like Team System

Left by Scott Bellware at 7/27/2009 5:20 PM
Gravatar
It's a difficult thing to follow your conscience when it means blowing the whistle on something that you can't abide by. I appreciate the courage that it took for Ben S. to stand for what he believes in.

Our respective definitions of professional are subjective. Our understandings of integrity are as subjective. Staying out of ethical gray areas means being more transparent than is comfortable.

I see Ben S's choice to publish the email anonymously as choosing uncomfortable transparency. I see Ben D's embrace of transparency to take ownership of that email message as inspiring and courageous.

Regardless of how uncomfortable it is to watch these things from the sidelines, and how that discomfort might inspire us to our own ire, the display of courage and integrity on both sides is encouraging and points the way to greater accountability in the Microsoft sphere of influence.

Thanks to both Bens for standing for what you believe in - especially when it would have been infinitely more comfortable to do nothing.

# re: My Mistake + Here’s Why I Like Team System

Left by Mark Hoffman at 7/27/2009 6:19 PM
Gravatar
I started using Git for a personal project and instantly fell in love with it. It stays out of my way and works the way I expect it to. I can't say the same thing for TFS 2008.

If I had known of Git earlier, I never would have purchased TFS 2008. It just doesn't make financial sense for us. For a small shop like ours, TFS was very expensive. Git does everything we need it to and works better (IMHO). Someone would have a heck of time trying to convince me today to shell out thousands of dollars for TFS licenses when Git is readily available.

# re: My Mistake + Here’s Why I Like Team System

Left by Steve at 7/27/2009 8:31 PM
Gravatar
For $40,000 I can afford to spend a few extra days learning how to integrated Bugzilla with SVN.

;)

(FYI they do provide hooks for this capability - easy to customize and integrate)

# re: My Mistake + Here’s Why I Like Team System

Left by Steve at 7/27/2009 8:35 PM
Gravatar
But hey, in all seriousness, I respect that you made this post. I think it says you have good character and are trustworthy

Your response and being transparent helps our community of developers.

# re: My Mistake + Here’s Why I Like Team System

Left by Ivo at 7/28/2009 12:16 AM
Gravatar
use tfs every day at work. It's true it has all together, buy the solutions aren't really good ones. I found myself doing strange workaround for things that should work just fine. Everything in visual studio seems to be heavy. I'm tired of the unit test ide crashing, or when it start working slow, the tfs offline support is bad, it just doesn't work (always, always, always tfs forget to add something). You talk about everything made to be together, I say everything made to work fine first. Then you can think about integration.
I think the problem is TFS wasn't made by the people who needs it. And, correct me if I'm wrong, but it seems like neither you use it, because is impossible that someone who uses it has nothing bad to say about it.
and about the version argument... Years ago, TFS 2005 was horrible and MS (and his mvp's) said it was great too. period.
Your arguments seem to be taken from a PPT about TFS used to sell it.

# re: My Mistake + Here’s Why I Like Team System

Left by Mike Riley at 7/28/2009 4:43 AM
Gravatar
I have to wholeheartedly agree with Milan about the issue presented here being one of ethics. Who wants to hire a consultant that is going to recommend the product that makes them the most money, turning a blind eye to products that may better serve their customers' needs? And although I might see allowing this discussion to continue in public as a form of atonement, realistically this is just a proactive step in preventing Ben S's blog from providing the only context to this situation.

# re: My Mistake + Here’s Why I Like Team System

Left by Carlton Fisk at 7/28/2009 6:14 AM
Gravatar
It really is all about the money, isn't it? As such, I am curious if there is any limit to the depth you will fall to preserve your income stream. Would you consider taking a life? If not, you do, in fact, have a limit. I think you regret getting called out over a completely predictable reaction to a threat to the Almighty Dollar, your deity.

I am honestly wondering if there is anything I can say to you that will be taken as a step towards you regaining integrity. You might be a lost cause. The proof of your lack of integrity will be the length of time this post stays on your board. Remember, there's a direct correlation between how long you can deal with this negative post and how much more it would take for you to kill someone to preserve the money.

You might remove this before it ever sees the light; that's fine. I'll know, and you'll know it existed.

# 

Left by Jason Haley at 7/28/2009 7:42 AM
Gravatar
Interesting Finds: July 28, 2009

# re: My Mistake + Here’s Why I Like Team System

Left by Ooh at 7/28/2009 8:43 AM
Gravatar
Wow, once again the discussion I already had with many people. Yes, SVN is free and works great. Yes, CC.NET too. Yes, FinalBuilder etc...

No doubt there are many tools that are much more specialized and appropriate for specific tasks than TFS is.

In the end the question is: What do you expect from a tool?

For example I've been working for a company where a single snapshot of the repository was >40 GB! Now TFS is built for enterprise usage and I'm very happy that it doesn't use a DVCS for its version control because I wouldn't want to have a repository of TB size on disk (in the enterprise: on every developer's disk!).

At my current employer we still use a combination of open source tools. Well, it works, but it's not really fun. You need to manage all those tools. Take CC.NET: Modifying the build is just plain painful and what you get is an ugly lookin webpage with a simple text log.

So I'm really looking forward to the 2010 release when we'll be switching to TFS. I've been using the 2008 release and it was great - it just works!

Talking about SCM I'd like to mention that many open source/free tools have so called "integrations" into each other. However it's just that they can somehow get information from the other system. For example without writing custom tools we haven't managed to set all bugs with associated checkins to resolved from our CC.NET server within the build. Writing it and getting it integrated took 2 persons 2 days and it need to be maintained whenever a new version of one of the involved tools is updated. Summing up all the time we invested in writing extensions and integrations where these open source tools failed to deliver we invested more than TFS had cost us.

Code Coverage with NProf and NUnit? Try on x64 and you'll wonder how well it works (not at all). NUnit GUI - what a joke. Data driven tests with NUnit - come on. NUnit has more features and is better than MSTest - I'm eagerly waiting for the next joke.

If you're doing open source development or small personal projects, all of the mentioned tools have low overhead and work fine. Same for distributed teams. However for the enterprise I think there is nothing better than an integrated solution like TFS.

# re: My Mistake + Here’s Why I Like Team System

Left by Fernando Correia at 7/28/2009 9:00 AM
Gravatar
Congratulations. Very well-thought out information on your post. I agree that you have the right to limit advertising to competing products and solutions on your website. But in the other hand, being open about where Team System stands in comparision to its competition seems better.

# re: My Mistake + Here’s Why I Like Team System

Left by Bert at 7/28/2009 9:34 AM
Gravatar
I think Ben D. is a TFS consultant, not just "a consultant." I'd expect him to push TFS.

# re: My Mistake + Here’s Why I Like Team System

Left by Heywood at 7/28/2009 10:05 AM
Gravatar
No offense, but I suspect you're viewing yourself more as a salesman than a honest consultant.

To say Subversion or Git don't integrate is dishonest. They're built to integrate with third-party solutions, which means they're durable and flexible.

An integrated solution means the user will have to pay for everything, including consulting, all over again when the vendor decides to change the GUI. Oh, and switching to a better solution becomes too costly.

In other words, an integrated solution is great for the vendor, but not for the user.

# re: My Mistake + Here’s Why I Like Team System

Left by IndividualRich at 7/28/2009 11:17 AM
Gravatar
I'm working in a shop now with TFS 2008 and the persistent complaint is that 'the versions are incompatable' between the various studios, CI components, testing suites, etc. The repeated statement is that 'it will all be better when TS2010 becomes available. etc.
Meanwhile I setup Hudson, NUnit, NMock, NCover and plugged it into TFS in about 30minutes and have had no 'real' problems yet.

# re: My Mistake + Here’s Why I Like Team System

Left by mark at 7/28/2009 9:20 PM
Gravatar
Isn't the horrible version control at Codeplex based on TFS? Open source collaboration is a joke on Codeplex. And it's an enterprise solution?

# re: My Mistake + Here’s Why I Like Team System

Left by Gabriel Rodriguez at 7/29/2009 12:45 AM
Gravatar
Mistakes we all do, it's what you learn from them what counts. I think Ben did learn something from this.

But I gotta say how amazing it is that people with no lives like Milan Negovan and Carlton Fisk take their time to write such judgmental and plain stupid comments like the ones they posted.

# re: My Mistake + Here’s Why I Like Team System

Left by M Alix at 7/29/2009 2:03 AM
Gravatar
Very Nice, Ben D.: Embarrassing mistake, but nice owning up to it quickly...

As to the debate, I have JUST finished comparing TeamCity, CC.Net, Hudson and TFS for our new project... and the winner was... TFS, by default.
Reasons, in not particular order:

A) TFS 2005 was already running somewhere and easily upgraded (YES, not "glitchlessly", but still easy)

B) I can't elaborate but licensing costs were not a deciding factor

C) I could not find any KILLER feature in the competition to really convince my team and myself of NOT going with an all-integrated, MS-supported tool... and I am really opened to be convinced...

D) There's nothing that we need to do that it can't do (so far!)

That being said, I loved Hudson's vast "plugin" repository and TeamCity's ease of installation... BUT I have not read any argument, here or elsewhere, that has made a strong case for any of the alternatives, TFS included, beyond being mostly a matter of personal preference.


p.s. thanks to Ben S. for bringing this to our attention...

# I just Like Team System

Left by Craig at 7/29/2009 3:19 AM
Gravatar
Horses for courses, I'm in an environment busy moving onto 2008 from SVN/nUnit/CC.NET and we're quite happy with TFS2008, and can't wait for 2010.

The thing is most of you are developers, thinking about code facing problems like Source control and CI. That being the case, you miss about 50% of the TFS business case. It's beauty is in the way it integrates for NON-TECHNICAL users. Requirements Management, MS Project, Sharepoint, reporting are all huge business wins for keeping EVERYONE involved and up to date with a project.

It is expensive and not necessary in all cases, but if you have to report to non technical people it's a great tool.

# re: My Mistake + Here’s Why I Like Team System

Left by Jordan Nolan at 7/29/2009 1:51 PM
Gravatar
Ironically, the guy (Ben Scheirman) who didn't like his blog comment deleted has turned off comments on his own blog. No doubt he is tired of people pointing out that he is ethically challenged and a grade A jerk for publishing a private email without notice or permission.

# re: My Mistake + Here’s Why I Like Team System

Left by Seth at 7/29/2009 5:42 PM
Gravatar
@Chad: I totally agree with your "little advice". By posting that he likes and recommends TFS he has closed off his future business to any other technologies. He will probably have to move back in with his parents once this TFS wave dies off.

I also agree that he's NOT a good consultant because he shoehorns TFS into every gig he gets involved in. He said that pretty explicitly in his post. I don't want to misquote anyone so I cut and pasted this from above: "I shoehorn TFS into every environment I work in, and I mean, quite literally, EVERY SINGLE ENVIRONMENT."

I heard he once volunteered at a soup kitchen and managed to sell TFS to them so they could store their recipies without resorting to using OSS tools.

# re: My Mistake + Here’s Why I Like Team System

Left by alwin at 8/1/2009 9:06 PM
Gravatar
Uhm, why didn't my comment show up?

(I'm not trying to be funny here, I really commented...)

# re: My Mistake + Here’s Why I Like Team System

Left by Ben Day at 8/2/2009 6:01 AM
Gravatar
Hey Alwin,

I haven't deleted a single comment. Not sure why it wouldn't have shown up as long as it wasn't filled with stuff that my comment spam service considered to be junk.

-Ben

# re: My Mistake + Here’s Why I Like Team System

Left by alwin at 8/2/2009 11:00 AM
Gravatar
Dunno, I basically said that you please don't loose too much sleep over this whole 'blog war'. I hope that's not considered spam :)

Hmm maybe it was just me, forgot to press the Comment button...

# re: My Mistake + Here’s Why I Like Team System

Left by Guillaume at 8/3/2009 6:11 PM
Gravatar
It has been a few months since I start using TFS 2008, coming from subversion / CCNet / NUnit / NCover.
It was painful at the beginning, mostly because the learning curve is harder with TFS than for the others but for now I'm mostly happy with it.

The real painpoint with TFS is the source control. It really deserve some enhancements because the offline mode is nothing but painful (file modifications not detected, problems getting online again, etc) and the fact that you must be careful not to touch a file outside VS without checking out your files is horrible.

Considering the work items we just don't use it until now because the user experience is really bad. Saying that you could customize it yourself is not a good point. We buy TFS and it's costly (weather it's worth it or not). If I have to finish it myself I rather prefer going to a specialized open source tool. And I have to find a consultant to have information about doing it, because I will not get help on the net. Switching to Excel or project may be better but isn't TFS supposed to be better for being... integrated ?

So why I keep going with TFS ? I appreciate having my developper tools integrated in one place, and the open source tooling is not mature in the .Net world for that matter.
I like using checkin policies to ensure the quality of what my team fellows are commiting to the code base (try out a policy that check commited files with StyleCop, it's just great ! I'm not sure you can do that with Git or SVN).
I like having the profiling and coverage tools integrated in my IDE, and the results tracked because measuring your progress is essential to make progress.
I like the testing tools. The point about NUnit is just not relevant. The "assert" tool box is anemic with mstest, that's true. Just add a reference to NUnit dll and use NUnit's asserts or fluent expressions. It's just that simple. Assertions are nothing but conditional exceptions. I also like to be able to quickly automate loadtest, even at the starting of my projects.

TFS needs a lot of improvements, and I believe that TFS2010 will not be the messia in that matter, but TFS is still an interesting platform.

# re: My Mistake + Here’s Why I Like Team System

Left by mpeterson at 8/5/2009 5:27 PM
Gravatar
Interesting discussion...

However...I don't expect the owner of a small hardware store to tell me I can get a faucet cheaper at Home Depot; I go to them because they have expertise in the area I need. Is a consultant specializing in a particular technology really that different?

Unless Ben is claiming outright that there are no alternatives to TFS? I didn't get that from the post, but maybe I missed something?

# re: My Mistake + Here’s Why I Like Team System

Left by Torkel at 8/19/2009 4:14 AM
Gravatar
I think most of the TFS problems in TFS2005 is still present in TFS2008, I curse it at least as much (multiple times a day).

The read only files that needs to be checked out is just such an irritating nad time consumting friction. The poor support for branching and merge tracking. The absolutely horrible UI for working with work items, the slow performance, bad web ui etc, all add up to a very mediocre solution that is expensive, difficult to maintain and slow to evolve (since all components are tightly connected you need to wait for the next big version and to a big investment to get new features)

I think Scott Bellwares comment were incredibly well put.

# re: My Mistake + Here’s Why I Like Team System

Left by rshimoda at 9/13/2009 5:39 PM
Gravatar
I was working with TFS for 2 months and I might say that I didn't miss SVN (+ a bunch of other apps) from my previous job.

However, in order to implement a "workflow" of code where we had several different development teams working on (parts of) the same solution and a designated "project leader" from each team who would be responsible for integrating and evaluating all produced code before merging into a "approved repository" we did create several branches in an almost uncontrolled pace. The repository soon got too ugly for anyone to understand and track merges, issues and forgotten files.

And then, reading about Git (http://whygitisbetterthanx.com/#any-workflow) I am horribly inclined to say that in my next 5 sub-teams team I'm really looking forward to something better and more flexible than TFS.

That said... I've changed jobs again and I'm happy again with my SVN + several tools environment. But I can't wait to put Git in practice here!

# re: My Mistake + Here’s Why I Like Team System

Left by Matt Freeman at 9/14/2009 11:35 AM
Gravatar
In my last contracting role, we were all equally frustrated with Visual Sourcesafe, the locking, the slowness, the unreliable server, at some point during my time there I believe it was decided and pushed for TFS (I even seen a manning book floating about on it), the problem was that no one knew what it would fix, we said "sourcesafe is crap" and for next the 3 months those TFS promoters promised we were ever so close to having the perfect SCM and CI solution whilst subtracting time from our project to implement it... Of course it never materialized, we had secret copies of Teamcity running and I believe they were pushing for Subversion (<10min setup) so they get back on to development last I heard.

Your comment:



 (will not be displayed)


 
 
 
Please add 7 and 1 and type the answer here:
 

Live Comment Preview:

 
«March»
SunMonTueWedThuFriSat
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910