Domain 1: Design and Implement Processes and Communications
Exam Weight: 10–15% 📁 ← Back to Home
📑 Table of Contents
- 1.1 Design and Implement Traceability and Flow of Work
- 1.2 Design and Implement Appropriate Metrics and Queries
- 1.3 Configure Collaboration and Communication
1.1 Design and Implement Traceability and Flow of Work
GitHub Flow
GitHub Flow is a lightweight, branch-based workflow designed for teams that deploy regularly.
1
2
3
4
main ──────────────────────────────────────────────►
│ ▲
└── feature/my-feature ─────────┘
(PR → review → merge)
Steps:
- Create a branch from
main - Add commits to the branch
- Open a Pull Request (PR)
- Review and discuss the code
- Deploy from the branch for testing (optional)
- Merge into
main
⭐ Key distinction: GitHub Flow vs Git Flow:
- GitHub Flow: One long-lived branch (
main), deploy from feature branches. Simple, continuous delivery.- Git Flow: Multiple long-lived branches (
main,develop,release,hotfix). Suited for versioned releases.
Feedback Cycles
| Tool | Purpose |
|---|---|
| GitHub Issues | Track bugs, features, and tasks tied to code |
| GitHub Discussions | Community Q&A, announcements, open conversations |
| PR Comments / Reviews | Inline code feedback with mandatory approval gates |
| Azure Boards | Agile planning: epics, stories, tasks, sprints |
| GitHub Notifications | Email/web alerts for mentions, reviews, CI results |
Feedback cycle best practices:
- Set up required reviewers on protected branches
- Use CODEOWNERS file to auto-assign reviewers by directory
- Enable GitHub Actions to post status checks on PRs
- Configure notifications so teams are alerted on failures without noise
Integration for Tracking Work
Azure Boards
Azure Boards provides Agile, Scrum, and CMMI process templates.
| Work Item Type | Description |
|---|---|
| Epic | High-level goal spanning multiple sprints |
| Feature | Functionality within an epic |
| User Story / PBI | Deliverable unit of value |
| Task | Granular unit of work within a story |
| Bug | Defect tracked through the same pipeline |
Linking commits & PRs to work items:
1
2
3
# In commit message or PR title:
Fixes AB#1234
Resolves AB#5678
Azure Boards ↔ GitHub Integration
- Install the Azure Boards GitHub App from GitHub Marketplace
- Connect the Azure DevOps organization to the GitHub repository
- Use keywords in commits:
AB#<ID>to auto-link work items - Work item state transitions can be triggered by PR merges
GitHub Projects
- Project boards (Kanban-style): columns for To Do, In Progress, Done
- Project (new): spreadsheet + board views with custom fields, grouping, filtering
- Automatically move cards based on PR/issue events using automation rules
Source, Bug, and Quality Traceability
Traceability chain:
1
Requirement (Work Item) → Code (Branch/PR) → Build → Test Results → Deployment
| Traceability Type | How to Implement |
|---|---|
| Source traceability | Link commits/PRs to work items (AB#ID) |
| Bug traceability | Create bugs from failed test runs; link to build |
| Quality traceability | Test results attached to pipelines; code coverage gates |
1.2 Design and Implement Appropriate Metrics and Queries
Key DevOps Metrics (DORA Metrics)
The DORA (DevOps Research and Assessment) four key metrics:
| Metric | Definition | High Performer |
|---|---|---|
| Deployment Frequency | How often code is deployed to production | Multiple times/day |
| Lead Time for Changes | Time from commit to running in production | < 1 hour |
| Mean Time to Recovery (MTTR) | Time to restore service after incident | < 1 hour |
| Change Failure Rate | % of deployments causing incidents | 0–15% |
Flow Metrics (Cycle & Lead Time)
| Metric | Formula / Description |
|---|---|
| Cycle Time | Time from “work started” to “work done” |
| Lead Time | Time from “request created” to “delivered” |
| Throughput | Number of work items completed per period |
| Work In Progress (WIP) | Count of active items at any time |
| Flow Efficiency | Active time / total elapsed time |
⭐ Exam tip: Know the difference between Lead Time (entire value stream) and Cycle Time (active work only).
Azure DevOps Analytics & Dashboards
How to create a dashboard in Azure DevOps:
- Go to Overview → Dashboards → New Dashboard
- Add widgets: Burndown, Velocity, Cumulative Flow Diagram (CFD), Lead Time, Cycle Time
Key widgets: | Widget | Shows | |——–|——-| | Velocity | Work completed per sprint | | Burndown | Work remaining vs time | | Cumulative Flow Diagram | WIP and flow health | | Lead Time / Cycle Time | Distribution of delivery times | | Test Results Trend | Pass/fail rate over time | | Code Coverage | % of code covered by tests | | Deployment Frequency | Releases over time |
Metrics by Domain
Project Planning Metrics
- Sprint velocity (story points delivered per sprint)
- Epic/Feature completion percentage
- WIP limits — set in Azure Boards columns
Development Metrics
- Pull request turnaround time
- Code churn (lines added/removed)
- Number of active branches
Testing Metrics
- Test pass rate (overall and by suite)
- Flaky test rate (tests with inconsistent results)
- Code coverage percentage (line/branch coverage)
- Mean time to detect (MTTD) bugs
Security Metrics
- Open vulnerability count (by severity: Critical, High, Medium, Low)
- Mean time to remediate security findings
- Secrets scanning alert count
- Dependabot alert trends
Delivery Metrics
- Deployment frequency per environment
- Deployment success rate
- Rollback rate
Operations Metrics
- MTTR (Mean Time to Recovery)
- Service availability / uptime %
- Incident count by severity
- Change failure rate
1.3 Configure Collaboration and Communication
Wikis and Process Diagrams
Azure DevOps Wiki
- Project Wiki: Created per-project, stored in a Git repository
- Code Wiki: Publish any Git repo folder as a wiki
- Supports Markdown, tables, code blocks, images, attachments
Markdown tips for wikis:
1
2
3
4
5
6
7
8
9
10
# Heading 1
## Heading 2
**Bold**, *italic*, `inline code`
| Col A | Col B |
|-------|-------|
| val1 | val2 |
[Link text](./other-page.md)
Mermaid Syntax in Wikis
Azure DevOps and GitHub both support Mermaid diagrams natively in Markdown:
1
2
3
4
5
6
7
8
9
```mermaid
graph TD
A[Developer] --> B[Push Code]
B --> C{PR Review}
C -->|Approved| D[Merge to main]
C -->|Changes Requested| A
D --> E[CI/CD Pipeline]
E --> F[Deploy to Production]
```
sequenceDiagram
participant Dev as Developer
participant GH as GitHub
participant CI as Pipeline
Dev->>GH: Push to feature branch
GH->>CI: Trigger CI build
CI-->>GH: Post status check
Dev->>GH: Open Pull Request
GH->>Dev: Request review
Common diagram types:
| Type | Syntax | Use Case |
|——|——–|———-|
| Flowchart | graph TD | Process flows |
| Sequence | sequenceDiagram | API/service interactions |
| Gantt | gantt | Project timelines |
| Class | classDiagram | System design |
| State | stateDiagram-v2 | State machines |
Release Documentation
Release Notes Automation
Using GitHub Actions to auto-generate release notes:
1
2
3
4
5
6
- name: Create Release
uses: actions/create-release@v1
with:
tag_name: $
release_name: Release $
generate_release_notes: true # Auto-generates from PR titles & commits
Azure DevOps Release Notes:
- Use the Release Notes task in pipelines
- Query Azure Boards for work items associated with the build
- Use the
GitChangesAPI to list commits in a release
API Documentation
- Swagger/OpenAPI: Generate docs from code annotations
- Azure API Management (APIM): Auto-import OpenAPI specs, developer portal
- Tools: Swagger UI, Redoc, DocFX
Automating Documentation from Git History
Using git log for changelogs:
1
2
3
4
5
6
# Conventional commits format
git log --pretty=format:"- %s (%h)" v1.0.0..HEAD
# Output example:
# - feat: add user authentication (abc1234)
# - fix: resolve null reference in order service (def5678)
Conventional Commits standard:
1
2
3
<type>[optional scope]: <description>
Types: feat, fix, docs, style, refactor, test, chore, perf, ci
Tools that automate changelog generation:
standard-versionsemantic-releasegit-cliff- GitHub’s built-in release notes
Webhooks
Webhooks allow external services to be notified when events occur in GitHub or Azure DevOps.
GitHub Webhook events (common):
| Event | Trigger |
|——-|———|
| push | Code pushed to a branch |
| pull_request | PR opened, closed, merged, reviewed |
| issues | Issue created, closed, labelled |
| workflow_run | GitHub Actions workflow completed |
| release | Release published |
Configuring a webhook in GitHub:
- Repo → Settings → Webhooks → Add webhook
- Set Payload URL (your endpoint)
- Set Content type to
application/json - Choose events to trigger
- Set a Secret (HMAC SHA-256 for signature verification)
Azure DevOps Service Hooks:
- Navigate to Project Settings → Service Hooks
- Supports: Slack, Teams, Webhooks, Jenkins, Trello, and more
- Trigger on: build completed, release created, PR updated, work item changed
Azure Boards ↔ GitHub Integration
Setup steps:
- In Azure DevOps: Project Settings → GitHub Connections
- Authorize with GitHub OAuth or Personal Access Token
- Select repos to connect
Capabilities once connected:
- Link GitHub commits/PRs to Azure Boards work items using
AB#<ID> - View GitHub PR status in Azure Boards
- Auto-transition work items when PR is merged
Commit message linking examples:
1
2
git commit -m "Fix login bug AB#342"
git commit -m "Closes AB#199, implements AB#204"
GitHub / Azure DevOps ↔ Microsoft Teams Integration
GitHub + Teams
- Install GitHub app in Microsoft Teams
- Subscribe to events: PRs, issues, commits, releases, deployments
- Commands in Teams:
@github subscribe owner/repo
Azure DevOps + Teams
- Install Azure DevOps app in Microsoft Teams
- Configure subscriptions from Teams channel
- Get notified for: build failures, PR approvals, work item changes, releases
Teams notification setup (Azure DevOps):
- In Teams channel → Connectors → Azure DevOps
- Or use Project Settings → Service Hooks → Microsoft Teams
- Filter by event type, branch, pipeline, etc.
🧠 Key Exam Tips for Domain 1
| Scenario | Answer |
|---|---|
| Link a commit to an Azure Boards item | Use AB#<ID> in the commit message |
| Automatically visualize a process flow in a wiki | Use Mermaid syntax in Markdown |
| Track DORA metrics in Azure DevOps | Use the DORA Metrics widget or Analytics queries |
| Notify Teams when a pipeline fails | Use Service Hooks → Microsoft Teams connector |
| Auto-generate changelog from commits | Use Conventional Commits + semantic-release or GitHub release notes |
| Embed a Kanban board metric | Use the Cumulative Flow Diagram widget |