5.0: Agile and ASPICE
Introduction
Agile development emphasizes rapid iteration, customer collaboration, and working software. ASPICE demands documented processes, traceability, and comprehensive verification. Many believe these are contradictory—but they're actually complementary when implemented correctly. This chapter shows how to achieve ASPICE CL2/CL3 using Agile methods.
The Perceived Conflict
Common Misconceptions
| Misconception | Reality |
|---|---|
| "Agile means no documentation" | Agile values working software OVER comprehensive documentation, not instead of it |
| "ASPICE requires waterfall" | ASPICE is process-agnostic; it specifies WHAT to achieve, not HOW |
| "Agile is too fast for ASPICE reviews" | Agile's frequent reviews (sprint reviews, retrospectives) align perfectly with ASPICE SUP.1 |
| "You can't do ASPICE in 2-week sprints" | Sprint artifacts (user stories, DoD, acceptance tests) ARE ASPICE work products |
Truth: Agile and ASPICE are complementary. Agile provides the delivery cadence; ASPICE ensures quality and traceability.
Agile V-Model
Combining Agile Iterations with V-Model Structure
This diagram shows how Sprint 0 establishes the V-Model baseline by defining the process framework, toolchain, and initial architecture before iterative development begins.
Key Insight: Each sprint completes a mini V-cycle for a feature increment.
ASPICE Processes in Agile Context
Mapping Agile Artifacts to ASPICE Work Products
| ASPICE Process | Traditional Work Product | Agile Equivalent | Storage |
|---|---|---|---|
| SYS.2 System Req | System Requirements Specification | Epic descriptions + acceptance criteria | Jira Epics + Confluence |
| SWE.1 SW Req | Software Requirements Specification | User Stories + Definition of Done (DoD) | Jira Stories |
| SWE.2 SW Arch | Software Architecture Document | Architecture Decision Records (ADR) | Markdown in docs/architecture/ |
| SWE.3 SW Design | Detailed Design Document | Code + inline comments + README | Git repository |
| SWE.4 Unit Test | Unit Test Specification + Report | Unit tests (pytest, Unity) + CI report | Git tests/ + CI artifacts |
| SWE.5 Integration Test | Integration Test Spec + Report | Integration tests + HIL tests | Git tests/integration/ + CI |
| SWE.6 Qualification Test | Qualification Test Spec + Report | Acceptance tests (Gherkin, Robot Framework) | Git tests/acceptance/ |
| SUP.1 QA | Quality Audit Reports | Independent QA reviews + Retrospectives | QA reports in Confluence |
| SUP.8 Config Mgmt | Configuration Management Plan | Git branching strategy + tagging | CONTRIBUTING.md in Git |
| SUP.9 Problem Res | Problem Reports | Jira Bugs | Jira |
| SUP.10 Change Mgmt | Change Requests | Jira Change Requests | Jira |
| MAN.3 Project Mgmt | Project Plan | Sprint Planning + Burndown Charts | Jira + Confluence |
Important — SUP.1 Independence: ASPICE requires organizational independence for quality assurance. Sprint Reviews and Retrospectives satisfy communication and reflection practices but cannot fulfill independent QA. A dedicated QA Engineer who is not a member of the Scrum team must review outputs against ASPICE process criteria. The QA function must report through a separate management chain.
Conclusion: Agile artifacts satisfy ASPICE requirements when properly structured.
Sprint as ASPICE Work Product Container
Sprint Anatomy
The following diagram breaks down a typical sprint flow, showing how ASPICE work products are generated at each stage from planning through implementation, review, and retrospective.
Evidence Collection: Each sprint generates ASPICE work products organically.
Definition of Done (DoD) as ASPICE Quality Gate
Sprint DoD Checklist
# Definition of Done (DoD) - ASPICE CL2 Compliant
## Feature-Level DoD (per User Story)
### SWE.1 (Requirements)
- [ ] User Story has clear acceptance criteria
- [ ] Story traced to parent Epic (bidirectional link in Jira)
- [ ] Acceptance criteria are testable
### SWE.3 (Design & Implementation)
- [ ] Code written and committed to feature branch
- [ ] Code adheres to coding standard (MISRA C:2012)
- [ ] Static analysis passed (0 critical/high findings)
- [ ] Code review completed (2 approvals)
### SWE.4 (Unit Testing)
- [ ] Unit tests written for all new functions
- [ ] Code coverage ≥ 80% (branch coverage)
- [ ] All unit tests pass in CI
### SWE.6 (Acceptance Testing)
- [ ] Acceptance tests written (Gherkin scenarios OR manual test cases)
- [ ] Acceptance tests executed and passed
- [ ] Product Owner accepts the story
### SUP.8 (Configuration Management)
- [ ] Feature branch merged to `develop`
- [ ] PR linked to Jira story (traceability)
### SUP.9 (Problem Resolution)
- [ ] No open bugs related to this story
---
## Sprint-Level DoD (per Sprint)
### Integration
- [ ] All stories integrated into `develop` branch
- [ ] Integration tests pass (SWE.5)
- [ ] No regression failures
### Documentation
- [ ] README.md updated (if architecture changed)
- [ ] API documentation generated (Doxygen)
### Quality
- [ ] SonarQube quality gate passed
- [ ] No critical security vulnerabilities (Trivy scan)
### Release Readiness
- [ ] Demo performed in Sprint Review
- [ ] Sprint Retrospective completed
- [ ] Next sprint backlog refined
---
**ASPICE Mapping**:
- DoD = Quality Criteria (SUP.1 BP3: Establish quality criteria)
- DoD Checklist = Verification Gate (SWE.4-6: Verification activities)
Agile Roles and ASPICE Responsibilities
| Agile Role | ASPICE Responsibility | Example Activities |
|---|---|---|
| Product Owner | Requirements Management (SWE.1) | Define Epics, refine User Stories, accept stories in Sprint Review |
| Scrum Master | Process Assurance (SUP.1) | Ensure DoD is followed, facilitate retrospectives, remove blockers |
| Development Team | Design, Implementation, Verification (SWE.2-6) | Code, test, review, integrate |
| Architect | Architectural Design (SWE.2, SYS.3) | Define Architecture Decision Records (ADRs), review PRs affecting architecture |
| QA Engineer | Independent Verification (SUP.1) | Conduct integration tests, security tests, audit compliance |
| Release Manager | Configuration Management (SUP.8) | Manage releases, tagging, branching strategy |
No Additional Roles Needed: Existing Agile roles cover ASPICE responsibilities.
Continuous ASPICE Compliance
CI/CD as ASPICE Evidence Generator
# .github/workflows/aspice-compliance-check.yml
name: ASPICE Compliance Gate
on:
pull_request:
branches: [develop, main]
jobs:
aspice-compliance:
runs-on: ubuntu-latest
steps:
# SWE.3 BP5: Coding standards compliance
- name: MISRA C Check
run: cppcheck --addon=misra src/
# SWE.4 BP3: Unit tests execution
- name: Run Unit Tests
run: pytest tests/unit/
# SWE.4 BP4: Coverage check
- name: Check Code Coverage
run: |
coverage run -m pytest
coverage report --fail-under=80
# SWE.3 BP7: Code review enforcement
- name: Require 2 Approvals
uses: actions/github-script@v6
with:
script: |
const reviews = await github.rest.pulls.listReviews({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.payload.pull_request.number
});
const approvals = reviews.data.filter(r => r.state === 'APPROVED').length;
if (approvals < 2) {
core.setFailed('Requires 2 approvals (ASPICE SWE.3 BP7)');
}
# SUP.8 BP5: Traceability check
- name: Verify Jira Link
run: |
PR_BODY="${{ github.event.pull_request.body }}"
if ! echo "$PR_BODY" | grep -qE '\[SWE-[0-9]+\]'; then
echo "ERROR: PR must reference Jira story (e.g., [SWE-123])"
exit 1
fi
# SWE.6: Generate test report
- name: Upload Test Results
uses: actions/upload-artifact@v3
with:
name: test-results
path: test-reports/
**Result**: Every PR merge generates ASPICE-compliant evidence automatically.
Agile ASPICE Assessment Evidence
What Assessors Look For
| ASPICE Process | Evidence Location (Agile) | Assessor Verification |
|---|---|---|
| SWE.1 BP1 | Jira User Stories | Assessor reviews sample stories, checks acceptance criteria |
| SWE.1 BP5 | Jira Epic→Story links | Assessor verifies traceability matrix (can be auto-generated) |
| SWE.2 BP1 | docs/architecture/ADR-*.md |
Assessor reviews Architecture Decision Records |
| SWE.3 BP6 | Git commits | Assessor samples code, verifies it implements requirements |
| SWE.3 BP7 | GitHub PR approvals | Assessor checks PR history, verifies 2+ reviewers |
| SWE.4 BP3 | CI/CD pipeline logs | Assessor reviews test execution logs, coverage reports |
| SWE.6 BP3 | Sprint Review recordings | Assessor watches demo video, checks acceptance |
| SUP.1 BP4 | Retrospective notes (Confluence) | Assessor reviews meeting minutes, checks for QA activities |
| SUP.8 BP3 | Git branching strategy doc | Assessor verifies controlled merges, protected branches |
| MAN.3 BP10 | Sprint Burndown Charts (Jira) | Assessor reviews progress tracking, velocity trends |
Tip: Keep a "Evidence Collection" Confluence page with links to all ASPICE artifacts.
Summary
Agile and ASPICE Integration:
- Not Contradictory: Agile focuses on delivery cadence, ASPICE on process quality
- Agile Artifacts = ASPICE Work Products: User Stories = SWE.1, DoD = Quality Gate
- Sprints = Mini V-Cycles: Each sprint performs Requirements → Design → Code → Test
- CI/CD = Evidence Generator: Automated pipelines produce ASPICE-compliant reports
- No Extra Overhead: Existing Agile practices (reviews, retrospectives) satisfy SUP.1
- Assessor-Friendly: Digital artifacts (Jira, Git, CI logs) easily auditable
Chapter Structure:
- 22.01 Agile Principles in ASPICE Context - Mapping Agile values to ASPICE practices
- 22.02 Sprint Work Products - Detailed sprint artifact templates
- 22.03 Continuous ASPICE Compliance - Automation strategies for continuous evidence