| Scenario | Personas | Priority |
| Accessing Version Control | | |
| Work offline, syncs changes when back online | Dev | |
| Automate a common version control task | Dev | |
| Use Team Foundation Version Control from a MSSCCI compatible client | Dev | |
| Use Team Foundation Version Control using third-party integration | Dev | |
| Create your own integration solution to access Team Foundation Version Control | Dev | |
| Use Team Foundation Power Tools to accomplish tasks impossible from the UI | Dev | |
| Use the version control command line interface | Dev | |
| Administration | | |
| Remove a developer from the project | Admin | |
| Add a developer to the project | Admin | |
| Give a developer access to a portion of the source tree | Admin | |
| Modify source control permissions on branches | Admin | |
| Move the source tree to another server | Admin | |
| Branch / Label / Merge | | |
| Apply a label to a set of files and folders | Dev | |
| Create a branch to support a release | Dev Lead | |
| Use a branch to maintain a release | Dev Lead | |
| Create a branch to support isolated feature development | Dev Lead | |
| Create a branch to isolate external dependencies | Dev Lead | |
| Retire an old release | Dev Lead | |
| Perform a forward integration merge from parent branch to child branch | Dev | |
| Perform a reverse integration merge from child branch to parent branch | Dev | |
| Execute a merge across branches | Dev | |
| Resolve merge conflicts | Dev | |
| Perform a baseless merge | Dev | |
| Check-ins and Check-in Policies | | |
| Use check-in policies to enforce coding standards prior to check-in | Dev | |
| Use check-in policies to enforce unit tests at check-in | Dev | |
| Create a custom check-in policy | Dev | |
| Override a check-in policy | Dev | |
| Receive notification of a check-in policy override | Dev Lead | |
| Check-in a change set | Dev | |
| Undo a previous check-in you made | Dev | |
| Undo another developer’s check-in | Dev | |
| Resolve a conflict at check-in | Dev | |
| Automatic conflict resolution fails to resolve a check-in | Dev | |
| Avoid conflicts with other developers | Dev | |
| Checkout, Get, and Lock | | |
| Get the latest version of the source tree | Dev | |
| Get the latest version of a sub-set of the source tree | Dev | |
| Check-out a file for editing | Dev | |
| You are making major changes to a file and need to lock out other developers | Dev | |
| You need to reorganize your source tree and must lock it down until done | Dev Lead | |
| Lockdown before shipping your application | Dev Lead | |
| Dependencies | | |
| Manage web service dependencies | Dev | |
| Manage database dependencies | Dev | |
| Use project references to reference dependencies in the same solution | Dev | |
| Use file references to reference dependencies in another solution | Dev | |
| Distributed / Remote Development | | |
| Remote developers access TFS over the internet – no proxy | Dev | |
| Remote office accesses TFS over the internet – using proxy | Dev | |
| Partner accesses TFS over the internet | Dev | |
| Untrusted users access TFS over the internet | Dev | |
| Remote office sets up TFS Version Control Proxy | Dev | |
| Remote office optimizes TFS Version Control Proxy performance | Dev | |
| Migration | | |
| Migrate source from VSS to TFS | Admin | |
| Migrate source from ClearCase to TFS | Admin | |
| Migrate source from PVCS to TFS | Admin | |
| Migrate source from StarTeam to TFS | Admin | |
| Migrate source from PerForce to TFS | Admin | |
| Migrate source from an open source solution (GNU-RCS, CS-RCS, GNU, CVS, SVN) to TFS | Admin | |
| Create a custom migration solution with TFS Migration and Synchronization Toolkit to migrate source from a source control system that does not yet have a migration solution | Admin | |
| Move from one TFS server to another | Admin | |
| Project / Workspace Management | | |
| Set up a new project with MSF Agile or MSF CMMI | PM | |
| Set up a new project with customized process guidance | PM | |
| Create a new project based on existing code | Dev Lead | |
| Choose one team project vs. multiple team projects | PM | |
| Define workspace mappings | Dev | |
| Create a local workspace to unshelve another developers changes | Dev | |
| Create a local workspace to look at a bug in isolation | Dev | |
| Create a local workspace to isolate high risk code changes | Dev | |
| Structure your source control tree to support branching and merging | Dev Lead | |
| Shelving | | |
| Shelve a changeset to backup pending changes to focus on higher priority work or to back-up work at the end of the day | Dev | |
| Shelve a changeset to share pending changes for a buddy test, to get a code review, or to hand off partially completed work | Dev | |
| Unshelve your own changeset to return to past work | Dev | |
| Unshelve another developer’s changeset to perform a buddy test, code review, or to take over partially completed work | Dev | |