Team Foundation Scalability ??? And why CodePlex exists?
I got a comment from Jonathan Wanagel on my CodePlex WTF. I complained that I couldn't get an access to source via Team System. I do not consider tarballs to be a good way of getting source for projects that I may be interested at. There is too much stuff that I cannot do that I should be able to (diff, reverts, easy update to new revision, patches, etc).
Here is the comment:
I am not quite sure what I am supposed to think about this. The cheeky answer is: Well, Subversion can.
Note: It is probably a lot easier to scale a Subversion farm than a TFS farm, because of the wildly different architecture choices made. TFS depends on SQL Server, which is complex to setup for thousands of concurrent users, Subversion is much simpler in this regard.
Let me run by that again, CodePlex is supposed to be an Open Source hosting site, but it doesn't let me access the source in an acceptable way, it doesn't let me create patches easily, it doesn't work.
I have an OSS project on the side that I don't even try to gather community around (Rhino Tools), so far I have gotten several dozens patches (99% of them accepted), because the source was there, it was easy to access, it was easy to modify and then send the patch to me to merge it in. I seriously fail to see the value that CodePlex can provide an Open Source project.
You may think that this is a minor matter, but I consider this a make-or-break point.
Ayende you completely mis-understand CodePlex :P Its use to 'DEMONSTRATE' the effort MS put in OSS, so making it work is not part of it LOL.
Thats why I said developing my own Issue Tracker using .net and integrates with SVN + CCNet works... provided TFS never provide anyone a 'create patch' option, support larger amount users, etc. A week ago I asked for 'Create Patch' from my fellows who are using TFS, the answer is, sorry, not an option :P
Microsoft prefers to reinvent the wheel rather than use tools that the developers use and enjoy to use.
Subversion and TortoiseSVN are great products.
I think ultimately that MS thinks it's above all other products and assumes because they make it, everyone should use it. Take NUnit - why in the world does MS create it's own testing system when everyone into testdriven development use NUnit?
Personally, I'm a bit tired of it all. I know I'm not alone.
Well, let me be more precise about the scalability of TFS. It scales great for a corporate style environment, but TFS wasn't intrinsically designed for an open source hosting site. It is the TFS user security system that doesn't scale for us, specifically granting tens of thousands of users read permissions on every project. TFS could handle all the users accessing it if we could get the permissions assigned.
I definitely appreciate your feedback about the importance of creating patch files and generally having full SCM features. We have received this feedback before and it is important to us to make the site work well for people. There is a feature request on the site for SVN support but not many people have voted for it: http://www.codeplex.com/CodePlex/WorkItem/View.aspx?WorkItemId=7082
Is it not possible to create a general policy for read access for all users?
Then again, I have no idea how TFS handle security internally.
Being able to use SVN for SCM and TFS for bug tracking and pretty reports would be really nice, especially if there is even minor integration between them.
Having setup a project at codeplex (which has users now - so I probably won't move it any time soon) - I can definitely say relying on TFS is a right pain in the ass...
hardly much fun for non visual studio .net developers.
246mb install just to get a TFS client integrated with VS.
no mail notification on forums - you just have to keep an eye on the RSS feed for the whole forum, not the post, to see if people respond.
the source for codeplex itself isn't open source.
user contributions can only come via forum posts or personal email... the later obviously not being visible to the whole development team.
About the only thing going for it is that you can at least get continuous integration working through cruise control.net - but then your left with having to find your own hosting for any nightly builds (no free web space provided)
Personally I think Microsoft needed something like Codeplex, from a marketing and external open source publishing point of view - and gotodotnet was definitely showing it's age...
re: Jonathan Wanagel's comment... I guess I'm puzzled as to why everyone would need to be granted individual access... could they not just introduce a single read-only anonymous user that everyone could use?
Setting up a general policy for read access for all users overwhelms TFS if you have tens of thousands of users multiplied by thousands of projects.
Internally TFS has a process that replicates user information from Active Directory to its SQL server database when you grant a user permissions to a project. It replicates this data so TFS doesn't need to query Active Directory for most operations. If we created a new project and then added read permissions to all of our tens of thousands of users, then TFS will try and do a fresh replication of all the users. Repeat this process for how many times a new project gets created in a day and the replication process gets overwhelmed.
If we added a group (e.g. "All users") TFS still gets the list of all users from that group to replicate.
What would "minor integration" between SVN and TFS look like?
I see the issue now. Complex indeed.
Minor integration could be that I can close a bug via Subversion (very easy), that a check-in into subversion will invoke the TFS policies for checkin (no idea if possible, depends on how that is implemented).
That a link to a rev#123 would go to the correct revision, or so.
(Responding to Alex Henderson)
We thought of creating a single user "Guest" that anybody could use. The problem is when you create a workspace, TFS tracks it on the server. So anybody using the "Guest" account could modify or delete your workspace. Which would be annoying at minimum, dangerous at worst if for example someone changed your working folder to C:\Windows.
Btw, we added a feature this week for e-mail notification on reply of a forum post.
We definitely pay attention and respond to the features that people vote for, I very much encourage everyone to go to: http://www.codeplex.com/CodePlex/WorkItem/List.aspx
I concur whole heartily with your complaints with Codeplex. You've outlined exactly the same ideas I've been thinking every time I visit a project on cp. Perhaps my opinion is subjective since we are a Subversion/trac shop already. We do however have access to Team system through our MS agreement but we haven't needed to investigate it as all the features of our existing solution are working like a dream. And the fact that what we use internally is replicated in so many open source projects makes it that much more beneficial from a usability standpoint.
I think it was you from a prior post complaining about why the bugfix for VS2005 SP1 wasn't in the release notes, and some MS answer about how difficult it was for the team to list all the bugs that went into it was too hard. Is this due to using Team System internally? Is it difficult to acquire this type of report? In Trac/SVN its about 4 mouse clicks I think to generate the Milestone bug fix list.
MS would do well to continue to use whatever they want in the back end and perhaps create a wrapper to allow you to use a SVN/TFS frontend client to perform the work. (This is sounding like web services.)
Anyhow it's nice that MS listen and hopefully can improve the Codeplex experience.
Codeplex's new command line client is in beta.