Cover of Fundamentals of Software Architecture by Mark Richards, Neal Ford - Business and Economics Book

From "Fundamentals of Software Architecture"

Author: Mark Richards, Neal Ford
Publisher: O'Reilly Media
Year: 2020
Category: Computers

🎧 Free Preview Complete

You've listened to your free 10-minute preview.
Sign up free to continue listening to the full summary.

🎧 Listen to Summary

Free 10-min Preview
0:00
Speed:
10:00 free remaining
Chapter 19: Architecture Decisions
Key Insight 2 from this chapter

Architecture Decision Anti-Patterns

Key Insight

Architecture decision-making is prone to anti-patterns, which are practices that initially appear sound but lead to problems, or repeatable processes that produce negative results. Three major architecture anti-patterns are: the 'Covering Your Assets' anti-pattern, the 'Groundhog Day' anti-pattern, and the 'Email-Driven Architecture' anti-pattern. These anti-patterns often follow a progressive flow, meaning that overcoming one may inadvertently lead to the emergence of the next, requiring architects to address all three for effective decision-making.

The 'Covering Your Assets' anti-pattern manifests when an architect avoids or defers making a decision due to fear of choosing incorrectly. To mitigate this, architects should wait until the last responsible moment, ensuring sufficient information for justification and validation without causing development bottlenecks or analysis paralysis. Crucially, continuous collaboration with development teams is vital to confirm the decision's implementability and allow for rapid adjustments if issues arise. For instance, a decision to cache product reference data using a replicated cache, while aiming to reduce coupling, might require more in-process memory than available for certain services; collaboration enables the architect to swiftly adjust.

The 'Groundhog Day' anti-pattern occurs when decisions are perpetually re-discussed because their underlying justifications are unknown or incomplete. This is overcome by providing clear technical and business justifications; for example, breaking a monolithic application into services (technical justification for decoupling) should also be justified by business value, such as faster delivery of new functionality or reduced development costs. The 'Email-Driven Architecture' anti-pattern arises when decisions are lost, forgotten, or unknown due to ineffective communication. To avoid this, architecture decisions should not be embedded in email bodies, which create fragmented records, but instead, emails should briefly state the context and nature of the decision while providing a link to a single, authoritative system of record. Furthermore, communication should be precisely targeted, notifying only those directly impacted by the decision to maximize relevance and minimize information overload.

📚 Continue Your Learning Journey — No Payment Required

Access the complete Fundamentals of Software Architecture summary with audio narration, key takeaways, and actionable insights from Mark Richards, Neal Ford.