Continuous Delivery Using Azure DevOps Services
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.
Course Objectives
By the end of the course, students will have had exposure and hands-on experience with the following …
DevOps principles, benefits, and related practices
The Three Ways: flow, feedback, and learning
Technical excellence at scale
Working as a team in an Azure DevOps 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 Azure DevOps 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 Azure Boards to plan and execute a Sprint
Creating and abiding-by a definition of “Done”
Reporting data via queries, charts, and widgets
Installing and using the Analytics extension and widgets
Using dashboards as information radiators
Collaborating as a cross-functional team
The collective ownership mindset
Git version control primer and workflows
Visualizing and managing code dependencies
Adopting an internal open source model
Creating fast feedback loops
Automated testing in Visual Studio and Azure Pipelines
Writing and running unit tests in Visual Studio
Creating and managing Azure Pipeline builds
Installing and configuring Azure Pipeline agents
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 Azure Pipelines for deployment
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 Azure DevOps 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/SonarCloud to gauge technical debt
Building a culture of learning and improvement
Agile metrics and reporting
Communities of Practice (COPs)
Recording learnings in the wiki for transparency
Who should take this class?
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 Azure DevOps Services, Visual Studio, and Azure in order to continually deliver working software at scale. Students will also install and utilize several extensions from the Azure DevOps Marketplace. Teams using Azure DevOps Server (Team Foundation Server) will also benefit from this course. Attendees should be familiar with C#, Visual Studio, Scrum, and have basic experience with Azure DevOps Services or Azure DevOps Server.
Case Study
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 a shared Azure DevOps environment. All code will be provided.