Good Architecture Gone Bad
Where does bad architecture come from, what the impact, and how do we prevent it.
April 2022 - Guy Wicks
"If you think good architecture is expensive, try bad architecture"
Brian Foote
Where does bad architecture come from?
- What does bad architecture look like?
- What causes bad architecture?
-
What is the cost of bad architecture?
-
Why do we need architecture?
- How can we measure architectural quality?
Failure from Logical Fallacies
The Ritual
You can't performance test a design document.
Explore first, then design from what you found
Good architecture supports iterative deployment and quicker delivery to production - where it can then be measured.
GA allows development to pivot quickly, at minimum risk and cost, in order to find the required outcome
Start with a model, and assume it is wrong. When you find where it is wrong, you can correct it. Then repeat and refine and improve until it becomes less wrong.
"Big Design Up Front" assumes the design was right. You should create a model and assume everything is wrong.
"Managing Complexity" - compartmentalizing the system to allow understanding of the pieces and make changes without affecting other parts of the system - designing the system in a way that provides isolation from change impact.
Architecture is about "The Significant Decisions"
How make this thing so you can make changes in the future without having this immense 'blast radius' of dependencies.
"With great power comes great responsibility"
Fitness Functions
"Building evolutionary architectures" Book
Align services with 'bounded context'
The separation between Essential and Accidental complexity
IT manage the boxes. Architecture manage the lines.
Abstraction leading to high modularity
The Homomorphic organization
A structure-preserving relationship between two sets of things is called a homomorphism
"Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations."
"When all you have is box of hammers, every problem looks like a nail."
The Sunk Cost fallacy
Continuing a course of action where the time, effort, or money invested may not now outweigh the final benefits.
"Because the design which occurs first is almost never the best possible, the prevailing system concept may need to change. Therefore, flexibility of organization is important to effective design."
The Nirvana fallacy
Solutions to problems are rejected because they are not perfect.
"It is an article of faith among experienced system designers that given any system design, someone someday will find a better one to do the same job. It is misleading and incorrect to speak of the design for a specific job, unless this is understood in the context of space, time, knowledge, and technology."
The Argument to Moderation fallacy
Assuming that a compromise between two positions is always correct.
"Ways must be found to reward design managers for keeping their organizations lean and flexible."
The Quantitative fallacy
Making an argument using only quantitative observations (measurements, statistical or numerical values) and discounting subjective information that focuses on quality (traits, features, or relationships).
Prioritising short term project objectives (time, money, scope) against the longer term (unrewarded) organisational goals.
The Continuum fallacy
Improperly rejecting a claim for being imprecise.
"Ways must be found to reward design managers for keeping their organizations lean and flexible."
What is the cost of bad architecture?
Cost is not just money...
- Loss of agility
- Loss of re-usability
- Loss of opportunity
- Loss of potential
- Loss of professional value for Architecture
Playing the long game
"Nobody cares about quality until after it ships" - apocryphal
Decisions made in design can persist for decades.
An inch in the right direction is better than a mile in the wrong one.
Never time to do it right. Always time to do it again.
When quality counts
When quality is the goal, then compromise is a failure.
- Decision making based on evidence
- "Perfect is the enemy of good"
- Breaking the YNGNI/MVP argument
- You've got to Build Architecture
Who's in charge?
The Project Manager or Product Owner?
The Business or IT Strategy?
The Platform Team?
The Well Trodden Path?
The Need?
What's the change?
Architecture is a journey, not a destination.
But the absence of direction certainly mean you'll never arrive where you want to be.
There's no right answer, but there are many wrong ones.
Fail fast, fail better.
Measure real world outcomes.
Conclusion
Does 2 + 2 = 5?
Conclusion
Does 2 + 2 = 5? Yes! (for large values of 2)
If you're not satisfied with your outputs, then look at your inputs.
Thank You
Reference
List of Fallacies:
https://en.wikipedia.org/wiki/List_of_fallacies
Inspiration from:
https://www.youtube.com/watch?v=7YpFGkG-u1w