Course Overview

This two-day course provides students with the DevOps principles and related hands-on practices to work better as a team, scale their agility, share and integrate their work, and deliver working software continuously in order to enable faster delivery of value and receive early and valuable feedback.

Key Learning Areas

  • DevOps principles, benefits, and related practices
  • The Three Ways: flow, feedback, and learning
  • Technical excellence at scale
  • Working as a team in a shared VSTS environment
  • Increasing flow through a technical value stream
  • Practices and mindset of a Professional Scrum Team
  • Scaled Professional Scrum (Nexus) framework
  • Identifying and eliminating dependencies
  • Minimizing dependencies through feature teams
  • Configuring VSTS for product development
  • Planning work at scale: epics, features, user stories
  • Product Backlog Refinement benefits and practices
  • Creating a definition of “Ready”
  • Types of dependencies and the related risks
  • Cross-team refinement to mitigate dependencies
  • Working in small batches and limiting WIP
  • Using VSTS to plan and execute a Sprint
  • Creating and abiding-by a definition of “Done”
  • Reporting data via queries, charts, and widgets
  • Using VSTS dashboards as information radiators
  • Collaborating as a cross-functional team
  • The collective ownership mindset
  • Git version control primer and workflows
  • Branching strategies and potential side effects
  • Visualizing and managing code dependencies
  • Adopting an internal open source model
  • Creating fast feedback loops
  • Automated testing in Visual Studio and VSTS
  • Writing and running unit tests in Visual Studio
  • Creating and managing automated builds in VSTS
  • Installing and configuring VSTS agents and pools
  • Queuing and monitoring automated builds
  • Running automated tests as part of a build
  • Collecting code coverage information
  • Using Test Impact Analysis to improve performance
  • Continuous Integration (CI) and CI+
  • Using VSTS Release Management (RM)
  • Using Microsoft Azure for DevOps
  • Automated deployment to an Azure Virtual Machine
  • Creating and deploying a release
  • Infrastructure as Code (IaC)
  • Creating and importing YAML builds
  • Automatic creation of deployment environments
  • Azure Resource Manager and ARM templates
  • Continuous Delivery (CD) and using RM triggers
  • Hypothesis-Driven Development (HDD)
  • Customizing VSTS to implement HDD
  • Using feature flags to manage feature availability
  • Telemetry and application performance management
  • Using feature flags to support A/B testing
  • Using LaunchDarkly and Application Insights for HDD
  • Exploratory testing, testing “tours” practice
  • Using the Microsoft Test and Feedback extension
  • Understanding, identifying, and avoiding technical debt
  • Using SonarQube to measure your technical debt
  • Building a culture of learning and improvement
  • Agile metrics and reporting
  • Communities of Practice (COPs)
  • Using the VSTS wiki to record learnings

Course Outline

  • Increasing Flow at Scale
  • Planning and Executing at Scale
  • Sharing Code
  • Integrating Continuously
  • Delivering Continuously
  • Empowering the Product Owner
  • Learning and Improving Continuously

Who Benefits

The course contains over 50 hands-on activities where students work as a team, a pair, or individually using the tools that reinforce the DevOps principles and practices they are learning. Students will self-organize into cross-functional, collocated teams and work collaboratively on a case study using shared VSTS and Azure environments. All code will be provided.

This course is intended for experienced software development professionals who want to learn about DevOps in order to achieve Continuous Integration, Continuous Delivery, Continuous Feedback, and Continuous Learning in a technical value stream as supported by Visual Studio Team Services, Visual Studio, and Azure in order to continually deliver working software at scale. Students will also install and evaluate several extensions from the VSTS Marketplace. Those who use the current version Team Foundation Server will also benefit from this course. Attendees should be familiar with Visual Studio, Scrum, and have basic experience with Visual Studio Team Services or Team Foundation Server.

Prerequisites

Team-based development experience required.