What is actually meant by 'collection' in Team Foundation Server? - tfs

I am new to Team Foundation server.
1)What is meant by collection in TFS?
2)How can me and my friends work on a project using TFS?

1)What is meant by collection in TFS?
Simply saying a team project collection is a group of team projects in TFS.
When your Team Foundation Server (TFS) hosts multiple team projects, you can manage them more efficiently by grouping them together and assigning the same resources to them. For example, you can group projects that have similar requirements or objectives, such as all team projects that access a particular code base. You can then manage the group of team projects as an autonomous resource with its own user groups, server resources, and maintenance schedule.
A group of team projects is called a team project collection. When you install TFS, a default collection is created to contain all team projects. When you create a collection, you specify the logical and physical resources that team projects within that collection can use. All the artifacts and data that those team projects use are stored in the single database of the collection.
See Manage team project collections in Team Foundation Server for details.
2)How can me and my friends work on a project using TFS?
Too much content for this question. Suggest you reading the Quickstarts documents first.
Basically you need to do following things first:
Create a team project
Add users to a team project or specific team
Add administrators, set permissions at the project-level or project
collection-level
Connect to TFS --> Version Control --> Build/Release
Please refer to the Guide link for each related point : https://learn.microsoft.com/en-us/vsts/?view=vsts#pivot=start
Also here is a simple guide for your reference to Get Started with Team Foundation Server 2015

Related

Adding solution to source control

I want to add solution to source control(tfs I am using vs 2015).I selected the option add solution to source control, then one dialog opened, in that dialog there is no option to create a new folder directly under collection, it is always adding to the existing project(folder).How can i create a new folder/project directly under the collection.
The structure TFVC uses for source control is as follows:
Team Project Collection (created by your TFS admin)
$/TeamProject1
$/TeamProject2
etc
You can't add source code directly under a Team Project Collection -- it has to be created in a Team Project. And you can't just create a "folder" that represents a new Team Project. You have to create a Team Project either via the web UI (if you're using TFS 2015 Update 2 or later) or via Visual Studio. The version of Visual Studio used to create a Team Project needs to match up with your version of TFS, as well.
Typically, guidance for Team Projects is to create a single team project for each portfolio of related applications, since each Team Project is isolated from other Team Projects in terms of things like source code, build, release, and work item management. You can use the concept of Teams within a Team Project to create separate backlogs and the like for individual applications.
Some further reading:
Why you should use one Team Project: http://geekswithblogs.net/Optikal/archive/2013/09/05/153944.aspx
Creating a team project: https://learn.microsoft.com/en-us/vsts/accounts/create-team-project

TFS 2015 - Setting permissions per area

I've recently completed the deployment of TFS 2015 Update 1, we have around 15 development teams in the UK and previously we have always structured our TFS projects as follows:
Default Collection
Application 1 (Team Project)
Application 2 (Team Project)
This caused issues with sharing work items across teams as it is difficult to move WI's across the project boundary.
Rather than create a new team project for each team, I want to manage things with a single team project and create separate areas\iterations\teams for each one. So:
Project Collection > Master Team Project > Area 1
Area 2
Area 3
etc
in terms of permissions I would like to add in each of the standard TFS permission groups to each area. I would also like to create a root folder for source control for each area.
At the moment I can't work out how to do this? Can anyone help?
I suggest you to look at the some community suggestion on this topic.
One Team Project to rule them all
Why You Should use a Single (Giant) TFS Team Project
How to implement a multiple team strategy in Team Foundation Server 2013
In general it is a good practice (I won't say best practice as it is not the right thing to do in some cases).
Regarding you question, you should focus on Team to define developers access, and TFS groups for general (e.g. administrative) access.
I'd recommend you to use the multiple teams feature in TFS2015. It allows you to manage the team members, permissions, work items more easily. And you can track the entire project status from the team project page and track the individual feature team status from their own project page. The work items can be also moved between the teams easily (Just change the area path). Refer to this link for details: Multiple Teams

Manage Team member capacity for users in multiple Teams

We are currently working on how to best manage our projects in TFS 2012. We are planning to create multiple team in order to manage concurrent iteration on the same project for distinct feature not released at the same time so we did two team (Project 1, Project 2).
The problem we currently have is how can I manage team member capacity when assigning a member to multiple Team. Is ther a way to view Capacity assign to a member for all current iteration of every team without navigating between multiple sprint?
What you want is not supported with the current tools, nor have we plans as for now to support this in the near future.
Feel free to add your suggestion to User Voice. We use that list to help prioritize our work.
This functionality is provided out-of-the-box and has been available since TFS 2008. You will require to install Microsoft Project Server onto the SharePoint implementation that you use with TFS (or another one if you like) and then configure the integration.
By installing Team Foundation Server Extensions for Project Server, project managers can use Microsoft Project Server to access up-to-date project status and resource availability across agile and formal software teams who work in Team Foundation. This integration enables data to flow from work items in Team Foundation Server (TFS) to tasks in enterprise project plans in Project Server. Project managers and software development teams can use the tools that they prefer, work at the level of precision that supports their needs, and share information transparently. After the two server products are configured, the synchronization engine maintains scheduling data and resource usage for the configured data in the mapped enterprise project plan and team project.
For TFS 2010 there is an Add-on, but for TFS 2012 it is included in the product.
Enable Data Flow Between Team Foundation Server and Microsoft Project Server
Microsoft® Team Foundation Server® 2010 and Microsoft Project Server® 2010 Integration Hyper-V Virtual Machine

Team Foundation Server 2010 Project Collection and Project Permissions

I'm new to Team Foundation Server 2010 and I have a question about permissions.
Is it possible for a project to inherit permissions from a project collection? I want to setup a custom contributor group at the project collection level and add the developers to it. Each time they create a new project I want to inherit the permissions from the project collection. That means I don't have to explicitly add the developers to the project each time they create one.
Maybe there is some other way of doing this and not having to setup a custom contributors group? Any help would be appreciated!
I would recommend setting up some Active Directory Groups along the lines of:
TFS Contributors
TFS Administrators
TFS Project Managers
(You could also do this for specific projects. You get the idea.)
Give these AD groups the permissions you need, and simply add/remove the developers to the AD groups. If you can get the ability to manage the AD group, this will be much simpler that administering through the TFS admin tools.
Hopefully, you'll already have AD groups that fit these needs, saving you the trouble. Maybe a team-wide distribution list, for example?
You can create collection level roles (TFS Groups) and edit your process template to grant permissions to those roles so there are set by default in every new project.

Archiving Team Foundation Server Projects

We're starting to user Team Foundation Server and my boss would like some way to "archive" projects. Meaning after they are completed, remove them from an "active" state so that only "active" projects are visible.
Does anyone have any experience with this?
I've thought of 2 options.
1) Create 2 base projects. 1 for active projects and 1 for achived projects
2) Remove all users from the archived projects.
Thanks,
Sam
I would personally recommend waiting for TFS 2010 when more functionality will be introduced that will assist you in the ability to "archive" Team Projects.
In TFS 2010 you will hopefully be able to move a team project to a new Team Project Collection. Actually you do this by duplicating your "active" project collection and then deleting all the team projects from it apart from the one that you want archived. In this active project collection, delete the archived project that you have a copy of in the duplicated project collection. This archived team project will then live in it's own project collection which means it has it's own database etc which can be easily backed up / archived etc.
The archived team project project collection can then be left as it is as it doesn't slow down the server any if not being used - or it could even be detached from the TFS Application instance so that it doesn't show up at all and re-attached at any time.
An advantage of using project collections in TFS 2010 is that full Version Control and Work Item Tracking history will be maintained.
I would use it just as you normally do, but when you are done with the project then you remove it from the visible list. (In Visual Studio you can right click on a project in the team explorer and say remove.)
If you are worried about changes after the project is done, then remove the users from the contributors list. If you really want to boot the users out (so they cannot even see it) then you can deny them rights to the project.
This way you don't have to see it, but you can keep all your projects on the base level.
I would NOT recommend having just 2 base project for active and in-active. A TFS project should not be based on a state.
We created an "Archive" team project and we regularly move unused source code to that team project. It has worked out well for us, the history is preserved so we can always reference the archive project for old code or information on past changes. We also limit access such that developers have read access but only TFS administrators have write access. I haven't checked to see how these moves impact the association of check-ins with work items - mostly because everything we archived was checked in before we moved to TFS.
As for the one active team project, I was led to believe by knowledge experts and online documentation that this wasn't the best way to organize team projects. I think ideally you group projects/solutions together into a single team project if they are related (i.e. by line of business or dependencies).
I'm sure you've already done your research, but there is plenty of documentation out there that might assist (especially if your team maintains a single application or a handful of applications). I would suggest starting with patterns & practices: Team Development with TFS.

Resources