Course Taxonomy: Enterprise & Product Agility

Professional Scrum Master (PSM)

Training Agenda:

  • Introductions
  • Theory & First Principles
  • The Scrum Framework
  • Product Delivery with Scrum
  • People & Teams
  • The Scrum Master
  • Closing

Azure DevOps for Teams

Part 1: Getting Started

  1. Introductions
  2. Course Goal
  3. Team Agreement

Part 2: Azure DevOps Overview

  1. Hierarchy
  2. List
  3. Board
  4. Backlog
  5. Work items

Part 3: Agile & Scrum Review

  1. Manifesto
  2. Principle
  3. Scrum Overview

Part 4: Accessing Azure DevOps

  1. Login
  2. Navigation

Part 5: Managing Iterations

  1. Configure the time box iteration
  2. Setting interaction goal
  3. Configure Team Capacity

Part 6: Backlog Hierarchy

  1. Product backlog
  2. Attributes
  3. Epics, Feature, Stories
  4. Managing Work Item
  5. Adding Stories
  6. Link Epics to Feature to Stories to Tasks
  7. Prioritization guide line
  8. Adding Priority
  9. Estimating Guidelines
  10. Add Estimates
  11. Task Breakdown
  12. Adding Task
  13. Adding PBI’s to Iterations
  14. Blocking Tasks
  15. Kanban Overview

Part 7: Queries

  1. Creating Queries
  2. Running Queries

Part 8: Wikis

  1. Creating
  2. Editing

Part 9: Dashboards

  1. Configure Widgets
  2. Creating the Dashboard

Managing AWS Infrastructure with Terraform

Part 1: Infrastructure as Code

In this section, we will introduce the benefits that Infrastructure as Code (IaC) can bring to organizations and how IaC fits within modern DevOps best practices.

  • Motivation for Infrastructure as Code
  • Applying Infrastructure as Code in DevOps
  • Infrastructure as Code principles and best practices
  • Benefits of Infrastructure as Code
  • The case for Terraform

Part 2: Terraform Overview

This section provides an overview of Terraform concepts and vocabulary and instructs how Terraform manages infrastructure configuration in cloud environments.

  • Terraform architecture
  • Terraform configuration language overview
  • Terraform CLI
  • The lifecycle of a configuration
  • Managing configuration state

Hands-on Labs:

  • Using the Terraform CLI
  • Setting up a Terraform project

Part 3: AWS Resources

In this section, participants will get hands-on practice using Terraform to create a simple application environment in AWS and learn the essential constructs in Terraform for defining resources.

  • Resource types
  • Best practices in declaring resources
  • Network resources (VPC, subnet, security group)
  • Compute resources (virtual machine)
  • Storage resources (database)
  • Local values in a configuration
  • Augmenting a configuration with data sources

Hands-on Labs:

  • Creating a VPC and subnets
  • Adding a virtual machine into your VPC
  • Adding a database to your VPC
  • Using locals for replicated values
  • Using a data source to read external configuration

Part 4: Terraform Programming

This section introduces programming constructs within Terraform that enable you to add more control and flexibility in defining resources.

  • Data structures (primitives, maps, lists, objects, etc.)
  • Types of expressions to set values
  • Creating multiples of a resource
  • Dynamic blocks
  • Parameterizing a configuration with variables
  • Outputs from a configuration
  • Functions
  • Handling errors

Hands-on Labs:

  • Using variables in a configuration
  • Getting outputs from a configuration
  • Creating a re-sizable cluster of virtual machines
  • Creating multiple resources through iteration loops
  • Leveraging functions in your code

Part 5: Modules

This section shows how modules can be used to create reusable components in Terraform and teaches best practices in organizing Terraform code.

  • Purpose of modules
  • Module structure and code organization
  • Invoking modules
  • Module sources and versioning
  • Nested modules
  • Publishing modules

Hands-on Labs:

  • Using an external module in your configuration
  • Refactoring your code to implement a module

Part 6: Wrapping Up

This section wraps up the course with reviews to reinforce what you have learned.

  • Reference material to learn more
  • Course review
  • Next steps

Deploying and Automating Infrastructure at Scale

Part 1 – Infrastructure Platform: AWS Cloud

  1. Installing and using the AWS CLI (Command Line Interface)
  2. AWS Networking
  3. VPC’s (Virtual Private Clouds)
  4. Subnets
  5. Internet Gateways
  6. Route Tables
  7. Route Table Associations
  8. Creating AWS Networking Components
  9. Launching VMs in AWS Cloud

Part 2 – Git: Source Control Management: GitHub

  1. This course doesn’t teach the basics of git. Git experience is assumed (see the ‘DevOps Pipeline’ course if your team needs basic git knowledge)

Part 3 – Infrastructure Deployment: Terraform

  1. Intro to Terraform
  2. Creating cloud buckets for storage
  3. Separating code: Multiple Terraform configuration files
  4. Storing state remotely
  5. Git branching
  6. Displaying resource outputs
  7. Creating cloud networking components with Terraform
  8. Configuring cloud Security groups
  9. Using SSH Public/Private Keys with Terraform
  10. Launching and Destroying cloud VM instances with Terraform
  11. Creating reusable code with modules
  12. Using Terraform variables

Part 4 – Configuration Management: Terraform with Ansible

  1. Ansible Provisioners in Terraform
  2. Integrating Terraform-managed instances with Ansible Control Nodes
  3. Launching multi-tiered architectures (web servers and load balancers) with Terraform and Ansible

Part 5 – Notifications: Slack

  1. Integrating CI/CD with Slack
  2. Using Slack for CI/CD approvals and notifications

Part 6 – Containerization: Docker

  1. Purpose and use case for Docker
  2. Docker Hub
  3. Basic Docker commands
  4. Docker Networking
  5. Launching and debugging NGINX containers
  6. Mounting Volumes to containers
  7. Docker mount points: Multiple containers, one shared code location
  8. Launching Docker hosts and Docker containers automatically
  9. Port mapping with containers
  10. Launching multi-tiered architectures (web servers and load balancers): an automated approach
  11. Customizing containers with Docker Hub and Dockerfiles
  12. Reducing infrastructure bloat: Buster-Slim Docker containers

Part 7 – Managed OS: Linux Only

  1. Management of Linux Servers only

Part 8 – Container Management: Kubernetes (Optional)

  1. Kubernetes (K8S) overview and use case
  2. K8S architecture
  3. Installation and configuration
  4. Master and node server components
  5. Creating K8S load-balanced clusters
  6. Deploying Apps with K8S
  7. Scaling Apps
  8. K8S monitoring and App repair
  9. Updating Apps with K8S

Implementing Azure DevOps Pipelines

Part 1: Course Introduction

  1. Azure Repos-Chef-Azure Pipelines: A DevOps Pipeline
  2. Course Purpose
  3. Agenda
  4. Introductions
  5. Lab Environments

Part 2: Technology Overview

  1. Git – Source Control Management
  2. Chef – Configuration Management
  3. Azure Pipelines – Continuous Integration
  4. An End-To-End CI/CD (Continuous Integration/Continuous Deployment) Pipeline

Part 3: Git/Azure Repos – Source Control Management

  1. Git purpose and Workflow
  2. Git configuration
  3. Getting help with git
  4. Basic git commands
  5. Remote, status, add, commit, push, log, diff
  6. Creating and checking out branches
  7. Creating a repository in Azure Repo
  8. Accessing a private repository with SSH keys
  9. Pull requests
  10. Merging and deleting branches

Part 4: Chef – Configuration Management

  1. Chef purpose and use cases
  2. Chef basics: Resources, recipes, and cookbooks
  3. Chef policy files
  4. Integration testing with Inspec and Test kitchen
  5. Chef variables: Attributes and Ohai
  6. Dynamic file creation with templates
  7. Using Chef Supermarket and community cookbooks
  8. Wrapper cookbooks
  9. Automating infrastructure with Chef Search
  10. Centralized management with Chef Infra Server
  11. Automating Chef convergence
  12. Managing nodes with policy groups

Part 5: Azure Pipelines

  1. CI/CD = Continuous Integration / Continuous Deployment
  2. Purpose
  3. Projects
  4. Jobs
  5. YAML scripting – CI/CD as Code
  6. Managing credentials and secret files
  7. Integrating with Source Control Management: Azure Repos
  8. Triggers: Scheduled Polling and Webhooks
  9. Automated cookbook linting: Foodcritic and Cookstyle
  10. Automated cookbook testing with Test Kitchen
  11. Azure Pipelines Integration with Chef Server
  12. Creating Separate Build and Release Pipelines
  13. Continuous Deployment of Chef cookbooks with Azure Pipelines

Product Discovery and Delivery

Part 1: Product Agility and Product Ownership

  1. Expectations, curiosities, and the selection of product idea for the course
  2. Product ownership
  3. What is it?
  4. What’s in it for you?
  5. Why work this way? How did we get here?
  6. Steering the bus
  7. Visibility, control, flexibility, and maneuverability
  8. Getting buy in

Part 2: Product Over Progress

  1. Traditional, agile, and product-centered processes overview
  2. Product centered thinking and principles (blending discovery & delivery)
  3. Avoid being overly certain
  4. Validate ideas early and fast
  5. Develop customer insights
  6. Practice product-driven architecture
  7. Embrace responsive engineering
  8. Building product communities, product owners, users, and markets

Part 3: Early Product Discovery

  1. Framing design targets and your guess at their needs
  2. Introduction to story mapping, story splitting, and customer journeys
  3. Pragmatic sketching, prototyping, and other tools for early validation
  4. Stories, acceptance tests, and learning from building

Part 4: Roadmaps and Planning

  1. Making product choices
  2. Iteratively delivering value
  3. Sizing and planning across iterations

Part 5: Blending Product Discovery with Product Delivery

  1. Establishing a sustainable discovery cadence
  2. Establishing a blended cadence
  3. Constraints
  4. Adjusting to delivery constraints
  5. Blending with operations and support
  6. Losing “product” in delivery tools
  7. Investing in analytics

Part 6: Measuring Product Impact

The Art of Product Management

Part 1: Aligning product strategy to corporate strategy

  1. Importance of knowing the corporate strategy and not just thinking you do
  2. Top-down definition of product strategy that supports and clarifies company direction

Part 2: Market research and validation

  1. Define the target market and the opportunity
  2. Growth in your current market
  3. Growth by identifying and executing in other market segments

Part 3: The other "M" in "PM": Marketing

  1. A product that can’t tell its story is unfound
  2. Product Marketing and Messaging
  3. Marketing deliverable stories
  4. Write a press release for your proposed release – before you start

Part 4: Creating roadmaps authored for the audience

  1. Thematic business strategy roadmap
  2. Partner and distribution roadmap
  3. Product feature roadmap
  4. Business product strategy

Part 5: Delivering customer value not just features

  1. Alignment of training – what have they learned, how do they train
  2. Alignment with marketing – what should they update, how do they message
  3. Alignment with sales – enable them, what are they pitching

Part 6: How to tell the market your story

  1. What business metrics a product manager should be tracking and why no one else is
  2. How to work with influencers to gain reputable, 3rd party validation
  3. The power of customer testimonials and how that starts with involving them during discovery and delivery
  4. Pricing strategies and what to consider when balancing short-term and long-term revenue

Part 7: Monitoring the value of the product

  1. Churn
  2. CAC
  3. NPS
  4. Know the counter effects of metrics
  5. Know your customer type and their limitations on providing feedback

Scaled Agile | Certified SAFe® Agile Product Manager (APM)

  • Analyzing your Role as a Product Manager in the Lean Enterprise
  • Continuously Exploring Markets and Users
  • Driving Strategy with Market Segmentation
  • Using Empathy to Drive Design
  • Defining Product Strategy and Vision
  • Creating Roadmaps to Build Solutions
  • Delivering Value
  • Managing Value Stream Economics
  • Creating Innovation in the Value Stream

Agile Boot Camp for Non-Software Work: ICP Fundamentals Certification

Part 1: Why Agile? The Case for Change

Businesses have historically been plagued by many problems, including inadequate requirements, which lead to products that customers aren’t happy with and sometimes can’t use. We start the class by making the case for a shift to an Agile approach to solve the problems and to gain an overall understanding of the basic principles, and benefits of Agile approaches.

Team Exercise: As a class we will discuss the various problems that the class has experienced in their own projects so that we can then understand how Agile will help them address these problems. The class will understand from this exercise that they are not alone with a set of problems that others also experience.

Part 2: Becoming Agile

We will understand the Agile Manifesto and Principles. We first visit Lean which is foundational and influences all other Agile methodologies. Then we will have an overview of Scrum. Scrum is the most popular Agile methodology and is great for projects. Scrum or Scrum variants are being used by about 75% of those using Agile, but Scrum is not the only Agile approach. We’ll then see how Kanban might be a better answer for other types work (e.g. operations and sustainment).

Review Agile methodologies practiced in organizations today (e.g. Scrum, Kanban).

  • Agile Mental Models
  • Agile Manifesto
  • Agile Principles
  • Agile Practices

Team Exercise: Teams will engage in a fun exercise that will reinforce the importance of, and power behind, self-organizing teams. As with sports teams, individual roles are important, but even more important is the need to work toward a common goal together. At times that means blurring the lines of traditional roles. Great teams will not define themselves by their individual roles.

Part 3: Building an Agile Team

Agile focuses on creating a team that can deliver results over and over. In this section we will discuss what makes a high-performing team and how to build that team. The section will also cover the team roles associated with an Agile approach.

Team Exercise: We will discuss as a class what makes a great team based on teams we've participated on that were great.

Part 4: Delivery with Scrum

In this section, we will review the Scrum framework and the various Scrum techniques. Scrum provides a great framework for building new products, especially when all the requirements are not known. Scrum techniques can also be used with other Agile methods like Kanban.

Agile Project Planning

  • Vision
  • Roadmap
  • User Roles and Personas

Team Exercise: Teams will practice turning User Roles into full fleshed personas.

Part 5: Backlog Planning

  • Writing User Stories
  • Prioritization
  • Estimating

Team Exercise: Each team will conduct a brainstorming session for creating a product backlog in the form of user stories. Each team will present some of their user stories and the instructor will lead discussion about where teams hit the mark and areas for improvement (Instructor will not have all of the ideas, this is a great opportunity for team dynamic).

Part 6: Iteration Execution

  •  The Daily Scrum
  •  Story Review
  •  Visual Management
  •  Agile Metrics

 

Part 7: Inspect and Adapt

The power of Agile comes from the fact that continuous improvement is built into the Agile system. In this section we will review how People, Product and Process improve themselves through a frequent inspect and adapt process. We will discuss the main Agile ceremonies that help us accomplish this: Iteration Review/Demo and the Retrospective.

  • The Iteration Review
  • The Demo
  • The Retrospective

Team Exercise: Teams will discuss what things they can do the day after class ends to take what they've learned and implement it immediately so that they don't lose what they've learned.

Part 8: Kanban Overview and Concepts

Not all work fits well into a Scrum framework. Kanban is an Agile method that helps us to improve a delivery process with a focus on continuous improvement. We will cover the foundation of Kanban concepts, properties, and terminology. We will also understand the philosophy behind the Kanban framework and how it originated.

Topics covered:

  • Kanban's 5 Core Properties
  • Kanban Emergent Behaviors
  • Kanban concepts, principles, and terminology

Part 9: Implementing Kanban

The best way to understand Kanban is to go through the process of implementing it. This section goes through the various techniques and ceremonies associated with Kanban.

Topics covered:

  • Visualization of Work
  • Work Item Types, Card Walls
  • Workflow, Queues and Buffers
  • Cadences, Work-in-Progress
  • Bottlenecks, Issues and Blocked Items

Team Exercise: Kanban boards are an invaluable communication tool. Each team is tasked with coming up with their board that clearly communicates their commitments and progress against those commitments.

Part 10: Kanban Metrics and Reporting

Kanban uses metrics a little differently than other Agile methods. In this section we will understand how metrics and reporting are leveraged with Kanban.

Topics covered:

  • Tracking Work-in-Process, Cumulative Flow Diagrams
  • Lead Time, Trends, Throughput

Part 11: Scaling Kanban

Applying Kanban techniques to other types of efforts. How to track requirements, decouple work, and leverage the Minimal Marketable Release.

Topics covered:

  • Scaling Kanban for different size efforts
  • Minimal Marketable Release
  • Two-Tiered Card Walls

Part 12: Kanban Improvements

Learn how to recognize opportunities for improvement in your Kanban system and what to do about them.

Topics covered:

  • Three types of Improvement Opportunities
  • Estimations, Class of Service
  • Service Level Agreements, Policies

Team Exercise: Teams will build a cadence calendar to use with their teams to organize work, share learnings, and build a focus on continuous improvement.

Part 13: Agile Adoption

Agile Adoption can be accomplished with different approaches and at different speeds. In this section, we will review the best practices of Organizational Change Management as it applies to Agile adoption and considers the primary reasons for adoption failure. 

Topics covered:

  • Kaizen Culture and Mindset
  • Agile Leadership
  • Kotter's Model
  • Continuous improvement culture

Team Exercise: We will wrap the course up and end with a discussion on “Where do you go from here?”.

Certified SAFe® Release Train Engineer (RTE)

Part 1: Exploring the Release Train Engineer (RTE) role and responsibilities

Part 2: Applying SAFe Principles

  • Organizing the Agile Release Train (ART)

Part 3: Planning a Program Increment (PI Planning)

Part 4: Executing a Program Increment

Part 5: Fostering Relentless Improvement

Part 6: Serving the Agile Release Train (ART)

Part 7: Continuing Your Learning Journey