SA Team and Technical Agility 2 — Questions and Answers
Question 1: What does Test-Driven Development (TDD) require developers to do before writing production code?
- Review the backlog with the Product Owner
- Write a failing automated test that defines the desired behavior (Correct answer)
- Complete a design document approved by the architect
- Conduct a peer code review of existing modules
Correct answer: Write a failing automated test that defines the desired behavior
TDD requires writing a failing automated test first, which then guides the implementation of just enough production code to make the test pass, improving design and quality.
Question 2: In SAFe, what is the role of the Scrum Master on an Agile team?
- Owns the team backlog and prioritizes Stories
- Coaches the team in Agile practices and removes impediments (Correct answer)
- Approves Story acceptance criteria before development
- Manages the team's budget and resource allocation
Correct answer: Coaches the team in Agile practices and removes impediments
The Scrum Master is a servant leader who coaches the team on Agile practices, facilitates Scrum ceremonies, and works to remove impediments that slow the team down.
Question 3: What is 'Collective Ownership' in XP technical practices?
- The entire organization shares intellectual property rights to the code
- Any team member can modify any part of the codebase at any time (Correct answer)
- The Product Owner owns final approval of all code changes
- A designated code owner reviews all pull requests before merging
Correct answer: Any team member can modify any part of the codebase at any time
Collective Ownership means any team member is empowered to improve any part of the codebase, promoting shared responsibility and removing knowledge silos.
Question 4: What is 'Technical Debt' in the context of SAFe and Built-in Quality?
- Budget allocated for purchasing new development tools
- The cost of delayed payment on software licenses
- Accumulated shortcuts and suboptimal code that increase future maintenance cost (Correct answer)
- Documentation that has not been updated after a code change
Correct answer: Accumulated shortcuts and suboptimal code that increase future maintenance cost
Technical Debt refers to the future cost incurred when teams take shortcuts or use suboptimal designs, which must eventually be addressed through refactoring or rework.
Question 5: Which ceremony does SAFe recommend for Agile teams to synchronize progress and resolve cross-team dependencies during an iteration?
- System Demo
- Scrum of Scrums (SoS) (Correct answer)
- PI Planning
- Inspect and Adapt Workshop
Correct answer: Scrum of Scrums (SoS)
The Scrum of Scrums is a regular synchronization event where representatives from each Agile team coordinate on progress, impediments, and cross-team dependencies.
Question 6: What is refactoring in software development as used in SAFe technical practices?
- Rewriting an entire module from scratch to use new technologies
- Changing existing code structure to improve quality without altering external behavior (Correct answer)
- Adding new features to improve product market fit
- Converting a monolithic system into microservices
Correct answer: Changing existing code structure to improve quality without altering external behavior
Refactoring improves the internal structure of existing code without changing its observable behavior, reducing technical debt and making the system easier to maintain.
Question 7: In SAFe, what is the purpose of Continuous Integration (CI) as a technical practice?
- To automatically deploy code to production after every commit
- To frequently merge code changes into a shared branch and validate with automated tests (Correct answer)
- To conduct integration testing only at the end of each iteration
- To synchronize requirements between the team backlog and the program backlog
Correct answer: To frequently merge code changes into a shared branch and validate with automated tests
Continuous Integration requires developers to frequently integrate their code into a shared branch, where automated tests immediately verify that the integration does not introduce defects.
What does Test-Driven Development (TDD) require developers to do before writing production code?