Good Architecture Gone Bad

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

April 2022 - Guy Wicks

Slides

©2022 Guy Wicks

"If you think good architecture is expensive, try bad architecture"

Brian Foote

©2022 Guy Wicks

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?

©2022 Guy Wicks

Failure from Logical Fallacies

©2022 Guy Wicks

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.

©2022 Guy Wicks

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.

©2022 Guy Wicks

"Big Design Up Front" assumes the design was right.
You should create a model and assume everything is wrong.

©2022 Guy Wicks

"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"

©2022 Guy Wicks

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

©2022 Guy Wicks

"Building evolutionary architectures" Book

Align services with 'bounded context'

The separation between Essential and Accidental complexity

©2022 Guy Wicks

IT manage the boxes. Architecture manage the lines.

Abstraction leading to high modularity

©2022 Guy Wicks

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."

©2022 Guy Wicks

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."

©2022 Guy Wicks

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."

©2022 Guy Wicks

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."

©2022 Guy Wicks

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.

©2022 Guy Wicks

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."

©2022 Guy Wicks

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
©2022 Guy Wicks

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.

©2022 Guy Wicks

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
©2022 Guy Wicks

Who's in charge?

The Project Manager or Product Owner?

The Business or IT Strategy?

The Platform Team?

The Well Trodden Path?

The Need?

©2022 Guy Wicks

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.

©2022 Guy Wicks

Conclusion

Does 2 + 2 = 5?

©2022 Guy Wicks

Conclusion

Does 2 + 2 = 5? Yes! (for large values of 2)

If you're not satisfied with your outputs, then look at your inputs.

©2022 Guy Wicks

Thank You

©2022 Guy Wicks

Reference

List of Fallacies:
https://en.wikipedia.org/wiki/List_of_fallacies

Inspiration from:
https://www.youtube.com/watch?v=7YpFGkG-u1w

©2022 Guy Wicks