Agile & Scrum Methodologies

Chapter 9
Agile Engineering for Full-Stack Delivery

Bachelors Program in Full Stack Development
Agile & Scrum Methodologies   •   Bachelor

Agile Engineering for Full-Stack Delivery

Introduction

Scrum provides a framework for organizing work, inspecting outcomes and adapting plans. It does not, however, prescribe the engineering practices required to transform a Product Backlog Item into dependable running software. A team may conduct every Scrum event correctly and still release slowly or unreliably if integration is delayed, testing is manual, infrastructure is inconsistent, security is postponed or “done” work lacks objective evidence.

Agile engineering closes this gap. It integrates short feedback cycles with version control, collaborative code review, automated testing, refactoring, technical-debt management, continuous integration and delivery, DevOps, infrastructure automation, observability and security. The resulting system is not merely a process for writing code; it is a sociotechnical delivery capability spanning people, software, infrastructure, controls and operational feedback.

For full-stack teams, this integration is especially important because a single feature may change a browser interface, API, database schema, cloud resource, monitoring rule and security policy. These elements must evolve together while preserving deployability and service reliability.

Learning Objectives

After studying this chapter, students should be able to:

  1. Integrate Scrum events and artifacts with modern engineering workflows.
  2. apply version-control and code-review practices that reduce integration risk;
  3. design an automated testing strategy for full-stack systems;
  4. distinguish refactoring from feature development and manage technical debt explicitly;
  5. explain CI/CD, DevOps and infrastructure-as-code practices;
  6. use observability and delivery metrics without turning them into harmful performance targets;
  7. incorporate security, privacy and compliance into iterative development;
  8. formulate a dependable, evidence-based Definition of Done; and
  9. evaluate an end-to-end delivery system through a practical case.

1. Scrum as an Engineering Feedback System

A Sprint is a bounded learning cycle. Developers select work through Sprint Planning, coordinate daily, inspect the Increment during the Sprint Review and improve their working system during the Sprint Retrospective. Engineering feedback operates within and across these events:

  • Version control records and integrates change.
  • Code review provides social and technical inspection.
  • Automated tests detect behavioral regressions.
  • Continuous integration (CI) validates combined work frequently.
  • Continuous delivery or deployment (CD) makes releases repeatable.
  • Observability reveals behavior in realistic environments.
  • Operational and customer evidence informs backlog refinement.
Scrum-integrated full-stack engineering feedback loop ProductBacklog Design andCode Review, Testand CI Deploy andRelease Observe andLearn Operational and customer evidence refines priorities and engineering practices One Increment, multiple rapid feedback mechanisms
Scrum-integrated full-stack engineering feedback loop
Figure: Scrum-integrated full-stack engineering feedback loop

Figure: Engineering feedback connects backlog decisions to production evidence.

The Increment should therefore be understood as an integrated, usable outcome—not merely a collection of completed programming tasks. Scrum’s transparency depends on technical evidence. If an item is described as done while tests are failing or deployment remains unproven, inspection is based on an inaccurate representation of progress.

2. Version Control and Integration Discipline

2.1 Commits and repositories

A version-control repository should contain all artifacts needed to reproduce and understand a change, subject to security constraints. These may include application code, tests, database migrations, dependency manifests, infrastructure definitions, configuration templates and operational documentation. Secrets must not be committed; references to protected secret stores should be used instead.

Effective commits are:

  • small enough to review and revert safely;
  • internally coherent;
  • associated with a backlog item or defect where useful;
  • accompanied by tests when behavior changes; and
  • described by messages that explain intent rather than merely listing files.

2.2 Branching strategies

Trunk-based development keeps branches short-lived and integrates changes into a shared mainline frequently. Incomplete behavior can be isolated through feature flags or branch-by-abstraction. This strategy supports CI because differences remain small.

Feature branching isolates work on dedicated branches. It can help with experimentation or governed review, but long-lived branches accumulate integration risk. Release branches may be justified when several supported product versions require independent patches, although they increase maintenance cost.

A branch’s divergence cannot be measured by subtracting commit sets or by comparing commit counts alone. Let Cb be the set of commits reachable from the branch tip and Cm the set reachable from the mainline tip. Assuming both tips belong to related histories:

A = |Cb \ Cm|, B = |Cm \ Cb|, D = |Cb △ Cm| = A + B

Here, A is the branch’s ahead count, B is its behind count, △ denotes symmetric difference and D is the total number of commits reachable from exactly one tip. These are counts of commits, so they are dimensionless. The measure describes history divergence, not code size or merge difficulty. A single commit may contain a large change, while many commits may be trivial. Rebasing or history rewriting can also change commit identities without equivalent changes in content.

Worked example. Suppose the branch has five commits not reachable from mainline, while mainline has three commits not reachable from the branch. Then A = 5, B = 3 and:

D = 5 + 3 = 8 commits

Equal total commit counts on two tips would not imply zero divergence: the tips could still contain different commits.

2.3 Merge and pull-request policy

A pull or merge request is a quality control point, not a substitute for collaboration. A sound policy normally requires:

  1. a clear problem statement and bounded change;
  2. successful automated checks;
  3. review by someone able to assess the affected area;
  4. resolution of material comments;
  5. current integration with the target branch; and
  6. auditable approval where risk or regulation requires it.

Very large reviews impose cognitive load and delay feedback. Teams should split work vertically where possible: a thin end-to-end capability is usually more valuable than separate large frontend, backend and database branches.

3. Collaborative Code Review

Code review pursues defect detection, maintainability, knowledge sharing and conformance to architecture or policy. Reviewers should assess behavior, not only formatting. Automated formatters and linters should handle mechanically verifiable rules.

A full-stack review may ask:

  • Does the implementation satisfy acceptance criteria?
  • Are API contracts and error responses stable?
  • Is input validated at the trust boundary?
  • Are authorization checks performed server-side?
  • Is the database migration compatible with currently running versions?
  • Are tests meaningful and deterministic?
  • Are logs free of passwords, tokens and unnecessary personal data?
  • Can the change be monitored, rolled back or disabled?

Review comments should distinguish blocking defects from suggestions. Respectful, evidence-based language supports psychological safety. Pair or mob programming can provide continuous review for complex work, but automated checks and traceable decisions may still be required.

4. Automated Testing Across the Full Stack

Testing supplies information about quality; it cannot prove the absence of all defects. An effective strategy combines tests with different scopes, speeds and failure-diagnostic properties.

Test levelTypical subjectStrengthCommon limitation
UnitFunction, class or componentFast and preciseMay miss integration faults
Component/serviceAPI or service with controlled dependenciesTests meaningful behaviorRequires realistic interfaces
ContractConsumer-provider expectationsDetects incompatible API evolutionDoes not prove complete workflows
IntegrationDatabase, queue or external adapterExposes boundary faultsSlower and harder to isolate
End-to-endUser journey through deployed systemHigh workflow realismSlow, brittle and expensive
SecurityDependencies, code, runtime or attack behaviorFinds classes of vulnerabilityTools produce false positives and gaps
PerformanceLatency, throughput and resource behaviorReveals capacity risksResults depend on realistic workload and environment

The traditional test pyramid recommends many fast, isolated tests and fewer expensive end-to-end tests. It is a heuristic, not a universal numerical ratio. Modern frontend systems may also use a “testing trophy,” emphasizing integration tests because they provide confidence at component boundaries. The appropriate portfolio depends on architecture, risk and feedback time.

4.1 Test design and pipeline placement

Tests should be deterministic, isolated where appropriate and explicit about expected outcomes. Test data must avoid unauthorized use of real personal information. Flaky tests—tests that alternate between passing and failing without a relevant code change—erode trust and must be diagnosed rather than repeatedly retried without investigation.

A practical pipeline places fast checks early:

  1. formatting, linting and secret detection;
  2. unit and component tests;
  3. build and package verification;
  4. dependency and static security analysis;
  5. integration and contract tests;
  6. deployment to a production-like environment;
  7. smoke, end-to-end, dynamic security or performance tests as justified.

Code coverage measures execution during tests, not test quality. High coverage can coexist with weak assertions or missing boundary cases. Coverage is best treated as a diagnostic signal rather than a universal target.

4.2 Full-stack compatibility

Database changes require special care because old and new application versions may run concurrently during rolling deployment. An expand–migrate–contract approach first adds a backward-compatible structure, then migrates data and application behavior, and only later removes the obsolete structure. Destructive schema changes should not precede deployment of code that no longer depends on the removed field.

Consumer-driven contract tests can verify that a backend change remains compatible with known frontend or service expectations. They complement, rather than replace, integration and end-to-end tests.

5. Refactoring and Technical Debt

Refactoring changes the internal structure of software without intentionally changing its externally observable behavior. Automated tests provide a safety net, while small transformations make failures easier to localize. Examples include extracting a method, simplifying conditional logic, removing duplication or clarifying module boundaries.

Not every structural change is refactoring. Replacing an API contract, adding a capability or changing output behavior is feature or architectural work and should be planned accordingly.

Technical debt is the future cost and constraint created by expedient or deficient technical decisions. Debt may be deliberate—for example, accepting a temporary manual deployment to meet an urgent experiment—or accidental, such as poor modularity caused by insufficient knowledge. The metaphor is useful only if teams identify the concrete consequence: slower changes, more incidents, security exposure or excessive operational effort.

A debt register can record:

FieldPurpose
Location and decisionIdentifies the affected system and cause
ConsequenceExplains current or expected harm
EvidenceIncidents, delays, defects or measurements
RiskLikelihood and impact of harm
RemediationDescribes feasible corrective work
Trigger or review datePrevents indefinite neglect
OwnerEnsures stewardship, not personal blame

Debt should enter the Product Backlog when it competes for capacity or changes product risk. Teams can address it continuously through a “boy scout” practice, reserve explicit capacity, or create targeted backlog items. No universal percentage of a Sprint should be prescribed. Prioritization should consider product value, risk reduction, urgency and the cost of delay.

6. Continuous Integration, Delivery and Deployment

Continuous integration means integrating changes frequently into a shared repository and validating them automatically. Its purpose is to expose incompatibility quickly. A build that stays broken for hours blocks reliable learning, so teams need visible ownership and rapid restoration.

Continuous delivery keeps software in a releasable state but allows a business or governance decision to trigger production release. Continuous deployment automatically releases every change that passes the required controls. The latter is not always suitable for safety-critical, legally constrained or tightly coordinated environments.

Progressive CI/CD pipeline with evidence and feedback Automated evidence accumulates toward release Commitand review Build andunit tests Security andintegration Immutableartifact Progressivedeployment Observeand decide Unacceptable telemetry can stop rollout or trigger rollback The same versioned artifact should be promoted rather than rebuilt differently for each environment.
Progressive CI CD pipeline with evidence and feedback
Figure: Progressive CI CD pipeline with evidence and feedback

Figure: A CI/CD pipeline creates evidence and uses production feedback to govern rollout.

A dependable pipeline should produce an immutable, identifiable artifact and promote that same artifact through environments. Environment-specific configuration can be supplied separately. Rebuilding at each stage weakens confidence that the tested artifact is the released artifact.

Deployment strategies include rolling updates, blue–green deployment and canary release. Feature flags separate deployment from user exposure, but stale flags create complexity and should have owners and removal criteria. Rollback is not always sufficient: a non-backward-compatible database migration may require a roll-forward repair. Recovery planning must therefore cover code, data and infrastructure.

7. DevOps and Infrastructure Automation

DevOps is a set of cultural and technical principles that reduces barriers between development, operations, security and other stakeholders. It emphasizes shared responsibility, automated flow, rapid feedback and learning from failure. Creating a team named “DevOps” without changing ownership or interfaces does not by itself implement these principles.

Infrastructure as code (IaC) represents infrastructure in version-controlled, machine-readable definitions. It enables review, repeatability, automated validation and reconstruction. Good IaC practice includes:

  • modular definitions and documented interfaces;
  • remote, protected state where stateful tools require it;
  • least-privilege credentials;
  • policy checks before deployment;
  • drift detection between declared and actual state;
  • environment promotion or controlled parameterization; and
  • tested recovery procedures.

Declarative tools specify a desired state, while imperative automation specifies steps. Both may be useful. Idempotence—the property that repeated execution converges without unintended repeated effects—is particularly valuable, but it depends on the tool and operation and should not be assumed automatically.

Containers improve packaging consistency but do not guarantee identical runtime behavior. Network policy, managed services, data, secrets and resource limits still differ. Platform engineering has consequently emerged as a way to provide secure, reusable “paved roads” such as service templates, deployment workflows and observability defaults. A platform should reduce cognitive load without preventing justified exceptions.

8. Observability and Operational Learning

Monitoring asks whether known conditions are occurring; observability supports investigation of system state through emitted evidence. Common signals are metrics, logs and distributed traces. Useful telemetry must be correlated, access-controlled and designed to avoid collecting unnecessary personal or secret data.

A service-level indicator (SLI) is a measured aspect of service behavior, such as the proportion of valid requests completed successfully within a latency threshold. A service-level objective (SLO) is a target for an SLI over a stated period. If a time-based availability SLO is used, the maximum unavailable time is:

Tu = (1 - S)T

Here, Tu is allowed unavailable time, S is the target availability expressed as a proportion, and T is the measurement-window duration in the same time unit. This formula applies to a time-based binary availability definition; request-based SLOs require request counts instead.

Example. For a 30-day window and S = 0.999, using 30 × 24 × 60 = 43,200 minutes:

Tu = (1 - 0.999) × 43,200 = 43.2 minutes

An error budget represents the tolerated unreliability implied by the SLO. Teams can use budget consumption to balance feature delivery and reliability work, but an SLO is not permission to create avoidable outages.

Delivery performance can be examined with deployment frequency, change lead time, change failure rate and restoration time. For a defined observation window:

CFR = (Nf ÷ Nd) × 100%

Nf is the number of production deployments meeting the team’s predefined failure criterion, and Nd is the total number of production deployments. The criterion might include rollback, hotfix or service impairment and must be stable for comparison. If Nd = 0, the rate is undefined rather than zero.

For n > 0 restoration incidents with durations ti measured consistently:

Mean restoration time = (∑i=1n ti) ÷ n

Means can be distorted by extreme incidents, so medians and percentiles may also be reported. Metrics should diagnose the delivery system, not rank individuals. When converted into personal targets, they invite gaming—for example, inflating deployment counts through meaningless releases.

9. Security, Privacy and Governance in the Sprint

Agile delivery does not remove security or regulatory obligations. It changes when and how evidence is produced. DevSecOps integrates security controls throughout design, implementation, build, deployment and operation.

A risk-based security workflow includes:

  1. threat modeling for material changes;
  2. secure acceptance criteria;
  3. peer review and automated scanning;
  4. dependency and software-bill-of-materials management;
  5. protected secrets and signed or traceable artifacts where required;
  6. dynamic or penetration testing for appropriate risk classes;
  7. runtime detection and incident response; and
  8. documented exceptions with owners and expiry dates.

Full-stack teams must address authentication, authorization, session management, input validation, output encoding, transport protection, dependency risk and cloud permissions. Authorization must be enforced at trusted server or service boundaries; hiding a button in the browser is not an access control.

Privacy by design requires data minimization, purpose limitation, retention controls and appropriate handling of data-subject rights where applicable. Logs and test datasets deserve the same scrutiny as production databases. Governance should be implemented as automated policy where practical, but automation must preserve accountable human judgment for high-impact decisions.

AI-assisted coding can accelerate implementation, test generation and review preparation. Its output may nevertheless contain insecure patterns, fabricated APIs, licensing concerns or confidential-data leakage. Teams remain responsible for verification, provenance and compliance. AI-generated changes should pass the same review, testing and Definition of Done as human-written changes.

10. A Dependable Definition of Done

The Definition of Done (DoD) is a shared, formal description of the state an Increment must satisfy to be considered complete. It creates transparency about quality. Acceptance criteria describe item-specific behavior; the DoD describes recurring quality conditions applicable to the Increment.

A useful DoD is observable and evidence-based:

DoD dimensionExample evidence
FunctionalAcceptance tests pass; Product Owner can inspect behavior
Code qualityReview approved; static checks pass; refactoring completed as needed
TestingRequired unit, integration and end-to-end tests pass
SecurityRelevant scans pass; critical findings resolved or formally handled
DataMigration tested; compatibility and recovery considered
DeliveryVersioned artifact produced and deployability demonstrated
InfrastructureIaC reviewed, validated and stored with change history
OperationsLogs, metrics, traces, alerts and runbook updated where needed
DocumentationUser, API or operational documentation updated
GovernanceRequired evidence, approvals and traceability retained

The DoD should be stringent enough to create a usable Increment yet realistic for routine application. It must not conceal unfinished work behind vague language such as “testing substantially complete.” When organizational standards require stronger conditions, teams must meet or exceed them.

A DoD evolves through retrospection. Repeated escaped defects may justify new automated tests; recurring deployment failures may justify artifact or infrastructure controls. Adding every imaginable check, however, can create waste. Conditions should address meaningful recurring risks and should be automated where reliable automation is possible.

11. Illustrative Case: Northstar Learning Platform

Background

Northstar is a fictional university learning platform with a React client, REST API, relational database and cloud infrastructure. A Scrum Team released at the end of four-week batches even though it used two-week Sprints.

Problem

Frontend and backend developers maintained long-lived branches. Testing occurred in the final days of a release, infrastructure was changed manually, and “done” meant that code had been merged. Database changes occasionally broke older application instances during rolling deployment. Production logs lacked correlation identifiers, making incident diagnosis slow.

During an eight-week baseline period, the team made 20 production deployments. Three required rollback or urgent correction. Restoration durations were 35, 50 and 95 minutes. Therefore:

CFR = (3 ÷ 20) × 100% = 15%
Mean restoration time = (35 + 50 + 95) ÷ 3 = 60 minutes

Analysis

A value-stream workshop found that most delay occurred after coding: waiting for review, resolving branch conflicts, preparing environments and conducting manual regression tests. The original DoD exposed none of these queues. Security scans occurred only before major releases, and operational readiness was treated as another department’s responsibility.

Approach

The team adopted short-lived branches, smaller pull requests and mandatory automated checks. It introduced component, API contract and database integration tests, followed by a small set of critical end-to-end tests. Database evolution followed expand–migrate–contract.

A pipeline built one immutable container artifact, scanned it and promoted it through test and production environments. Infrastructure definitions entered the same review workflow. Canary deployment exposed a change first to a small traffic segment, while service errors and latency determined whether rollout continued.

The team added correlation identifiers, structured logs, request metrics and traces. Its revised DoD required deployment evidence, migration compatibility, relevant security checks, telemetry and rollback or roll-forward planning. The Product Owner placed reliability and debt items in the Product Backlog instead of treating them as invisible engineering tasks.

Outcome

In the next eight-week period, Northstar made 32 production deployments. Two met the same failure criterion, producing:

CFR = (2 ÷ 32) × 100% = 6.25%

The two restoration durations were 20 and 28 minutes:

Mean restoration time = (20 + 28) ÷ 2 = 24 minutes

The comparison suggests improved flow and recoverability, but it does not by itself prove causation. Work complexity, staffing and incident severity could differ between periods. The team therefore combined these measures with qualitative retrospective evidence and longer-term trends.

Learning Points

  1. Completing code is not equivalent to producing a usable Increment.
  2. Smaller changes and faster integration reduce the scope of uncertainty.
  3. Database, infrastructure, security and telemetry are part of full-stack delivery.
  4. An evidence-based DoD makes hidden work visible.
  5. Metrics support inquiry; they should not replace contextual judgment.

12. Challenges, Trade-offs and Professional Practice

Agile engineering involves trade-offs. Faster pipelines may initially require substantial investment. Extensive controls can slow feedback if poorly designed, while weak controls increase operational and regulatory risk. Legacy systems may resist automated testing, and distributed services increase both independent deployability and observability complexity.

Teams should avoid several common anti-patterns:

  • declaring success because a tool was installed;
  • automating an unstable or poorly understood process;
  • treating operations or security as downstream approval gates;
  • accepting permanently flaky tests;
  • using velocity, commits or deployment counts to compare individuals;
  • allowing urgent work to bypass traceability without later reconciliation; and
  • defining “done” differently for each stakeholder.

Professional practice requires balancing delivery speed, accessibility, security, privacy, reliability, cost and environmental impact. Post-incident reviews should be blameless but accountable: they should examine system conditions, decisions and safeguards rather than search for a person to punish. Corrective actions should be prioritized, owned and reviewed for effectiveness.

Contemporary practice increasingly combines platform engineering, progressive delivery, policy as code, software supply-chain controls and AI-assisted development. These approaches are valuable when they shorten safe feedback loops. They are not ends in themselves; their value lies in enabling teams to deliver useful, secure and operable changes sustainably.

Chapter Summary

Scrum supplies iterative planning, inspection and adaptation, while agile engineering supplies the technical capabilities needed to create dependable Increments. Frequent version-control integration, focused code review and layered automated testing reduce uncertainty. Refactoring preserves design quality, while explicit technical-debt management makes long-term consequences visible.

CI/CD, immutable artifacts, progressive deployment and infrastructure as code create repeatable delivery. DevOps extends ownership across development and operation, and observability converts production behavior into actionable feedback. Security, privacy and governance must be integrated throughout the delivery system rather than deferred to a final phase. An evidence-based Definition of Done connects these practices to Scrum by establishing a transparent quality threshold. Metrics such as change failure rate and restoration time can guide improvement when interpreted contextually and not used as individual performance targets.

Key Terms

Acceptance Criteria: Item-specific conditions that a Product Backlog Item must satisfy.

Branch Divergence: Commits reachable from one branch tip but not the other.

Code Review: Collaborative inspection of a software change before or during integration.

Continuous Delivery: Maintaining software in a releasable state while retaining an explicit release decision.

Continuous Deployment: Automatically releasing every change that satisfies required controls.

Continuous Integration: Frequent integration into a shared repository with automated validation.

Definition of Done: Shared quality conditions an Increment must satisfy to be considered complete.

DevOps: Cultural and technical principles promoting shared ownership, automated flow and rapid feedback.

DevSecOps: Integration of security responsibilities and controls throughout delivery and operation.

Error Budget: Tolerated unreliability implied by a service-level objective.

Feature Flag: A mechanism that controls exposure of deployed functionality.

Infrastructure as Code: Version-controlled, machine-readable definitions of infrastructure.

Observability: The capability to investigate system state using emitted evidence such as metrics, logs and traces.

Progressive Delivery: Releasing a change gradually and using evidence to control further exposure.

Refactoring: Improving internal software structure without intentionally changing observable behavior.

Service-Level Indicator: A quantitative measure of a service behavior experienced by users or consumers.

Service-Level Objective: A target value or range for an SLI over a specified period.

Technical Debt: Future cost or constraint arising from expedient or deficient technical decisions.

Trunk-Based Development: Frequent integration into a shared mainline using short-lived branches.

Review Questions

Short Answer Questions

  1. How does the Definition of Done differ from acceptance criteria?
  2. Why does comparing total commit counts fail to measure branch divergence reliably?
  3. What is the distinction between continuous delivery and continuous deployment?
  4. Why should code coverage not be treated as proof of test quality?
  5. What is the purpose of an error budget?

Long Answer Questions

  1. Explain how Scrum events can use evidence from version control, CI/CD and observability.
  2. Design a layered testing strategy for a web application with a browser client, API and relational database.
  3. Discuss the benefits and risks of trunk-based development, feature flags and progressive delivery.
  4. Explain how infrastructure as code and DevSecOps improve repeatability, governance and recovery.
  5. Critically evaluate how a Definition of Done should be created, applied and evolved.

Analytical / Application Questions

  1. A branch is seven commits ahead of mainline and four commits behind it. Calculate its symmetric-difference divergence and explain what the result cannot reveal.
  2. A team completed 40 production deployments, of which five required rollback or urgent remediation. Calculate the change failure rate and propose two investigations before drawing conclusions about team performance.
  3. An application requires a destructive database schema change while old and new service versions may run concurrently. Develop an expand–migrate–contract plan and identify suitable DoD evidence.

Multiple Choice Questions with Answers

Question 1

Which statement best describes the role of Scrum in agile engineering?

A. Scrum prescribes a complete CI/CD toolchain.

B. Scrum provides an inspection and adaptation framework that must be supported by suitable engineering practices.

C. Scrum removes the need for operational monitoring.

D. Scrum requires production release at the end of every Sprint.

Correct Answer: B. Scrum provides an inspection and adaptation framework that must be supported by suitable engineering practices.

Question 2

A branch is 5 commits ahead of mainline and 3 commits behind it. What is the symmetric-difference divergence?

A. 2 commits

B. 3 commits

C. 5 commits

D. 8 commits

Correct Answer: D. 8 commits

Question 3

Which practice most directly reduces the integration risk caused by long-lived branches?

A. Integrating small changes into the mainline frequently

B. Increasing the size of pull requests

C. Deferring automated tests until release week

D. Maintaining separate manual environment configurations

Correct Answer: A. Integrating small changes into the mainline frequently

Question 4

Which test type is specifically intended to detect incompatible expectations between a service provider and its consumers?

A. Load testing

B. Contract testing

C. Snapshot backup testing

D. Usability testing

Correct Answer: B. Contract testing

Question 5

Which statement correctly distinguishes refactoring from feature development?

A. Refactoring intentionally changes externally observable behavior.

B. Refactoring can be performed only after a Sprint ends.

C. Refactoring improves internal structure without intentionally changing observable behavior.

D. Refactoring is synonymous with correcting every production defect.

Correct Answer: C. Refactoring improves internal structure without intentionally changing observable behavior.

Question 6

What distinguishes continuous deployment from continuous delivery?

A. Continuous deployment automatically releases changes that pass required controls.

B. Continuous deployment excludes automated testing.

C. Continuous delivery requires every passing change to reach production automatically.

D. Continuous delivery does not produce releasable software.

Correct Answer: A. Continuous deployment automatically releases changes that pass required controls.

Question 7

For a 30-day period containing 43,200 minutes, what unavailable time is permitted by a 99.9% time-based availability SLO?

A. 4.32 minutes

B. 43.2 minutes

C. 432 minutes

D. 4,320 minutes

Correct Answer: B. 43.2 minutes

Question 8

A team has 32 production deployments, and 2 meet its predefined failure criterion. What is its change failure rate?

A. 2%

B. 6.25%

C. 16%

D. 93.75%

Correct Answer: B. 6.25%

Question 9

Which item is the strongest example of evidence for an operationally dependable Definition of Done?

A. A developer says that monitoring can be added later.

B. The feature branch exists in the repository.

C. Required telemetry and recovery procedures have been validated.

D. The implementation contains more lines of code than estimated.

Correct Answer: C. Required telemetry and recovery procedures have been validated.

Question 10

Why should deployment frequency not be used to rank individual developers?

A. Deployment frequency is always measured in minutes.

B. Individual ranking can encourage gaming and ignores the delivery system's collective context.

C. Deployment frequency is identical to code coverage.

D. Only customers are permitted to know deployment frequency.

Correct Answer: B. Individual ranking can encourage gaming and ignores the delivery system's collective context.

Agile & Scrum Methodologies
Chapter 9 of 15