DevOps & CI/CD Fundamentals

Chapter 3
Agile Delivery and DevOps Workflow

Certificate in Cloud Computing
DevOps & CI/CD Fundamentals   •   Certificate

Agile Delivery and DevOps Workflow

Introduction

Modern software is delivered in an environment of changing customer needs, frequent security threats, cloud-based infrastructure, and strong pressure to release useful capabilities quickly. Traditional delivery approaches often separate analysis, development, testing, operations, and governance into sequential phases. This separation can create long feedback cycles, late defect discovery, hand-off delays, and uncertainty about whether delivered features create value.

Agile, Lean, Scrum, Kanban, Git-based collaboration, work tracking, and value-stream mapping provide complementary ways to address these problems. Agile supplies a set of values and principles for incremental delivery. Lean focuses on customer value, flow, and waste reduction. Scrum provides a timeboxed framework for planning and inspecting work. Kanban manages the continuous flow of work by limiting work in progress. Git supports controlled collaboration around source code and configuration. Work-tracking systems make commitments and progress visible, while value-stream mapping reveals delays across the complete delivery system.

DevOps extends these ideas across development and operations. Its central concern is not merely automation, but the creation of a reliable system in which teams can design, build, test, release, operate, and improve software together.

Learning Objectives

After completing this chapter, you should be able to:

  • explain the relationship among Agile, Lean, DevOps, Scrum, and Kanban;
  • describe how incremental delivery reduces technical and business risk;
  • apply a Git-based workflow to collaborative software development;
  • distinguish work items, acceptance criteria, definition of ready, and definition of done;
  • interpret basic flow metrics such as lead time, cycle time, throughput, and work in progress;
  • use value-stream mapping to identify delivery constraints;
  • recommend practical improvements to a small DevOps workflow.

1. Agile and Incremental Delivery

Agile is an approach to software development based on short feedback cycles, close stakeholder collaboration, adaptive planning, and delivery of working software. The Agile Manifesto values individuals and interactions, working software, customer collaboration, and responding to change. These values do not mean that documentation, processes, contracts, or plans are unimportant. Rather, they emphasize that such items should support delivery instead of becoming substitutes for it.

Incremental delivery divides a product into useful slices. Each slice adds capability that can be reviewed, tested, and potentially released. Iterative development improves the product through repeated learning cycles. The two ideas are related but distinct:

  • Incremental: the product grows by adding usable capabilities.
  • Iterative: existing capabilities are refined through repeated feedback.

A release does not necessarily need to contain every planned feature. A minimum viable product, or MVP, is a deliberately limited version used to test important assumptions with real users. An MVP is not an excuse for poor quality or unsafe operation; essential security, reliability, accessibility, and compliance requirements remain necessary.

Agile delivery reduces risk in several ways. Small batches make defects easier to isolate, frequent demonstrations expose misunderstandings early, and regular deployment provides evidence about operational behavior. However, Agile does not guarantee success. A team can deliver small increments efficiently while building the wrong product. Product discovery, user research, architecture, security, and ethical review must therefore accompany delivery.

2. Lean Thinking and DevOps

Lean thinking originated in manufacturing but has been adapted to knowledge work and software. Its central question is: which activities create value for the customer, and which activities consume capacity without improving the outcome?

Common forms of waste in software delivery include:

WasteSoftware example
Partially completed workFeatures started but not integrated or tested
Extra featuresFunctionality with no validated user need
RelearningRepeatedly searching for information that is not documented or visible
HandoffsWork transferred between teams with waiting and rework
DelaysWaiting for approval, environments, or test data
Task switchingDevelopers moving among many unrelated priorities
DefectsErrors requiring correction, rollback, or support
Manual repetitionRe-entering configuration or performing repetitive deployment steps

Lean does not mean simply working faster or reducing staff. It means improving the entire system of value delivery. Optimizing one department can harm the overall system. For example, a development team that maximizes the number of features it starts may overload testing and operations. Local efficiency can therefore produce global delay.

DevOps applies Lean principles to the complete path from idea to running service. It promotes small batches, automation, shared responsibility, fast feedback, and continuous improvement. A useful DevOps workflow connects product discovery, coding, testing, deployment, monitoring, and learning rather than treating deployment as the final event.

3. Scrum and Kanban

Scrum

Scrum is a lightweight framework for complex product development. Its accountabilities are commonly described as Product Owner, Scrum Master, and Developers. The Product Owner maximizes product value and orders the Product Backlog. Developers create the product increment and are accountable for producing a usable result. The Scrum Master helps the team understand Scrum, remove impediments, and improve its way of working.

Scrum events include Sprint Planning, the Daily Scrum, the Sprint Review, and the Sprint Retrospective. A Sprint is a fixed-length period, normally no longer than one month, during which the team creates a usable Increment. The Product Backlog is an ordered list of product work. The Sprint Backlog contains the selected work and the plan for achieving the Sprint Goal.

Three Scrum commitments are especially important:

  • Product Goal: the longer-term objective for the product.
  • Sprint Goal: the objective that gives coherence to a Sprint.
  • Definition of Done: the shared quality standard that work must satisfy to be considered complete.

Scrum is useful when a team benefits from a regular planning and review cadence. It can become ineffective when Sprints are treated as mini-waterfalls, when work is carried over routinely, or when the team measures success by activity instead of usable outcomes.

Kanban

Kanban is a strategy for optimizing the flow of value through a system. Work is visualized on a board, explicit policies define movement between states, and work-in-progress limits prevent excessive multitasking. A simple board might contain Ready, In Progress, Code Review, Testing, and Done columns.

Kanban does not require timeboxed Sprints or specific roles. It is often appropriate for operational teams, support work, maintenance, and environments where priorities change continuously. Scrum and Kanban can be combined, but the team must understand which rules it is actually following.

A work-in-progress limit is a deliberate constraint. If the Testing column has reached its limit, developers should help resolve testing bottlenecks rather than start more features. This creates a pull system: new work is pulled only when downstream capacity is available.

Comparing Scrum and Kanban

DimensionScrumKanban
Planning rhythmUsually Sprint-basedContinuous or demand-based
Primary controlSprint Goal and selected backlogFlow policies and WIP limits
RolesDefined accountabilitiesRoles are not prescribed
Change during cycleGenerally protected Sprint workPriorities may change when capacity exists
Useful metricsSprint outcome, forecast, product progressLead time, cycle time, throughput, WIP

Both approaches require transparency, inspection, and adaptation. Neither removes the need for technical quality or product judgment.

4. Git-Based Workflows

Git is a distributed version-control system. It records changes to files as commits and allows multiple people to work on related code. The repository is the managed collection of project history and files. A branch is a movable reference to a line of development. A commit is a recorded snapshot with an author, message, and parent history. A merge combines compatible histories; a pull request or merge request is a collaborative review mechanism built around proposed changes.

A practical Git workflow is:

  1. Select a tracked work item and clarify its acceptance criteria.
  2. Create a short-lived branch from the agreed base branch.
  3. Make a focused change and commit it with a meaningful message.
  4. Run local checks, including tests and static analysis where available.
  5. Push the branch and open a pull request.
  6. Obtain review and automated validation.
  7. Resolve comments and conflicts transparently.
  8. Merge using the team’s agreed policy.
  9. Build, test, and deploy through the CI/CD pipeline.

Teams may use trunk-based development, in which developers integrate small changes frequently into a protected main branch, or a feature-branch model with longer-lived branches. Long-lived branches often increase merge conflict and integration risk. Branching strategy should therefore reflect team size, release constraints, regulatory needs, and deployment capability rather than fashion.

Good commit history improves traceability. Commits should be small enough to understand, related to a work item where appropriate, and free from passwords, private keys, tokens, or personal data. Secrets belong in an approved secrets-management service, not in source control. Branch protection, mandatory reviews, signed commits where required, and automated checks support governance.

A pull request should not be a ceremonial approval step. Reviewers should consider correctness, security, maintainability, observability, test adequacy, accessibility, and operational impact. Automated checks are valuable, but they do not replace human judgment about user value and risk.

5. Work Tracking and Requirements

Work tracking makes demand, ownership, status, dependencies, and evidence visible. A work item may be an epic, feature, user story, task, defect, risk, or operational improvement. Hierarchies help relate strategic goals to deliverable work, but excessive decomposition can turn the tracking system into administrative overhead.

A user story describes a capability from a user or stakeholder perspective. A common form is: “As a [role], I want [capability], so that [benefit].” This is a communication aid, not a complete specification. Acceptance criteria state observable conditions that must be true for the item to be accepted.

The Definition of Ready is a team agreement describing when work is sufficiently understood to begin. It may include a clear outcome, identified dependencies, testable acceptance criteria, and known risks. The Definition of Done describes the quality conditions for completion, such as code review, automated tests, security checks, documentation, deployment readiness, and monitoring.

A useful work item should identify:

  • the customer or operational outcome;
  • acceptance criteria;
  • priority and relative value;
  • dependencies and assumptions;
  • risk or compliance implications;
  • the evidence required for acceptance.

Estimation is uncertain. Story points, ideal days, or size categories can support team discussion, but they do not measure customer value or individual productivity. A high number of completed points may indicate better estimation, smaller work, or merely changed estimation practices. Metrics should be used for learning, not for ranking individuals.

6. Flow Metrics and Little’s Law

Flow metrics help a team understand delivery behavior. Important terms include:

  • Lead time: elapsed time from a customer request or commitment to delivery.
  • Cycle time: elapsed time from active work beginning to completion.
  • Throughput: number of work items completed per unit of time.
  • Work in progress: items started but not yet completed.
  • Blocked time: time during which progress is prevented by an external constraint.

A useful relationship for a reasonably stable system is Little’s Law:

WIP = Throughput × Average Cycle Time

Here, WIP is the average number of items in the system, throughput is the average completion rate, and average cycle time is measured in the same time unit as the inverse of throughput. The relationship assumes a stable system over the period considered: items enter and leave at approximately similar long-run rates, and averages are meaningful. It is not a promise that every item will have the calculated cycle time.

For example, if a team has an average WIP of 12 items and completes 6 items per week, the implied average cycle time is:

Average Cycle Time = WIP ÷ Throughput = 12 items ÷ 6 items/week = 2 weeks

Reducing WIP while maintaining throughput tends to reduce average cycle time. Increasing the number of started items without increasing completion capacity usually increases waiting and context switching.

Metrics require careful interpretation. A falling cycle time accompanied by rising escaped defects may indicate that quality controls are being bypassed. Throughput may rise because work items have been divided into smaller pieces. Therefore teams should examine flow, quality, reliability, customer outcomes, and team sustainability together.

7. Value-Stream Mapping

A value stream is the sequence of activities and information flows needed to deliver a product or service. Value-stream mapping makes that sequence visible, including both processing time and waiting time. A software map may cover idea approval, backlog refinement, coding, review, build, testing, security validation, release approval, deployment, and production verification.

A basic mapping process is:

  1. Define the product, service, customer, and map boundaries.
  2. Select a representative work item.
  3. Observe the actual process rather than relying only on documented procedure.
  4. Record queues, handoffs, rework loops, dependencies, and approval points.
  5. Distinguish active processing from waiting.
  6. Identify the largest constraints and risks.
  7. Design a future state with fewer delays and clearer controls.
  8. Implement a small improvement and measure its effect.

Value-stream mapping should not be used to blame a team. Delays often arise from system design, policies, scarce environments, or conflicting objectives. A map is a shared diagnostic tool.

For example, a feature may require two hours of coding, one hour of testing, and thirty minutes of deployment, but wait four days for review and three days for an environment. The active work is a small fraction of elapsed delivery time. Automating a five-minute command may be less valuable than removing a multi-day approval queue, although safety-critical approvals may remain justified.

8. An Integrated DevOps Workflow

An integrated workflow connects customer need to operational feedback:

  1. Discover: understand user problems, business objectives, constraints, and risks.
  2. Plan: order a small, valuable slice and define acceptance evidence.
  3. Develop: create a branch, implement the change, and commit frequently.
  4. Verify: run unit, integration, security, performance, and relevant acceptance tests.
  5. Review: inspect code and evidence collaboratively.
  6. Package: create a reproducible build artifact.
  7. Release: promote the artifact through controlled environments.
  8. Deploy: use automation, feature flags, or progressive delivery where appropriate.
  9. Operate: monitor availability, performance, security, cost, and user experience.
  10. Learn: use feedback, incidents, and metrics to improve the product and workflow.

Continuous integration means developers integrate changes frequently and each integration is validated automatically. Continuous delivery means software is maintained in a releasable state through automated build, test, and deployment practices. Continuous deployment goes further by automatically releasing every change that passes the required controls. These terms are related but not interchangeable.

Pipeline controls should be proportionate to risk. A low-risk documentation change may need lightweight validation. A change affecting financial transactions or personal data may require stronger testing, segregation of duties, audit records, approval, and rollback capability. Automation should make compliant behavior easier, not conceal responsibility.

Illustrative Case: Improving a Cloud Service Delivery Flow

Background

This fictional case concerns CloudNotes, a small team operating a cloud-based document service. The team includes four developers, one tester, and a part-time operations specialist. It uses Git, a work-tracking platform, and a cloud CI/CD service.

Problem

CloudNotes releases approximately once every six weeks. Developers begin many features simultaneously. Code review takes two to five days, test environments are shared, and production defects are discovered after release. Stakeholders cannot easily see which work is blocked.

Analysis

A value-stream workshop follows three representative features. The team finds that active work averages 1.5 days, while waiting averages 11 days. The testing column frequently contains more items than the tester can process. Branches remain open for several weeks, causing merge conflicts. The workflow has no explicit Definition of Done, and monitoring is added inconsistently.

The team’s average WIP is 15 items and throughput is 5 items per week. Using Little’s Law, the implied average cycle time is:

15 items ÷ 5 items/week = 3 weeks

This calculation is consistent with the observed long cycle time, although it does not explain every individual delay.

Approach

The team adopts the following changes:

  • limit active development work to four items;
  • limit the testing column to two items;
  • use short-lived branches and pull requests;
  • require automated unit tests, security scanning, and deployment checks;
  • define acceptance criteria before development begins;
  • add monitoring and rollback steps to the Definition of Done;
  • deploy small changes to a staging environment daily;
  • review blocked work during a daily flow discussion;
  • conduct a retrospective after each release.

The Product Owner orders work by customer impact and risk rather than by the date requested. The operations specialist participates in refinement and review so that operational consequences are considered early.

Outcome

After eight weeks, the team reports more frequent integration, fewer large merge conflicts, and clearer visibility of blocked work. The team’s average WIP falls to 8 items while throughput remains approximately 5 items per week. The implied average cycle time becomes:

8 items ÷ 5 items/week = 1.6 weeks

The result is not proof that every item now takes 1.6 weeks, but it indicates improved average flow under the stability assumptions of Little’s Law. The team also observes that escaped defects initially increase slightly because previously hidden defects become visible through better measurement. Rather than suppressing the metric, the team improves test coverage and incident learning.

Learning Points

The case demonstrates that delivery improvement is systemic. Git practices alone would not solve the testing queue. WIP limits alone would not create quality. Better results emerge from combining small batches, visible work, automated validation, shared ownership, operational feedback, and continuous learning.

9. Challenges, Governance, and Responsible Practice

Agile and DevOps practices have limitations. Excessive emphasis on speed can create technical debt, burnout, unsafe releases, or exclusion of users with accessibility needs. Self-organizing teams still need clear accountability. Automation can reproduce an incorrect decision at high speed. A dashboard can encourage gaming if its measures are used as simplistic performance targets.

Governance should be risk-based and evidence-oriented. Important controls may include:

  • least-privilege access to repositories and cloud environments;
  • protection of secrets and personal data;
  • traceability from requirement to commit, build, deployment, and incident;
  • independent review for high-risk changes;
  • vulnerability management and dependency monitoring;
  • backup, rollback, and disaster-recovery procedures;
  • audit logs retained according to organizational and legal requirements;
  • accessibility, fairness, and privacy assessment where relevant.

Artificial intelligence can assist with code suggestions, test generation, log summarization, and work-item analysis. It can also produce insecure, inaccurate, copyrighted, or non-compliant output. AI-generated code must be reviewed, tested, scanned, and governed like other code. Teams should avoid sending confidential data or credentials to unapproved tools and should preserve human accountability for decisions.

Contemporary delivery practices include platform engineering, internal developer platforms, infrastructure as code, policy as code, observability, software supply-chain security, and progressive delivery. These practices should be adopted to solve identified problems. Tool adoption without workflow understanding often increases complexity rather than value.

Best-Practice Checklist

A small team beginning Agile and DevOps can start with the following practices:

  1. Define a clear customer or operational outcome.
  2. Break work into small, independently verifiable slices.
  3. Make work visible and limit work in progress.
  4. Keep branches short-lived and integrate frequently.
  5. Automate repeatable build, test, and deployment activities.
  6. Establish explicit acceptance criteria and a Definition of Done.
  7. Measure lead time, cycle time, throughput, WIP, quality, and reliability together.
  8. Map the value stream before choosing automation.
  9. Treat security, privacy, accessibility, and operations as part of delivery.
  10. Use retrospectives and evidence to improve the system continuously.

Chapter Summary

Agile enables adaptive, incremental delivery through short feedback cycles and close collaboration. Lean adds a focus on customer value, flow, queues, and waste reduction. Scrum organizes work around a Product Backlog, Sprint Goal, review, and retrospective, while Kanban emphasizes visualization, explicit policies, and work-in-progress limits. Git-based workflows provide traceable collaboration through branches, commits, reviews, and protected integration points. Work tracking connects outcomes to acceptance criteria, dependencies, and evidence. Flow metrics clarify delivery behavior, and Little’s Law relates average WIP, throughput, and cycle time in a stable system. Value-stream mapping exposes waiting, handoffs, rework, and constraints across the complete path to production. DevOps integrates these practices with automation, operations, monitoring, security, and continuous learning. Effective implementation requires technical discipline, responsible governance, and attention to customer and societal outcomes.

Key Terms

Agile: An adaptive approach emphasizing collaboration, working software, feedback, and response to change.

Incremental delivery: Building a product by adding usable capabilities in small slices.

Iterative development: Refining a product through repeated cycles of learning and improvement.

Lean: A management and improvement approach focused on value, flow, and waste reduction.

DevOps: A set of cultural, technical, and organizational practices connecting development and operations.

Scrum: A lightweight framework for complex product development using accountabilities, events, and commitments.

Kanban: A flow-management strategy using visualized work, explicit policies, and WIP limits.

Product Backlog: An ordered list of work needed to improve a product.

Sprint: A fixed-length period in Scrum for creating a usable Increment.

Definition of Done: Shared quality conditions required for work to be complete.

Git: A distributed version-control system for managing file history and collaboration.

Commit: A recorded set of changes in a version-control repository.

Pull request: A request for collaborative review and integration of proposed changes.

Continuous integration: Frequent integration of changes with automated validation.

Continuous delivery: Keeping software in a releasable state through automated practices.

Work in progress: Items started but not yet completed.

Throughput: The number of work items completed per unit of time.

Value-stream mapping: A method for visualizing activities, information, queues, and delays in delivery.

Little’s Law: In a stable flow system, average WIP equals throughput multiplied by average cycle time.

Progressive delivery: Releasing changes gradually using techniques such as feature flags or staged exposure.

Review Questions

Short Answer Questions

  1. What is the difference between incremental and iterative development?
  2. State two ways in which Lean thinking applies to software delivery.
  3. What is the purpose of a Definition of Done?
  4. Name three common flow metrics.
  5. Why should secrets not be stored in a Git repository?

Long Answer Questions

  1. Explain how Scrum and Kanban differ, and identify a situation in which each may be appropriate.
  2. Describe a practical Git-based workflow from selecting a work item to deployment.
  3. Explain how DevOps extends Agile and Lean across the software lifecycle.
  4. Describe the steps involved in creating a value-stream map.
  5. Discuss why delivery speed, quality, security, and operational reliability should be considered together.

Analytical / Application Questions

  1. A team has an average WIP of 20 items and throughput of 10 items per week. Use Little’s Law to calculate its implied average cycle time, and explain the assumption behind the calculation.
  2. A testing queue is growing while developers continue starting new features. What Kanban and Lean interventions would you recommend, and why?
  3. Design a Definition of Done for a small cloud API that includes technical quality, security, deployment, and operational requirements.

Multiple Choice Questions with Answers

Question 1

Which statement best describes incremental delivery?

A. Delivering the entire product only after all analysis is complete

B. Adding usable product capabilities in small slices

C. Repeating the same planning meeting throughout a project

D. Replacing testing with customer demonstrations

Correct Answer: B. Adding usable product capabilities in small slices

Question 2

What is the primary purpose of a work-in-progress limit in Kanban?

A. To increase the number of started tasks

B. To prevent all changes to priorities

C. To control multitasking and improve flow

D. To require fixed-length Sprints

Correct Answer: C. To control multitasking and improve flow

Question 3

Which Scrum commitment describes the quality conditions required for work to be considered complete?

A. Product Goal

B. Sprint Goal

C. Product Backlog

D. Definition of Done

Correct Answer: D. Definition of Done

Question 4

Which Git practice most directly supports collaborative review before integration?

A. Deleting the repository after every release

B. Opening a pull request for proposed changes

C. Storing credentials in commit messages

D. Keeping branches permanently separate

Correct Answer: B. Opening a pull request for proposed changes

Question 5

A team has average WIP of 12 items and throughput of 6 items per week. Under stable-flow assumptions, what is the implied average cycle time?

A. 0.5 week

B. 2 weeks

C. 6 weeks

D. 72 weeks

Correct Answer: B. 2 weeks

Question 6

Which activity is a central purpose of value-stream mapping?

A. Ranking developers by number of commits

B. Identifying queues, delays, handoffs, and rework

C. Replacing all governance controls with automation

D. Estimating individual employee productivity

Correct Answer: B. Identifying queues, delays, handoffs, and rework

Question 7

What distinguishes continuous deployment from continuous delivery?

A. Continuous deployment automatically releases qualifying changes to production

B. Continuous deployment excludes automated testing

C. Continuous delivery requires no version control

D. Continuous delivery always means manual coding

Correct Answer: A. Continuous deployment automatically releases qualifying changes to production

Question 8

Which item is most appropriate for a Definition of Done for a cloud service?

A. The developer believes the feature is finished

B. The feature has the largest possible number of commits

C. Required tests, security checks, monitoring, and review are complete

D. The feature has been assigned to at least three people

Correct Answer: C. Required tests, security checks, monitoring, and review are complete

Question 9

Why are long-lived feature branches often risky?

A. They make all commits impossible

B. They can increase merge conflicts and integration delay

C. They prevent developers from writing tests

D. They automatically expose secrets

Correct Answer: B. They can increase merge conflicts and integration delay

Question 10

Which statement about AI-generated code in a DevOps workflow is most responsible?

A. It can be merged without review because it is machine-generated

B. It should be reviewed, tested, scanned, and governed like other code

C. It should replace all security controls

D. It should be copied directly from public systems into production

Correct Answer: B. It should be reviewed, tested, scanned, and governed like other code

DevOps & CI/CD Fundamentals
Chapter 3 of 14