Course duration
- 2 days
Course Benefits
- Learn to increase flow at scale.
- Learn to plan and execute at scale.
- Learn to share code.
- Learn to integrate continuously.
- Learn to deliver continuously.
- Learn to empower the product owner.
Course Outline
- Increasing Flow at Scale
- The complexity of software development
- The need for empirical process control
- Increasing flow through a technical value stream
- Professional Scrum
- The Nexus scaled Scrum framework
- Practices for organizing teams
- Establishing feature teams to minimize dependencies
- Planning and Executing at Scale
- Organizing and refining the Product Backlog
- Creating a definition of “ready”
- Dependencies, types, and related risks
- Cross-team refinement to identify dependencies
- Planning and executing a Sprint
- Limiting work in progress (WIP)
- Working in small batches
- Creating and obeying a Definition of Done
- Using queries, charts, and dashboards for reporting
- Sharing Code
- Working collaboratively as a team
- Collective ownership mindset⎫Git version control workflow (optional)
- Branching strategies and related side effects
- Using Code Maps to visualize code dependencies⎫Using Package Management to share binaries
- Practicing internal open source (inner source)
- Integrating Continuously
- Why and how to create fast feedback loops
- The importance of automated testing
- Unit testing in Visual Studio
- Automated builds in Azure Pipelines
- Creating and customizing YAML-based builds
- Infrastructure as Code (IaC)
- Running tests during an automated build
- Code coverage and regression testing
- Configuring and using Test Impact Analysis
- Practicing Continuous Integration (CI) and CI+
- Delivering Continuously
- Azure Pipelines deployment
- Release definitions, stages, and releases
- Deployment targets, IaaS, PaaS, containers
- Using Microsoft Azure for DevOps
- Configuring service connections
- Automated deployment to an Azure App Service
- Release jobs, steps, and tasks
- Creating and deploying a release
- Release and stage triggers
- Practicing Continuous Delivery (CD)
- Empowering the Product Owner
- Build-Measure-Learn explained
- Hypothesis-Driven Development (HDD)
- Customizing Azure DevOps to implement HDD
- Feature flags overview
- Using LaunchDarkly to manage feature flags
- Telemetry and application performance management
- Using Application Insights to gather telemetry
- A/B testing explained
- Using feature flags to support A/B testing
- Exploratory testing and taking testing “tours”
- Using the Microsoft Test and Feedback extension
- Understanding and identifying technical debt
- Using SonarCloud to gauge your technical debt
- Making technical debt transparent
- Practices for paying off technical debt
- Learning and Improving Continuously
- Working and learning as a team
- Patterns of effective collaboration
- Pairing, swarming, and mobbing practices
- Building a culture of learning and improvement
- Blameless retrospectives
- Building feedback directly into the product
- Communities of Practice (COPs)
- Tracking improvement through agile metrics
- Using the wiki to build tribal knowledge
Class Materials
Each student will receive a comprehensive set of materials, including course notes and all the class examples.
Experience in the following is required for this Azure DevOps Services class:
- Team-based development experience.
- Familiarity with Visual Studio and Scrum and have basic experience with Azure DevOps Services, Visual Studio Team Services, or Team Foundation Server.
Instructor-led courses are offered via a live Web connection, at client sites throughout Europe, and at our Geneva Training Center.