Skip to content

Good Architecture Gone Bad

Where does bad architecture come from, what the impact, and how do we prevent it.

April 2022 - Guy Wicks

Slides


"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