Consider a new deployment of Team Foundation Server 2010, with the first use cases being Version Control.
The teams using TFS for Version Control are:
application development - web applications, SharePoint, db scripts, etc. primarily through Visual Studio
integration - text files (XML and JavaScript) for an integration engine.
data warehouse - VS database projects, SSIS packages
Each team typically doesn't have projects relating to each other, and work independently. All projects are internal, and each team has a different set of customers.
The first suggestion is to have a Collection layout as such:
* Applications
* Sharepoint
* Integration
* DataWarehouse
How would you structure a TFS 2010 given these conditions?
Are there any practices or suggestions that would you recommend for these teams in terms of collection structure?
(source: msdn.com)
I'll answer my own question here with how I laid it out in this environment with many distinct teams.
For any other developers taking on the TFS admin role, I'd again throw out the suggestion to divide your TFS Collections where the projects won't have any cross-over between teams. This could be however you define it - customers, separate teams.
This helps to allow teams to see & contribute to projects that they're concerned with.
Create new or leverage existing AD security groups for the purpose of granting read/write to each appropriate Group in the Collection. Allow/deny permissions to each Group for the Collections as they're needed.
Steve Lange has a very good posting about this topic ("Thoughts on TFS Project Collections"), click here
Can collections have collections? If so, I'd suggest a team bases collection. Then each team can have their own child structure as they see fit. It also gives you a nice seperation between teams, giving you flexability in security, stability, etc.
Related
In our work place we use Team foundation server as the main server used for source control, work tracking, build server etc.
We develop in house software with many teams working on different projects.
Sometimes we develop applications or libraries which can and should be shared in our company including the ability to have more than one team contributing. Unfortunately due to nature of the applications being developed they cannot be shared outside our company.
I would like to know if tfs can help in that respect or do I need to add other tools.
For instance if our teams work in different areas or team projects how can open source projects be shared without risking editing permissions or such. How can projects be shared, cataloged, published?
How can issues be published for the project? How can pull request be done as they are done in github?
Share projects or source code in TFS is accomplished mostly through a combination of using the Area hierarchy and Teams functionality.
Then we can use the Area field to filter all reports and queries. Each Team is tied to the related Area and is used to provide each Team/Sub-Project with it’s own Product Backlog. And Security can be granted based on Area and/or Source Control Path.
Update
Permission is a very important concept in TFS. The simplest and safe way is using permission to restrict and help other team contributing to the share projects. One main team/group which have all permissions for the contributing to the share project.
Most of the teams/groups which have visibility into the share projects. They need to create pull requests to review and merge code in project. Pull requests let your team give feedback on changes in feature branches before merging the code into the master branch. Reviewers can step through the proposed changes, leave comments, and vote to approve or reject the code. The same thing as GitHub.
And many times a request or issue fix will come from the share project managers , but they are not sure what team or project it should be assigned to. Then you could use share product backlog items (pbi, or user story if you are using agile template) across team projects within TFS. Since you are using a multiple team strategy under a single team project. You could collect the pbi’s and place them in an oversight queue that will be reviewed by either an individual or committee. Then these pbi’s will get moved as they get assigned to teams and projects. However, you also need to setup security in way so that the individual teams don’t have permissions to get in and monkey around with other teams backlog, queries, or code.
Otherwise, there are no built-in share project process or tool inside TFS, if you really need this, could add a uservoice.
We are trying to ensure that all users follow the rules of ALM when using Team Foundation Server. For example, to ensure that work items and their children have consistent states. Specifically, when transitioning a User Story to the "Closed" state, this should only be allowed if all of the children tasks are closed. Is there any way to implement this behavior with TFS?
You haven't specified which TFS and VS you are using so I am going to assume 2013, although explanations are the same for 2012.
I don't think you can achieve your goal by just configuration, you may need to write some code by using one of the extensibility hooks provided by TFS.
A good place to start is to see if you can leverage the TFS Power Tools - a collection of tools (policies, templates etc.) provided by the TFS team out of band with the product itself.
I'm looking for a tool to track questions and answers between the development team. After then I want to compare the employees based on their activities via some reports. Currently we're using MSF for CMMI 4.2.
Is there any process template to support this situation? For example having work item types like Question, Answer, Article.
Is using TFS a proper tool for this purpose?
Or maybe there's some better tools available which I'm not aware about.
Is there something like StackOverflow which I can use locally in the company?
You can upgrade tfs to tfs 2013 which supports team rooms where your team members can chat which also can be used as q&a tool. You can try this now in tfs service.
http://tfs.visualstudio.com/en-us/learn/collaborate-in-a-team-room.aspx
You can also set up your own company wiki website where your team members can update q&a.
What is the best ASP.NET WIKI out there?
Or set up your own in house stackoverflow
https://meta.stackexchange.com/questions/2267/stack-overflow-clones
It sounds like you want a discussion forum. If you are using SharePoint (e.g. for the TFS Project Portal) you can create a discussion forum in SharePoint.
In TFS Work Items there is also the ability to track a discrete list of comments/discussion under the History tab.
you can also integrate them with Microsoft Project Server Or Microsoft Dynamics CRM.
there are many tools there , waiting for you , to solve your other problem.
http://www.quantumwhisper.com/dynamics-crm-microsoft-tfs-integration/
crm has many feature for that
http://intovsts.net/2012/12/28/integration-of-dynamics-crm-2011-solutions-with-tfs/
in the project server also exist many lists like issue tracker, or risk for send messages interactive between your team and others.
We have a very standard / simple instance of TFS installed in our development environment.
I can see how to provide web access to a manager for a single project, e.g /tfs/fooProject, but I would really like to setup a worklist or add titles / homepage to the entire TFS instance.
This would be helpful as we host multiple projects, each with a couple of outstanding issues, and I would like it if a manger could go to a website and see a snapshot of all our applications on the one page.
Any ideas on how I could do this?
Check out this blog post: http://blog.nwcadence.com/working-within-a-single-team-project-with-team-foundation-server-2012/
The basic idea is that you model levels of your organization using area paths. This will allow you to scope your Web Access view to the appropriate level.
Note that this is made considerable simpler in VS 2013 with the introduction of the Agile Portfolio Management Tools (http://blog.nwcadence.com/video-new-with-visual-studio-2013-manage-project-portfolios-to-understand-the-scope-of-work/)
We would like to give our customers access to report bugs and to look at existing bugs and work items, through Team Foundation Server.
For that, we will need a web frontend, which is customer-friendly. It should be easy to use and with a nice UI. I am aware of Web Access, but think it is too developer-oriented for our customers to use.
Is there any good open source or commercial products out there for doing this? It is important that we will be able to customize the products for our needs.
There is WIWA, but it's quite similar to the regular web access tool. It exists more as a licensing aid (helping TFS admins ensure they don't overstep the CAL requirements) than as a fresh new UI aimed at non-developers.
Note: get it from the latest download package for TSWA SP1, not the CTP linked in the blog post
I don't know of any other solutions that are as customizable as you're hoping. I've seen (and contributed to) one-off solutions that were tailored for a specific work item type. At the broadest level, you could say that the bug pages # connect.microsoft.com and # Codeplex fall into that category as well. But none of them is publicly available, nor would they be helpful even if published.
You'll probably need to do a one-off of your own using the Work Item Tracking API. Luckily, this is far easier than writing a generalized workflow engine / forms designer that knows how to parse WIT XML.
A bit of a shameless plug as I'm the project owner: Spruce is an ASP.NET MVC2/jQuery driven front end for TFS 2010 aimed at replicating the user-friendly approach you find in products such as Fogbugz, Unfuddle and online sites such as Github, Bitbucket.
A few screenshots:
I'll be adding the list of features found on the blog at the start of the year.