Tracks·Architecture & practice·57 terms
Software Architecture
The words senior engineers argue in: structure, complexity, risk, decisions, migration and the shape of the team underneath it all.
Read in order · tick what you already know
- 01
the meeting spent five minutes on the data retention policy and thirty-five on the button label.
BikesheddingArchitecture
- 02
you shipped the quick version to make the date, wrote down what you skipped, and paid for it every sprint after.
Technical debtArchitecture
- 03
the design covered what happens when it works and the review found nothing about what happens when the vendor is down.
Happy path thinkingArchitecture
- 04
you changed the order of a JSON response and a customer's integration broke, and nowhere did you promise an order.
Hyrum's lawArchitecture
- 05
you deleted the odd-looking retry, and a week later found out which flaky vendor it was for.
Chesterton's fenceArchitecture
- 06
you built the plugin system for the second provider, and two years later there is still only one provider.
YAGNIArchitecture
- 07
you changed one module and three tests in a directory you had never opened went red.
CouplingArchitecture
- 08
the code for one job is spread over four files, and each of those files also does three unrelated jobs.
CohesionArchitecture
- 09
you wanted to change the retry policy and had to read a HTML template to find where it was set.
Separation of concernsArchitecture
- 10
the function reads like a sentence for three lines and then drops into byte offsets.
Level of abstractionArchitecture
- 11
the ORM hid the SQL right up until you had to read the query plan to fix a timeout.
Leaky abstractionArchitecture
- 12
the rules really are that fiddly, because tax law is that fiddly, and no rewrite will make them simpler.
Essential complexityArchitecture
- 13
half the file is there to work around a framework decision that has nothing to do with the feature.
Accidental complexityArchitecture
- 14
the design handles ten thousand requests a second and the product has forty users.
Over-engineeringArchitecture
- 15
you asked where the pricing logic lives and were told it depends which of five places you mean.
Big ball of mudArchitecture
- 16
everything ships together, so one bad line in someone else's feature blocks your release.
MonolithArchitecture
- 17
you kept the single deployable and made a module boundary something the build fails on when crossed.
Modular monolithArchitecture
- 18
the service you own deploys on its own schedule and you have never waited for another team's release.
MicroserviceArchitecture
- 19
you split it into six services and still have to deploy all six together, in the right order.
Distributed monolithArchitecture
- 20
'customer' means one thing to billing and something else to support, and the shared table forces one of them to be wrong.
Bounded contextArchitecture
- 21
one region went down and you found out which of your services quietly lived only in that region.
Failure domainArchitecture
- 22
you ask how much of the product breaks if this one component dies, and design so the answer is not "all of it".
Blast radiusBackend
- 23
you trace the dependency graph and find one component whose failure takes everything else down with it.
Single point of failureBackend
- 24
you picked the customer-facing URL scheme, and two years of links mean it is never changing.
One-way doorArchitecture
- 25
you argued for a week about a library you could have swapped out in an afternoon.
Two-way doorArchitecture
- 26
you shipped it because you knew exactly how you would undo it, not because you were sure.
ReversibilityArchitecture
- 27
someone asked whether this needed a written decision, and the answer was whether it would be expensive to change later.
Architectural significanceArchitecture
- 28
you presented the design and spent forty minutes on a question you had not thought to ask yourself.
Design reviewArchitecture
- 29
you wrote up the plan and left it open for a week so people could argue in the margins before you built anything.
Request for commentsArchitecture
- 30
you asked why the queue was chosen and someone found a one-page file in the repository from 2023.
Architecture decision recordArchitecture
- 31
everyone agrees it should be replaced, and everyone also agrees it is the only thing that knows the pricing rules.
Legacy systemArchitecture
- 32
you put a router in front and moved one endpoint at a time until the old service had no traffic left.
Strangler figArchitecture
- 33
you decided to start again, and the old system kept receiving feature requests the whole time.
RewriteArchitecture
- 34
the replacement was blocked for two months on a report that four people run once a year.
Feature parityArchitecture
- 35
the rewrite is going to fix every compromise in version one, all at once, and it is nine months late.
Second-system effectArchitecture
- 36
the system has four services and the company has four teams, and nobody planned that.
Conway's lawArchitecture
- 37
the team owns nine services and can explain four of them.
Cognitive loadArchitecture
- 38
one person was on holiday and the release could not go out until they got back.
Bus factorArchitecture
- 39
you opened a pull request against another team's repository and it sat there for eleven days.
Code ownershipArchitecture
- 40
you were asked for a date before anyone had opened the vendor's documentation, and gave one.
Cone of uncertaintyArchitecture
- 41
you estimated the happy path, which is the only version of the work you pictured.
Planning fallacyArchitecture
- 42
the team sized it a five, and someone in a status meeting asked how many days a five is.
Story pointArchitecture
- 43
you sorted twelve ideas into small, medium and large in twenty minutes, which was all the decision needed.
T-shirt sizingArchitecture
- 44
the request was made in March and reached customers in June, and the coding took four days.
Lead timeArchitecture
- 45
the work took four days once someone started it, and it had been sitting in the backlog since March.
Cycle timeArchitecture
- 46
you were told to finish one of the four things you had started before picking up a fifth.
Work-in-progress limitArchitecture
- 47
each addition was reasonable on its own and the project is four months longer than it was in January.
Scope creepArchitecture
- 48
you sat down a week later with the timeline and worked out why the wrong dashboard was the obvious one to check.
Incident reviewArchitecture
- 49
you write up what happened focusing on why the system allowed it, not on who typed the command.
Blameless postmortemBackend
- 50
you asked why five times and ended up at a deploy process nobody had questioned in two years.
Five whysArchitecture
- 51
the deploy triggered it, and the missing alert, the stale runbook and the one-person rotation all had to be true as well.
Contributing factorArchitecture
- 52
the migration has taken eight months, so the argument for continuing was that it has taken eight months.
Sunk cost fallacyArchitecture
- 53
you believed it was the cache and read the logs looking for the cache, and found something.
Confirmation biasArchitecture
- 54
the team was measured on tickets closed, and the tickets got smaller.
Goodhart's lawArchitecture
- 55
the room had agreed until the director said what they preferred, and then everyone had a new opinion.
HiPPOArchitecture
- 56
you argued a position firmly, someone produced a number, and you changed your mind in the same meeting.
Strong opinions, weakly heldArchitecture
- 57
you argued hard against it, lost, and then did the work properly instead of relitigating in every standup.
Disagree and commitArchitecture