Ensuring a Good Application Architecture
In Scrum, maintaining a solid application architecture is crucial for long-term product quality and sustainability. Developers play a key role in ensuring that the architecture supports both current and future development needs.
Exam Question
What are two ways Developers can ensure a good application architecture?
(choose the best two answers)
A. The Developers at Sprint 0 create infrastructure that will be needed later.
B. The Developers have a set of guiding architecture principles that are understood and followed when writing code.
C. The Developers focus only on adding functionality. The architecture will take care of itself as the Developers add functionality.
D. The Scrum Team assigns someone to the role of software architect to provide architectural oversight.
E. Architecture is an ongoing discussion by the Developers, focusing on implementing current Sprint Backlog items.
Correct Answers
B. The Developers have a set of guiding architecture principles that are understood and followed when writing code.
E. Architecture is an ongoing discussion by the Developers, focusing on implementing current Sprint Backlog items.
Explanation
Correct Answers
B. The Developers have a set of guiding architecture principles that are understood and followed when writing code:
Establishing and adhering to a set of guiding architectural principles ensures that the codebase remains consistent, maintainable, and scalable. These principles act as a foundation for making architectural decisions, helping Developers maintain a cohesive design as the system evolves.
E. Architecture is an ongoing discussion by the Developers, focusing on implementing current Sprint Backlog items:
Architecture should not be a one-time activity but rather an ongoing discussion. By continuously evaluating and refining the architecture while implementing Sprint Backlog items, Developers can ensure that the architecture remains aligned with the product’s evolving needs. This approach allows for adaptability and responsiveness to new requirements or challenges.
Why the Other Options Are Less Appropriate
A. The Developers at Sprint 0 create infrastructure that will be needed later:
Scrum does not advocate for a “Sprint 0” or a phase dedicated solely to setting up infrastructure. Instead, architecture and infrastructure should evolve alongside the product as part of the regular Sprint work.
C. The Developers focus only on adding functionality. The architecture will take care of itself as the Developers add functionality:
Ignoring architectural considerations in favor of just adding functionality can lead to a fragile and unmanageable codebase over time. Good architecture requires intentional design and continuous attention.
D. The Scrum Team assigns someone to the role of software architect to provide architectural oversight:
While having someone with architectural expertise can be beneficial, Scrum encourages a cross-functional team where all Developers are involved in architectural decisions. This collaborative approach ensures that the architecture evolves in a way that is practical and understood by the entire team.
Relevance to the PSD Exam
Understanding the importance of guiding architectural principles and continuous architectural discussions is essential for the PSD exam. It emphasizes the role of Developers in maintaining a sustainable and adaptable architecture within the Scrum framework.
Key Takeaways
- Guiding architectural principles provide a foundation for consistent and maintainable code.
- Ongoing architectural discussions ensure that the architecture evolves alongside the product, adapting to new requirements and challenges.
Conclusion
Ensuring a good application architecture in Scrum involves both establishing guiding principles and maintaining continuous architectural discussions. These practices help Developers create a robust, adaptable, and scalable system that can meet the needs of the product over time. For more information on preparing for the PSD exam, visit our Professional Scrum Developer PSDâ„¢ Exam Prep.