I'm and open source and SVN lover. We at the company are at a situation that must decide between SVN or Team Foundation Server. I'm trying to convince others to use SVN because I think TFS is enhanced in large teams. We are just 7 developers and 3 testers. Am I right about this?
Well, TFS is much more than version control. If you are looking for just version control, TFS is way too expensive. IMHO. I would stick with SVN. However if you are looking for things such as the test suite, issue management, etc, then I would look into TFS.
I've seen SVN used successfully with very large teams, when backed by things like automated build servers. If you're trying to convince others to go with SVN, you are probably better off just identifying the 3 reasons you love SVN that TFS doesn't have and why you feel those are important, than trying to broadly say one is "more efficient"
I'm not sure there's any inherent difference (with respect to team size) between the two. The big differences that I'm aware of are:
- TFS provides additional features like bug tracking and "Team Build" besides just source control.
- All TFS features are integrated nicely into the Visual Studio IDE.
- Licensing costs.
Here is your reason: Microsoft doesn't use TFS on its biggest project; Windows.
Why do you think that TFS is a large system?
I have it installed on my Windows 7 laptop using SQL Express and I do not even notice it is there. With TFS2010 you can opt not to install the Sharepoint, Reportign Services adn Analysis services integration from the get go. You can instead just have Version Control , Work Item tracking (Bugs, Tests, Issues, Tasks and User Storys) and automated Build.
In fact I installed and configured all of that in under 20 minutes and on my most recent project it took around 30 minutes to setup a new product with all of those things.
Why would you use TFS?
- Cheap (Free to all MSDN Subscribers and $400 retail with 5 users)
- Quick to install
- Quick to setup
- Easy to use
- Lots of documentation
- Support for everything from a single vendor
If you are then comfortable with what TFS is offering with a Basic install you can then add Lab Management if you want automated enviroment testing or Analysis services if you want more reporting.
+2 cents.
TFS not only brings you Source Control + Work Item tracking (Bugs, Tests, Issues, Tasks and User Storys) + automated Build, you also get a VERY BIG AND IMPRESSIVE Analysis Databse in which you can cross information from these different data sources, without extra work. I mean, you can see why a specific build has some bugs, related to the specified files that have benn checked in, related to the tasks/bugs related to the files, related to the user story which is related to the task, etc. Without additional effory you can get a more detailed view of "what's happening" in a development project.
Regards from Spain
Comparing SVN to TFS is like comparing apples and oranges. SVN is a Revision Control system whilst TFS is an ALM platform like others have already mentioned.
Lets assume that a company chooses for Subversion, CruiseControl.NET, some kind of Agile Project management tool , a bug tracker (Bugtracker.NET, Bugzilla, ...). Let's assume that all the tools that this company chooses is OSS, one would think that it's free, right? Unfortunately, you would still need to start integrating all these tools and that is where the real cost is.
Sure, a platform such as Team Foundation Server comes with a licensing costs and offers what all the previously mentioned OSS tools offers too but already nicely integrated.
So basically if what you want are tools to support your ALM and you are Microsoft-oriented you should seriously consider TFS as an option. Sure as a technical guy it is fun figuring out how to integrate Bugzilla with Subversion and the project management tool, and the spending nights trying to figure out how we export/import all that date into the custom developed reporting tool that has been specially developed for the HR department for the time tracking reports, and so on. You understand what I mean.
In the end the OSS alternative path costs so much more than the TFS path and people just don't like to admit it, on the other hand off course, if all you want is a Revision Control System you don't need TFS. But if that is all you need as a developer, can you call yourself a serious developer? ;-)
If you want to see just how good TFS is - create a project and then try and export it to another TFS system - from what I see you can't!
So every few years you have to throw everythign away and start over again - since in TFS there is no built-in way to export all what you have done. When you build a new system - you cannot move all the history work items etc. only think you can ever do is just move your code MANUALLY to the new system and recreae everything all over again.
Great way to waste a week's worth of work on every project you have to move.