About projects and scaling your organization

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2013

A project provides a repository for source code and a place for users to plan, track progress, and collaborate on building software solutions. A project represents a fundamental container where data is stored when added to Azure DevOps.

When you create your project, a team of the same name is automatically created. This is sufficient for small teams. However, for enterprise-level organizations, it may be necessary to scale up, to create additional teams and projects. These additions can be created within the single account or collection.


Single project and team defined within an
organization or collection

Multiple projects and teams defined within an
organization or collection


Conceptual image, Single collection-project-team.

Conceptual image, Scaled collection-project-team.


The collection-project-team structure provides teams a high level of autonomy to configure their tools in ways that work for them. It also supports administrative tasks to occur at the appropriate level. As your organization grows, your tools can grow to support a culture of team autonomy and organizational alignment.

How do you manage work across the enterprise?

How do you scale your DevOps and Agile tools to support your growing enterprise?

When you connect to Azure DevOps, you connect to an organization or project collection. Within that container, one or more projects may be defined. At least one project must be created to use the system.

You can scale your organization in the following ways:

  • To support different business units, you can add projects
  • Within a project, you can add teams
  • Add repositories and branches
  • To support continuous integration and deployment, you can add agents, agent pools, and deployment pools
  • To manage a large number of users, you can manage access through Azure Active Directory

You can scale your on-premises Azure DevOps deployment in the following ways:

  • To increase performance, you can add server instances
  • To support different business units, you can add project collections and projects
  • Within a project, you can add teams
  • Add repositories and branches
  • To support continuous integration and deployment, you can add agents, agent pools, and deployment pools
  • To manage a large number of users, you can manage access through Active Directory

Azure DevOps Services and Azure DevOps Server are enterprise-ready platforms. These platforms support teams of any size, from tens to thousands. Azure DevOps Services, our cloud service, provides a scalable, reliable, and globally available hosted service. It's backed by a 99.9% SLA, monitored by our 24x7 operations team, and available in local data centers around the world.

How to view projects

You can view the projects defined for your organization by opening the Projects page.

  1. Select Azure DevOps to open Projects.

    Open Projects

  2. From there, you can choose a project from the set of projects listed.

To create or list projects, see Create a project

  1. Select Azure DevOps to open Projects.

    Screenshot of open Projects button, horizontal nav

  2. From there, you can choose a project from the set of projects listed.

    Choose a project from the set of projects listed.

  1. Choose the name of the server.

    Screenshot of open Projects, TFS 2013 - 2015

  2. From there, you can choose a project from the set of projects listed.

Limit user visibility for projects using the Project-Scoped Users group

By default, users added to an organization can view all organization and project information and settings.

The Limit user visibility for projects preview feature for the organization limits user access in two ways:

  • Restricting views that display list of users, list of projects, billing details, usage data, and more that is accessed through Organization Settings.
  • Limiting the set of people or groups that appear through people-picker search selections and the ability to @mention people.

Important

The limited visibility features described in this section apply only to interactions through the web portal. With the REST APIs or azure devops CLI commands, project members can access the restricted data.

Limit access to Organization settings

To restrict select users, such as Stakeholders, Azure Active Directory guest users, or members of a particular security group, you can enable the Limit user visibility for projects preview feature for the organization. Once that is enabled, any user or group added to the Project-Scoped Users group, are restricted from accessing the Organization Settings pages, except for Overview and Projects; and are restricted to accessing only those projects to which they've been added to.

To enable this feature, see Manage or enable features.

Note

All security groups are organization-level entities, even those groups that only have permissions to a specific project. From the web portal, users without access to a project can't see those groups which only have permissions to a specific project. However, you can discover the names of all groups in an organization using the azure devops CLI tool or our REST APIs. To learn more, see Add and manage security groups.

Limit visibility within people pickers

For organizations that manage users and groups using Azure Active Directory (Azure AD), people pickers provide support for searching all users and groups added to Azure AD, not just those users and groups added to your project. people pickers support the following Azure DevOps functions:

  • Selection of a user identity from a work tracking identity field such as Assigned To
  • Selection of a user or group using @mention in a work item discussion or rich-text field, a pull request discussion, commit comments, or changeset or shelveset comments
  • Selection of a user or group using @mention from a wiki page

As shown in the following image, you simply start typing into a people picker box until you find a match to a user name or security group.

Screenshot of people picker

Warning

When the Limit user visibility for projects preview feature is enabled for the organization, project-scoped users are unable to search for users who were added to the organization through Azure Active Directory group membership, rather than through an explicit user invitation. This is an unexpected behavior and a resolution is being worked on. To self-resolve this issue, disable the Limit user visibility for projects preview feature for the organization.

Users and groups who are added to the Project-Scoped Users group can only see and select users and groups in the project they are connected to from a people picker. To scope people pickers for all project members, see Manage your project, Limit identity search and selection.

Historical data remains visible

Identities that have been added to a comment, discussion, or assignment continue to be visible to all project members. For example, work items that were assigned to a user who has since left a project, the user’s name on that work item remains visible to everyone in the project, even to users with the new restriction. The same is true for @mentions in PRs, comments, discussions, and more.

When to add another project

In general, we recommend that you use a single project to support your organization or enterprise. A single project minimizes the maintenance of administrative tasks and supports the most optimized / full-flexibility cross-link object experience.

Even if you have many teams working on hundreds of different applications and software projects, you can most easily manage them within a single project. A project serves to isolate data stored within it. You can't easily move data from one project to another. When you move data from one project to another, you typically lose the history associated with that data.

For more information about when to add another project, see How many projects do you need?.

Reasons to add another project

You may want to add another project in following instances:

  • To prohibit or manage access to the information contained within a project to select groups
  • To support custom work tracking processes for specific business units within your organization
  • To support entirely separate business units that have their own administrative policies and administrators
  • To support testing customization activities or adding extensions before rolling out changes to the working project
  • To support an Open Source Software (OSS) project

You may want to add another project in following instances:

  • To prohibit or manage access to the information contained within a project
  • To support custom work tracking processes for specific business units within your organization
  • To support entirely separate business units that have their own administrative policies and administrators
  • To support testing customization activities or adding extensions before rolling out changes to the working project

Private and public projects

You can add public and private projects to your organization. You can also change the visibility of a project from private to public.

Private projects require that you add and manage user access. Users must sign in to gain access to a project, even if it's read-only access. All users added to a project have access to the project and organization information. For details, see Resources granted to project members.

A public project, doesn't require users to sign in to gain read-only access to many of the services. Public projects provide support to share code with others and to support continuous integration/continuous deployment (CI/CD) of open-source software. To learn more about public projects, see What is a public project?.

Structure your project

When you add a project, look at using the following elements to structure it to support your business needs:

Customizing and configuring projects

You can configure and customize most services and applications to support your business needs or the way your teams work. Within each project, you can do the following tasks. For a comprehensive view of what resources can be configured, see About team, project, and organizational-level settings.

  • Dashboards: Each team can configure their set of dashboards to share information and monitor their progress.
  • Source control: For each Git repository, you can apply branch policies and define branch permissions. For TFVC repositories, you can set check-in policies.
  • Work tracking: You can add fields, change the workflow, add custom rules, and add custom pages to the work item form of most work item types. You can also add custom work item types. For details, see Customize an inheritance process.
  • Azure Pipelines: You can fully customize your build and release pipelines, define build steps, release environments, and deployment schedule. For details, see Build and Release.
  • Azure Test Plans: You can define and configure test plans, test suites, test cases, and test environments. You can also add test steps within your build pipelines. For details, see Exploratory & Manual Testing and continuous testing for your builds.

When to add a team, scaling Agile tools across the enterprise

As your organization grows, add teams to provide them the Agile tools that each team can configure to meet their workflow. To learn more, see the following articles.

To review stories and short videos on how Microsoft transitioned from waterfall to Agile, see Scaling Agile Across the Enterprise.

Clients that support connection to a project

In addition to connecting through a web browser, you can connect to a project from the following clients:

See also, Compatibility with Azure DevOps Server versions.

Q & A

Q: Can I move or transfer a project to another organization or collection?

A: Not without losing data. You can't move a project from one collection/organization to another collection/organization without losing data. You can manually copy resources and leave some behind, or use a third-party tool, such as OpsHub Visual Studio Migration Utility, that copies data using the REST APIs.

Q: What programmatic tools support projects?

A. See Projects REST API.

Also, you can use the az devops project commands.