Book Image

Azure DevOps Server 2019 Cookbook - Second Edition

By : Tarun Arora, Utkarsh Shigihalli
Book Image

Azure DevOps Server 2019 Cookbook - Second Edition

By: Tarun Arora, Utkarsh Shigihalli

Overview of this book

Previously known as Team Foundation Server (TFS), Azure DevOps Server is a comprehensive on-premise DevOps toolset with a rich ecosystem of open source plugins. This book will help you learn how to effectively use the different Azure DevOps services. You will start by building high-quality scalable software targeting .NET, .NET Core and Node.js applications. Next, you will learn techniques that will help you to set up end-to-end traceability of your code changes, from design through to release. Whether you are deploying software on-premise or in the cloud in App Service, Functions, or Azure VMs, this book will help you learn release management techniques to reduce failures. As you progress, you will be able to secure application configuration by using Azure Key Vault. You will also understand how to create and release extensions to the Azure DevOps marketplace and reach the million-strong developer ecosystem for feedback. Later, the working extension samples will even allow you to iterate changes in your extensions easily and release updates to the marketplace quickly. By the end of this book, you will be equipped with the skills you need to break down the invisible silos between your software development teams, and transform them into a modern cross-functional software development team.
Table of Contents (14 chapters)
Title Page
About Packt
Contributors
Preface
Index

Creating a team project for an Agile team


Azure DevOps Server provides a set of integrated tools that allow teams to effectively manage the life cycle of their software project. The team in Azure DevOps Server is encapsulated within the container of a team project. A team project is a logical container that's used to isolate all tools and artifacts associated with a software application in a single namespace.  

The conceptual boundary that was introduced through the team project eliminates the problem of having access to unrelated artifacts such as code, work items, or release information that isn't relevant to your application's development. Related team projects can be grouped together into a team project collection. Team project collections can be used to introduce a physical separation between a group of related team projects by hosting them in separate databases.

An instance of Azure DevOps Server is capable of supporting multiple team project collections, and each team project collection can internally host multiple team projects. A team project can house multiple teams. As illustrated in the following diagram, the process template is scoped at the team project level. Multiple team projects in a team project collection can use different process templates; however, multiple teams within a single team project will need to use the same process. Teams, however, have autonomy on the level of the backlogs they choose and the workflows on the Kanban board. The delivery framework of choice is applied through the Process Template, which, in turn, applies the delivery framework-specific terminology, artifacts, and workflows to the team project and all teams within the team project:

The process template defines the set of work item types, queries, and reports that can be used to plan and track the project. In this recipe, we'll learn how to create a new Team Project using the Scrum template.

Note

TFS 2018 and later versions no longer support native integration with SharePoint products. If you're planning to upgrade to Azure DevOps Server 2019, read About SharePoint integration (https://docs.microsoft.com/en-us/azure/devops/report/sharepoint-dashboards/about-sharepoint-integration?view=azure-devops) to learn about the options available to you.

Getting ready

To create a team project, you need to be a member of the Project Collection Administrators group. If you aren't already part of this group, gain membership by following the steps provided here https://docs.microsoft.com/en-us/vsts/security/set-project-collection-level-permissions. Alternatively, follow the steps provided at https://docs.microsoft.com/en-us/vsts/security/set-project-collection-level-permissions to be added to one.

How to do it...

To create  a new team project from the web, follow these steps:

  1. Launch a browser and navigate to the Azure DevOps Server Portal.
  2. From the top right side, click the +Create project button:
  1. Provide a name for your new team project, select its initial source control type, and select a process to create a team project. The work item process is a one time choice and cannot be changed once set. See Choosing the right version control for your project (https://docs.microsoft.com/en-us/azure/devops/repos/tfvc/comparison-git-tfvc?view=azure-devops) and Choose a process (https://docs.microsoft.com/en-us/azure/devops/boards/work-items/guidance/choose-process?view=azure-devops) for guidance:

 

 

Note

The ability to work from both Git and TFVC repositories from the same team project has been supported since TFS 2015 Update 1. See Git team projects (https://docs.microsoft.com/en-us/azure/devops/repos/git/team-projects?view=azure-devops) or TFVC team projects (https://docs.microsoft.com/en-us/azure/devops/repos/git/team-projects?view=azure-devops) for more information.

How it works... 

The following items are created for you as part of the team project creation process:

  • Dashboards: A canvas to bring key information radiators to raise visibility within and outside the team
  • Code: A code repository (Git/TFVC) based on your selection is provisioned
  • Work: All agile planning and tracking tools are nested under this hub. 
    • Team: A default team with the same name as the team project is provisioned.
    • Area Path: A default Area Path with the same name as the name of the Team is provisioned. The teams' backlog is configured to show work items assigned to this Area Path.
    • Iteration Path: The set of iterations is pre-created for the team.
    • Team Portal: The Team Portal allows the Team members to connect to TFS to manage source code and work items, and build and test efforts.
  • Build & Release: Automated pipelines to build and release your application
  • Test: Plan, track, and execute tests
  • Wiki: To share knowledge and documentation with the team

These are shown in the following screenshot:

Note

Azure DevOps server simplifies navigation across the portal, and for those who prefer the keyboard to the mouse, there is a great support for navigation through the keyboard in both global and local hubs. Hold Shift + ? in the portal to see the full list of supported keyboard shortcuts.

There's more...

Azure DevOps Server makes the process of setting up a new team project very straightforward—so much so that you may be inclined to create a new team project for every software project. I would generally not recommend this; with support for multiple teams and backlog isolation at the team level, it is possible to have a logical separation, along with the ability to share within a team project. In principle, you should consider a team project for each product, and a team for each work stream. The only time you should consider splitting a product team out into a separate team project is if it needs to follow a unique process, since process templates are scoped at the team project rather than at the team level. 

If you find yourself organically needing to grow out into a new team project to use a different process template, you can consider leveraging theVSTS Migration Toolkit (https://nkdagility.com/vsts-sync-migration-tools/) to carry out a full fidelity migration.