DAC Agile Architecture & Technical Practices 2 — Questions and Answers
Question 1: Which practice ensures that code remains in a continuously deployable state within an agile team?
- Continuous Delivery (CD) with automated build, test, and deployment pipelines (Correct answer)
- Quarterly release planning with manual integration testing
- Manual build processes triggered by the release manager
- Long-lived feature branches merged only at the end of each sprint
Correct answer: Continuous Delivery (CD) with automated build, test, and deployment pipelines
Continuous Delivery keeps code always in a deployable state by automating the entire build, test, and deployment pipeline.
Question 2: What is the purpose of an architectural spike in Disciplined Agile?
- To document the current system architecture for stakeholders
- To explore a technical uncertainty or risk through a time-boxed investigation (Correct answer)
- To deliver a fully designed feature before committing to implementation
- To replace the architecture owner's decisions with team consensus voting
Correct answer: To explore a technical uncertainty or risk through a time-boxed investigation
An architectural spike is a time-boxed investigation designed to reduce technical risk or uncertainty before the team commits to a particular solution.
Question 3: What does 'technical excellence' mean in the Disciplined Agile context?
- Using the latest technology stack regardless of the project's specific needs
- Maintaining high code quality, automated testing, and sound architectural practices to enable sustainable delivery (Correct answer)
- Achieving 100% automated test coverage on every sprint without exception
- Following strict waterfall-style documentation standards for all technical decisions
Correct answer: Maintaining high code quality, automated testing, and sound architectural practices to enable sustainable delivery
Technical excellence in DA means maintaining code quality, testing rigor, and architectural integrity so teams can deliver value sustainably over the long term.
Question 4: Which practice in Disciplined Agile most directly reduces the cost of future code changes over time?
- Comprehensive upfront documentation of all requirements
- Continuous refactoring and clean code practices (Correct answer)
- Freezing requirements as early as possible in the project
- Limiting team communication to formal scheduled meetings
Correct answer: Continuous refactoring and clean code practices
Continuous refactoring and clean code practices keep the codebase maintainable, making future changes faster and less risky.
Question 5: What does collective code ownership mean in Disciplined Agile teams?
- Only the architecture owner is authorized to modify the production codebase
- Any team member can modify any part of the codebase, with shared responsibility for overall quality (Correct answer)
- Code ownership is formally assigned per feature to individual named developers
- External technical reviewers must approve all code changes before integration
Correct answer: Any team member can modify any part of the codebase, with shared responsibility for overall quality
Collective code ownership means any team member can improve any part of the codebase, increasing team agility and eliminating knowledge silos.
Question 6: In Disciplined Agile, when should major architecture decisions ideally be made?
- All at once during project initiation before any development starts
- As late as responsibly possible, when sufficient information is available to make sound decisions (Correct answer)
- Only by external enterprise architects who are independent of the delivery team
- Only after all requirements have been formally approved and frozen
Correct answer: As late as responsibly possible, when sufficient information is available to make sound decisions
DA advocates making architecture decisions as late as responsibly possible to incorporate the most current information and avoid costly premature commitment.
Question 7: What is the primary benefit of automated testing suites in Disciplined Agile teams?
- Eliminating the need for manual exploratory testing entirely
- Providing fast feedback on code changes and significantly reducing regression risk (Correct answer)
- Satisfying all external compliance requirements without any manual verification
- Replacing the need for an architecture owner role on the team
Correct answer: Providing fast feedback on code changes and significantly reducing regression risk
Automated tests provide fast feedback on code changes, helping teams quickly detect regressions and maintain confidence in the codebase as it evolves.
Which practice ensures that code remains in a continuously deployable state within an agile team?