CDA Agile Architecture & Design 3 — Questions and Answers
Question 1: A team is choosing between a microservices architecture and a monolith for a new DA project. What DA guidance applies?
- Always choose microservices because they are more agile
- Always choose a monolith to minimize initial complexity
- Choose the architecture that is fit-for-purpose given the team's context and needs (Correct answer)
- Avoid architecture decisions until the last iteration
Correct answer: Choose the architecture that is fit-for-purpose given the team's context and needs
DA is context-sensitive and recommends choosing the architecture that is fit-for-purpose for the specific situation rather than prescribing a single architectural style.
Question 2: Which DA concept acknowledges that both planned and emergent architectural strategies are needed in practice?
- Architecture runway (Correct answer)
- Disciplined DevOps
- Hybrid architecture
- Technical debt backlog
Correct answer: Architecture runway
The 'architecture runway' concept represents the pre-existing architectural foundation (intentional) that supports near-term features, combined with the emergent design that grows through iterations.
Question 3: In DA, 'fitness functions' are used in architecture to:
- Measure the physical fitness of development team members
- Provide objective automated checks that verify architectural characteristics are maintained (Correct answer)
- Replace unit tests in an agile environment
- Define sprint velocity targets for architecture tasks
Correct answer: Provide objective automated checks that verify architectural characteristics are maintained
Fitness functions are automated tests or checks that verify key architectural characteristics (such as performance, security, or scalability) are preserved as the system evolves.
Question 4: Which of the following is an anti-pattern in agile architecture that DA explicitly discourages?
- Evolving architecture incrementally based on feedback
- Big Design Up Front (BDUF) where all architecture is defined before any development (Correct answer)
- Collaborating with enterprise architects to align on guardrails
- Using spikes to explore architectural risks early
Correct answer: Big Design Up Front (BDUF) where all architecture is defined before any development
BDUF is an anti-pattern in DA because it delays value delivery, reduces flexibility, and produces designs based on assumptions that may prove incorrect.
Question 5: When a DA team identifies significant architectural risk early in a project, the recommended response is to:
- Document the risk and revisit it at project end
- Escalate immediately to stop all development
- Conduct a time-boxed architectural spike to explore and mitigate the risk early (Correct answer)
- Assign the risk to a separate architecture team outside the delivery team
Correct answer: Conduct a time-boxed architectural spike to explore and mitigate the risk early
DA recommends using time-boxed architectural spikes to investigate high-priority risks early, so that critical unknowns are resolved before they become costly problems.
Question 6: In DA, how should an architecture owner handle a scenario where two team members propose conflicting design approaches?
- Unilaterally decide in favor of the more senior developer
- Facilitate a collaborative decision by exploring trade-offs with the whole team (Correct answer)
- Escalate to management to resolve the conflict
- Allow both approaches to proceed in parallel indefinitely
Correct answer: Facilitate a collaborative decision by exploring trade-offs with the whole team
The DA architecture owner facilitates collaborative, team-based decision-making by exploring trade-offs together rather than imposing unilateral decisions.
Question 7: Which of the following best describes 'technical debt' in the context of DA agile architecture?
- Money borrowed to purchase development tools
- The cost of future rework caused by choosing an expedient but suboptimal design solution now (Correct answer)
- Unused features that remain in the backlog too long
- The time team members spend on non-development activities
Correct answer: The cost of future rework caused by choosing an expedient but suboptimal design solution now
Technical debt refers to the implied cost of additional rework that results from choosing a quick or easy solution now instead of a better approach that would take longer.
A team is choosing between a microservices architecture and a monolith for a new DA project.
What DA guidance applies?