1. Courses
  2. Architecture
  3. Software and Solution Architecture
  4. Stop 1

35 minAdvanced

What architects actually do

An architect's real output is decisions: the few choices that are expensive to change, made with honest trade-offs and carried by people who do not report to you. This lesson gives you a test for which decisions are yours, the difference between software, solution and enterprise architects, and a way to lead without a manager's authority.

By the end you can

  • Tell an architecturally significant decision from an ordinary one with a four-question test and a cost-of-change estimate
  • Explain what software, solution and enterprise architects decide, and how their decisions fit together
  • Write a trade-off record with real options, what each one gives up, and a trigger to revisit
  • Get decisions adopted through clear decision rights, early advice and written reasoning
  • Start a decision log and a triage routine for Mangrove's back-office move

The everyday picture

Think about how a city grows. Families design their own houses: the kitchen, the paint, where the sofa goes. Nobody at city hall cares, and a family can change its mind next year.

A district planner decides other things: where the roads go, where the water pipes run, which blocks are for homes and which for shops. Those choices are cheap on paper and very expensive later. Once a hundred houses sit on a road, moving it means tearing them down. The planner also does not build the houses. The planner's job is to agree the few things everyone must share, write them down, and convince the builders to follow them.

Above the district there is a regional plan: one power grid, one set of building codes, one road numbering scheme for the whole region. Software works the same way. Software architects shape one building, solution architects plan a district of systems that must work together, and enterprise architects keep the region coherent. In every case the job is the same: find the decisions that are hard to undo, make them well, and help other people live with them.

Architecture is the decisions that are expensive to change

There are many definitions of architecture. The most useful one for daily work comes from Grady Booch: architecture is the set of significant design decisions that shape a system, and "significant" is measured by . Martin Fowler's essay "Who Needs an Architect?" makes the same point: architecture is the important stuff, the things people find hard to change later.

This gives you a method. Every week, engineers make hundreds of design decisions. Most are cheap to reverse: a variable name, a screen layout, a library inside one module. If a team gets one wrong, it fixes it next sprint. A few decisions are different. They cross team boundaries, lock data into a shape that many systems depend on, or decide how fast or reliable the whole system can be. Those are decisions, and they are the architect's job.

To sort decisions quickly, ask four questions:

  1. Teams. Does it affect two or more teams, or an outside party such as an agency or a partner?
  2. Reversal. Would undoing it take an engineer-month or more?
  3. Data. Does it change data that other parts share, or data you must keep for years?
  4. Qualities. Does it move a the business has a target for, such as speed at peak or availability?

Two or more yes answers: treat it as architecture, with options, a written record and a review. Zero or one: the team decides and writes one line in a shared log. One exception: a decision that would take six or more engineer-months to undo is a one-way door even if nothing else applies, so it gets the full treatment. These thresholds are a rule of thumb you tune to your company, not an industry standard.

Cost of change is easy to estimate roughly. At Mangrove an engineer costs about $5,000 a month. Renaming a label on the Store app takes about a day, roughly $250. Splitting a table that four teams read takes maybe three engineers for two months, about $30,000, plus the risk of breaking store operations along the way. The numbers do not need to be precise. They need to show which decisions sit in which order of magnitude.

Triage every decision A decision comes up Significance test 1. Two or more teams? 2. A month+ to undo? 3. Shared or kept data? 4. Moves a quality goal? 0 or 1 yes 2+ yes Team decides one line in the decision log e.g. a label on one GRN screen Architecture options, trade-off, ADR and review e.g. where stock reports read from
The significance test sends most decisions back to the team that owns them, with one line in a shared log. Only the few that cross teams, are costly to undo, touch shared data or move a quality target get options, an ADR and a review. A reversal of six engineer-months or more always takes the right-hand path.

Quick check

Which of these is architecturally significant at Mangrove?

Three roles: software, solution and enterprise

Job titles vary a lot between companies, and in a small company one person may do all three jobs. The useful difference is the scope of the decisions and the time horizon.

  • A works inside one system. Decisions: the module structure, where boundaries sit (Monolith, modular monolith, microservices), the main patterns, how the code meets its speed and reliability targets. Horizon: weeks to months. Usually a senior engineer who still writes and reviews code.
  • A works on one business change that spans several systems. Decisions: which systems change, how they connect, who owns which data, what to build or buy (Build, buy or partner), and the migration path. Horizon: six to eighteen months. This is your role in this course.
  • An works across the whole company. Decisions: the portfolio of systems, shared standards (one identity provider, one cloud, one way to log), which business capabilities get their own systems, and the multi-year roadmap. Horizon: three to five years. Frameworks such as TOGAF, from The Open Group, describe this level.

The levels connect in both directions. Enterprise standards are guardrails for solutions: you design within them, and when a standard truly cannot work for one part, you ask for an exception with evidence instead of quietly ignoring it. Solutions in turn set guardrails for each system: the contracts between them and the data each one owns. Inside those, the software architect and the team are free. Information also flows upward. A solution architect who finds that the standard database cannot meet a reporting need tells the enterprise level, so the standard improves for everyone.

Enterprise: the company portfolio, 3 to 5 years standards lessons Solution: one change systems, 6 to 18 months Back office software decides: modules, code Partner app software decides: screens, sync versioned contracts Decides which systems change, how they link, who owns which data Decides shared standards (identity, cloud, logs), the system portfolio, and build or buy
Each level sets guardrails for the one inside it and leaves the rest free. Enterprise standards flow down into solutions; solutions set the contracts and data ownership between systems; each system's team decides its own inside. Lessons and exceptions flow back up.

Quick check

Head office has a standard that every app signs users in through one identity provider. You are the solution architect for the back-office move. What is your job here?

Trade-offs: better for these needs, at this cost

An architecture is only better or worse for a given set of needs, constraints and budget. So an architect's main tool is the honest trade-off. A trade-off record has five parts:

  1. The decision and its driver. One sentence, and the business need or quality target that forces it. (Turning vague needs like "fast and reliable" into numbers is the subject of Quality attributes and constraints.)
  2. Real options. At least two serious ones, plus "keep what we have". A list with one real option and two straw men is a sales pitch.
  3. What each option gives and costs. Score each against the same quality attributes, and add the cost to build, the cost to run and the cost to reverse.
  4. The decision and what you accept. Write the downside you are choosing to live with in plain words: "Partner app stock can be up to a minute behind."
  5. A revisit trigger. A measurable condition that reopens the decision, so it is not argued again every month and not kept forever by habit.

Here is a real example from Mangrove's back office. Today Lagoon Digital's Partner app reads stock levels straight from the back office's shared tables. Every time the back office changes a column, the Partner app risks breaking, and Lagoon releases on its own schedule. The options:

OptionGivesCosts and risks
Keep direct table readsNothing to build; stock is always currentAny schema change can break partner ordering; no one owns the contract
A stock API owned by the stock moduleOne versioned contract; back office can change its tables freelyAbout 1.5 engineer-months ($7,500); Lagoon must change its app; a call per screen
Stock-change events the Partner side consumesLoose coupling; partner screens stay fast if the back office is slowAbout 2.5 engineer-months ($12,500); stock a few seconds behind; needs an outbox (Events, the outbox pattern and sagas)

None of these is right in general. If partner shops order mostly the evening before delivery, a few seconds of lag do not matter and events win on resilience. If they check live stock before every order line, the API may be the better first step. The trade-off record makes that dependency visible, so the business owner can confirm the fact that decides it. The detailed design of APIs, events and data ownership is the subject of Integration and data ownership.

Quick check

Which of these is a complete trade-off record?

Influence: getting decisions adopted without authority

Most architects manage nobody. The engineers who build the system report to an engineering manager, the agency answers to its contract, and the business sets priorities. A decision that nobody follows is worth nothing, so a large part of the job is influence. Three practices make it work.

Make decision rights explicit. Write down who decides what, so nobody has to guess and nobody waits for the architect. A team decides anything inside its own module. The solution architect decides contracts between systems and data ownership, after hearing from the affected teams. One-way doors, such as a new database engine or a multi-year vendor contract, go to an architecture review where the engineering manager signs off. When rights are clear, most decisions move fast, and the slow, careful process is kept for the few that need it.

Seek advice before you decide. Andrew Harmel-Law describes the : anyone may make an architectural decision, as long as they first ask everyone meaningfully affected and the people with relevant expertise, and record the advice. You do not have to follow every piece of advice, but you must hear it. People support decisions they helped shape, and the advice often finds the flaw before it costs money.

Translate between floors. Gregor Hohpe calls this riding the : from the engine room where engineers work to the top floor where managers decide budgets and priorities. To Ken you say "this change cuts receiving freezes from twice a quarter to none, for about $5,000". To engineers you say "reports move to a read replica, so the stock tables stop fighting the report for locks". Same decision, two languages.

Finally, stay close to the code. Architects who never see the system lose credibility and start designing for an imagined one. Keep a small, regular hands-on share: reviewing pull requests that touch boundaries, building short spikes to test a risky option, pairing with a team during a migration. Write everything that matters down. A written decision outlives the meeting, travels to people who were not there, and stops the same argument from coming back. Remember too that team boundaries and system boundaries pull on each other (Conway's law, in Monolith, modular monolith, microservices), so a boundary you draw on a diagram only holds if a team owns each side of it.

Build it

We will set up the architect's basic toolkit for Mangrove's back-office move: a decision log, a cost-of-change estimate, a trade-off record and a decision-rights table. Keep them as Markdown files in the back office's repository, next to the code.

  1. Start a decision log

    One file, one row per decision, triaged with the four questions. Rows marked "architecture" get a full ADR later (the format is covered in Running a design review and in depth in Decisions, diagrams and reviews). Save it as docs/architecture/decision-log.md.

    Markdown
    # Back-office decision log
    
    | #  | Decision                              | Teams | Undo (eng-months) | Shared data | Quality target | Route        | Owner      |
    |----|---------------------------------------|-------|-------------------|-------------|----------------|--------------|------------|
    | 1  | Where stock reports read their data   | 3     | 1                 | yes         | receiving p95  | architecture | architect  |
    | 2  | Partner app access to stock           | 2     | 3                 | yes         | partner orders | architecture | architect  |
    | 3  | Release cadence and module boundaries | 4     | 6                 | no          | lead time      | architecture | review     |
    | 4  | Which module owns an article's price  | 3     | 2                 | yes         | price latency  | architecture | architect  |
    | 5  | Date picker library for buyer screens | 1     | 0.1               | no          | none           | team         | buying team|
    | 6  | New column on the stock report        | 1     | 0.05              | no          | none           | team         | data team  |
    
    Route rule: 2+ yes answers, or 6+ engineer-months to undo = architecture.
  2. Estimate the cost of change

    A rough estimate in engineer-months turns "this is risky" into a number managers can compare. Write the assumptions next to the result.

    Output
    Assumption: 1 engineer-month = $5,000 (salary and overhead, rounded)
    
    Decision 2: move Partner app from shared tables to a stock API
      Build the API in the stock module      1.0 eng-month
      Lagoon Digital changes the app         0.5 eng-month (their estimate, billed to us)
      Run both paths for 4 weeks, then cut   0.3 eng-month
      Total                                  1.8 eng-months  =  about $9,000
    
    Cost to reverse later, once 1,800 shops depend on the API:
      remove API, re-point the app, retest   about 2 to 3 eng-months  =  $10,000 to $15,000
    
    Cost of doing nothing: every back-office schema change needs Lagoon's
      review and a joint release (about 1 extra week of delay per change)
  3. Write the trade-off record

    For each architecture row, a short record with real options, what you accept and when you would revisit. This becomes the body of the ADR.

    Markdown
    ## Decision 1: where stock reports read their data
    
    Driver: the stock report has twice frozen goods receiving (about 1,280
    deliveries a day). Target: receiving stays fast while any report runs.
    
    | Option              | Build cost | Run cost        | Freshness  | Reversal  |
    |---------------------|------------|-----------------|------------|-----------|
    | A. Tune the query   | $2,500     | none            | live       | easy      |
    | B. Read replica     | $5,000     | replica bill    | seconds    | easy      |
    | C. Data warehouse   | $15,000    | warehouse jobs  | up to 1 h  | medium    |
    
    Decision: B now; plan C for month-end finance reports next quarter.
    We accept: reports can be a few seconds behind the stores.
    Advice from: Nadia (engineering), Tomás (data), two store managers.
    Revisit if: replica lag passes 30 s at p95, or finance needs
    cross-system reports that the replica cannot serve.
  4. Publish decision rights

    One table that says who decides what, so teams never wait for you on things that are theirs.

    Markdown
    ## Who decides what (back-office move)
    
    | Kind of decision                                  | Decides            | Must ask first                  |
    |---------------------------------------------------|--------------------|---------------------------------|
    | Anything inside one module                        | The owning team    | Nobody (log it)                 |
    | A contract between modules or with the Partner app| Solution architect | Both teams, Lagoon Digital      |
    | Who owns a table or an event                      | Solution architect | Every team that reads it        |
    | One-way doors (new database, vendor, 6+ months)   | Architecture review, Ken signs | Affected teams, finance |
    | Exceptions to company standards                   | Enterprise level   | Solution architect brings evidence |

Bring it to your team

Ask these when a decision lands on your desk or comes up in a design review.

  • "Which teams, outside parties and data does this touch, and what would it cost to undo in a year?"
  • "What are the real options, including keeping what we have, and what does each one cost to build, run and reverse?"
  • "What downside are we accepting, in one plain sentence?"
  • "What measurable change would make us revisit this?"
  • "Who has been asked for advice, and who will live with this decision every day?"
  • "Is this ours to decide, or does a company standard already cover it?"

Red flags

  • A design presented with one option, or with options nobody would seriously choose
  • Big decisions that exist only in someone's memory or a chat thread
  • Every small choice waiting for the architect's approval
  • A target diagram drawn without talking to the teams who will build it
  • "We use X because the big tech companies do" with no link to Mangrove's own needs

Practice

Triage the decision log in code

Write triage(decisions, engineerMonthly). Each decision has id, teams (number of teams or outside parties affected), reverseMonths (engineer-months to undo), sharedData and movesQuality (booleans). Count the yes answers: two or more teams, one or more engineer-months to undo, shared data, and a moved quality target. The route is 'architecture' for 2 or more yes answers, or for 6 or more engineer-months to undo; otherwise 'team'. Return, in input order, { id, route, reverseCost }, where reverseCost is reverseMonths times engineerMonthly, rounded to whole dollars. The starter gets the thresholds wrong.

JavaScript exerciseRuns in your browser with tests
function triage(decisions, engineerMonthly) {
  return decisions.map((d) => {
    let yes = 0;
    if (d.teams > 2) yes++;          // more than two teams?
    if (d.reverseMonths > 1) yes++;  // more than a month to undo?
    if (d.sharedData) yes++;
    if (d.movesQuality) yes++;
    return {
      id: d.id,
      route: yes >= 2 ? 'architecture' : 'team',
      reverseCost: d.reverseMonths * engineerMonthly,
    };
  });
}
Ctrl + Enter runs
Show a solution
JavaScript
function triage(decisions, engineerMonthly) {
  return decisions.map((d) => {
    const answers = [
      d.teams >= 2,            // two or more teams or outside parties
      d.reverseMonths >= 1,    // a month or more to undo
      d.sharedData === true,   // shared or long-lived data
      d.movesQuality === true, // moves a quality target
    ];
    const yes = answers.filter(Boolean).length;
    const oneWayDoor = d.reverseMonths >= 6;
    return {
      id: d.id,
      route: yes >= 2 || oneWayDoor ? 'architecture' : 'team',
      reverseCost: Math.round(d.reverseMonths * engineerMonthly),
    };
  });
}

The thresholds are "two or more" and "one or more", so they need >=. The six-month rule catches one-way doors that one team could choose alone, such as a new database engine. Rounding matters because months times a monthly rate is rarely a whole number: 0.3 months at $4,999 is $1,499.70.

Pass the exercise to finish this task.

Sort Ken's list and write one trade-off record

Ken forwards six questions about the back office: (1) whether buyers' price changes reach the Partner app through an API or nightly files; (2) which charting library the buyers' dashboard uses; (3) whether to move the whole back office to a different database engine; (4) the wording of an error message on the GRN screen; (5) who owns the article table that buying, stores and finance all update; (6) whether the back office keeps monthly releases or moves to weekly. Triage each with the four questions, then write a trade-off record for question 5.

  • Questions 2 and 4 stay with the owning team; 1, 3, 5 and 6 are architecture, and 3 is a one-way door
  • Each triage answer names which of the four questions are yes
  • The record for question 5 has at least two real options plus "keep what we have"
  • Each option has a rough cost in engineer-months or dollars, and what it gives up
  • The record states the downside accepted and a measurable revisit trigger
  • It names who you would ask for advice before deciding
Show a model answer
Markdown
Triage
1 Price changes to Partner app: teams 2+, shared data, moves price latency -> architecture
2 Charting library: one team, cheap to undo -> team
3 New database engine: 6+ eng-months to undo, all teams -> architecture, one-way door, review
4 Error wording: one team, a day to change -> team
5 Owner of article: 3 teams, shared data, months to untangle -> architecture
6 Release cadence: 4 teams, moves lead time -> architecture

## Decision 5: who owns the article table
Driver: three teams update article; a change by one broke the others twice.
Options
- Keep shared ownership: $0 now; breakages continue
- Catalogue module owns it; others call its API: about 2 eng-months ($10,000);
  stores and finance must stop writing directly
- Split: catalogue owns core fields, pricing owns prices: about 3 eng-months
  ($15,000); two owners to coordinate
Decision: catalogue module owns article; prices move to pricing later.
We accept: finance waits for an API change to add a field.
Ask first: buying, store ops, finance, Tomás (reports read article).
Revisit if: more than 2 API change requests a month wait over a week.

Check yourself

Ken asks you to "pick the best database" for the new pricing part of the back office. What is the most useful first reply?

Two years ago the team recorded the decision "all reports run on the primary database". Orders have since tripled and reports now slow down goods receiving. What should you do with the old decision?

The Store app team and finance disagree about whether stock adjustments must reach the back office instantly or by end of day. You manage neither team. What fits the architect's job best?

Flashcards

Open my review

Key takeaways

  • Architecture is the set of decisions that are expensive to change. Triage every decision with four questions and send most of them back to the teams.
  • Software, solution and enterprise architects differ in scope and time horizon; each level sets guardrails for the next and stays out of the inside.
  • A trade-off record has real options, costs to build, run and reverse, the downside you accept, and a measurable trigger to revisit.
  • Influence beats authority: explicit decision rights, advice before deciding, decisions in writing, and the same decision explained in business and engineering terms.

Sources

Episode transcriptThe decisions that are hard to undo · about 13 minutes · tap any line to play from there
  1. NadiaImran, picture a Tuesday morning in a store. Two supplier trucks are at the back door, and the staff can't finish receiving because the screen is frozen.
  2. ImranI don't have to picture it. That happened twice this year. Someone in head office ran the big stock report, and goods receiving stopped in the stores.
  3. NadiaAnd the fix everyone wanted was to make the report faster. But the real question was bigger. Why can one report freeze the stores at all? That question is architecture.
  4. ImranSo today is about what an architect actually does. I always thought architects drew boxes on whiteboards and then disappeared.
  5. NadiaSome do, and that's the problem we'll fix. Let's start with a picture.
  6. NadiaThink about a city. Families design their own houses. The kitchen, the paint, where the sofa goes. Nobody at city hall cares, and they can change it next year.
  7. ImranBut somebody decides where the roads go.
  8. NadiaRight. A district planner decides the roads, the water pipes, which blocks are homes and which are shops. On paper those choices are cheap. Later they're very expensive. Once a hundred houses sit on a road, moving it means tearing houses down.
  9. ImranAnd the planner doesn't build the houses.
  10. NadiaNo. The planner agrees the few things everyone must share, writes them down, and convinces the builders to follow them. Above the district there's a regional plan too: one power grid, one set of building codes.
  11. ImranSo the house is one system, the district is a group of systems that must work together, and the region is the whole company.
  12. NadiaThat's the three roles in one sentence. We'll come back to them. First, the definition that matters most in daily work.
  13. NadiaGrady Booch put it this way. Architecture is the set of significant design decisions, and significant is measured by cost of change. How much time, money and risk it takes to undo a decision once the system is built around it.
  14. ImranSo a button label isn't architecture.
  15. NadiaExactly. Renaming a label takes about a day. At roughly five thousand dollars per engineer a month, that's about two hundred and fifty dollars. Splitting a table that four teams read could be three engineers for two months. About thirty thousand dollars, plus the risk of breaking the stores.
  16. ImranTwo orders of magnitude apart. But how do I tell them apart quickly? Engineers make hundreds of decisions a week.
  17. NadiaWith four questions. If you can see your screen, the first diagram shows them in a box, with two paths coming out. If not, here they are.
  18. NadiaOne. Does it affect two or more teams, or an outside party like an agency? Two. Would undoing it take an engineer month or more? Three. Does it change shared data, or data you keep for years? Four. Does it move a quality target the business cares about, like speed at peak?
  19. ImranAnd then?
  20. NadiaZero or one yes, the team decides and writes one line in a shared decision log. Two or more yes, it's architecture. It gets real options, a written record and a review.
  21. ImranLet me guess at an edge case. One team picks a whole new database engine for its module. Only one team, no shared data. That's just one yes, so the team decides?
  22. NadiaGood trap, Imran. That's why there's one extra rule. If undoing it would take six or more engineer months, it's a one-way door, and it gets the full treatment even with only one yes. And these thresholds are a rule of thumb. You tune them to your company.
  23. ImranSo most decisions go back to the teams. That's a relief, actually. I thought the architect would want to approve everything.
  24. NadiaAn architect who approves everything becomes the bottleneck. The job is to find the few hard ones and make those well.
  25. ImranNow the three roles. Software, solution, enterprise. People use those words loosely.
  26. NadiaThey do, and in a small company one person does all three. The useful difference is scope and time horizon. A software architect works inside one system: its modules, its patterns, how its code meets speed and reliability targets. Weeks to months. Usually a senior engineer who still writes code.
  27. ImranAnd a solution architect?
  28. NadiaOne business change that spans several systems. Which systems change, how they connect, who owns which data, what to build or buy, and the migration path. Six to eighteen months. That's the role in this course, for the back-office move.
  29. ImranWhich leaves enterprise for the whole company.
  30. NadiaYes. The portfolio of systems, shared standards like one identity provider or one way to log, and the roadmap for the next three to five years. Frameworks like TOGAF, from The Open Group, describe that level.
  31. NadiaThe second diagram shows how they fit. Picture three frames, one inside the other. The company on the outside, the back-office change in the middle, and inside it two systems, the back office and the Partner app, joined by versioned contracts.
  32. ImranSo each frame sets rules for the one inside it.
  33. NadiaGuardrails, yes, and it stays out of the inside. Standards flow down. Lessons flow up. If the company's standard database can't meet a reporting need, the solution architect tells the enterprise level with evidence, so the standard improves.
  34. ImranInstead of quietly using something else.
  35. NadiaRight. Quietly ignoring a standard breaks the very coherence it exists for.
  36. ImranOkay, next idea. Trade-offs. Every architecture talk says it depends. I find that a bit frustrating.
  37. NadiaIt depends is only useful if you say on what. So the lesson gives a trade-off record in five parts. The decision and the business need behind it. Real options, at least two plus keeping what you have. What each option gives and costs, scored against the same targets.
  38. ImranAnd the other two parts?
  39. NadiaThe decision with the downside you accept, written in plain words. And a revisit trigger: a measurable condition that reopens the decision. Without it, people either argue it again every month or keep it forever by habit.
  40. ImranThis one is close to home for me. The Partner app reads stock straight from the back office's tables today. Lagoon Digital builds it on their own schedule.
  41. NadiaSo any column change can break partner ordering. Three options. Keep direct reads: free now, but nobody owns the contract. A stock API, about one and a half engineer months. Or stock change events, about two and a half, with stock a few seconds behind.
  42. ImranI'd go with events. They sound more modern.
  43. NadiaThat's the reasoning the record exists to stop. If shops order the evening before, a few seconds of lag don't matter and events win. If owners check live stock on every line, the API may be better. The record shows which fact decides it, and the business confirms that fact.
  44. ImranFair. Now back to the frozen stores.
  45. NadiaIn the lesson's example, Ken asks you to lead the back-office move. In your first week the teams send you fourteen open questions. You run the four questions on each one, and ten go straight back to their teams with a line in the log.
  46. ImranLike a date picker library, or a new column on a report.
  47. NadiaExactly. Four pass the test. The urgent one is where stock reports read their data. About one thousand two hundred and eighty deliveries a day go through that receiving screen. Three hundred and twenty stores, about four each.
  48. ImranAnd the options?
  49. NadiaTune the query for about two and a half thousand dollars, but the next heavy report can freeze it again. Move reports to a read replica for about five thousand, plus the replica's monthly bill. Or move them to the data warehouse for about fifteen thousand.
  50. ImranAnd Tomás would point out that finance reads end-of-day numbers anyway.
  51. NadiaHe does, before the review, because you shared the draft with him and with me first. So a few seconds of replica lag don't matter. The review picks the replica now and the warehouse later, and writes down the trigger: revisit if replica lag passes thirty seconds at p ninety-five.
  52. ImranThat leads to the part I find hardest. I'm a product manager. I don't manage engineers. How does an architect get anyone to follow a decision?
  53. NadiaMost architects manage nobody either. So the lesson gives three practices. First, make decision rights explicit. A team decides anything inside its own module. The solution architect decides contracts between systems and who owns which data. One-way doors go to an architecture review where Ken signs off.
  54. ImranSo nobody waits for the architect on things that are theirs.
  55. NadiaRight. Second, ask for advice before you decide. Andrew Harmel-Law calls it the advice process. Anyone may make an architectural decision, as long as they first ask everyone meaningfully affected and the people with expertise, and record that advice.
  56. ImranDo you have to follow the advice?
  57. NadiaNo, but you must hear it. People support decisions they helped shape, and the advice often finds the flaw before it costs money.
  58. ImranAnd the third?
  59. NadiaTranslate between floors. Gregor Hohpe calls it the architect elevator. To Ken you say this stops receiving freezes for about five thousand dollars. To engineers you say reports move to a replica, so they stop fighting receiving for locks.
  60. ImranLet me tell the failure story from my side. A previous project had an architect who drew the target picture alone and presented it as finished. Six months later the teams had built something else.
  61. NadiaThe ivory tower. The opposite failure is the architect who reviews every pull request and slows everyone down. The middle path: decide the few significant things, write them down with the people affected, and let teams own the rest. And stay close to the code.
  62. NadiaIn the Build it section you set up the toolkit as Markdown files in the repository. A decision log with one row per decision and its route. A cost of change estimate with its assumptions written next to it. A trade-off record for the report decision. And a table of who decides what.
  63. ImranAnd the practice has a small coding task.
  64. NadiaYou write a function that triages decisions with the four questions and the six month rule, and works out each one's cost to reverse in dollars. Watch the thresholds. Two or more teams means two counts.
  65. ImranFor my next design review, I'm writing down three questions. Which teams and data does this touch, and what would it cost to undo in a year? What downside are we accepting, in one sentence? And what measurable change would make us revisit it?
  66. NadiaAdd one more. Who has been asked for advice, and who lives with this every day?
  67. NadiaHere's one to think about. A decision recorded two years ago says all reports run on the primary database. Orders have since tripled. Do you edit the old decision? Take a second.
  68. ImranI'd want to fix it so it's correct.
  69. NadiaYou write a new decision that supersedes the old one, and you name what changed. The old one was reasonable in its context. Keeping it shows the history, and the new one shows why the system moved.
  70. ImranLet me sum up. One, architecture is the decisions that are expensive to change, and four questions tell me which ones those are. Two, software, solution and enterprise architects differ in scope. Three, an architect wins by authority from the role.
  71. NadiaThe first two are right. The third is the trap. Most architects have no authority over the teams. They win with clear decision rights, advice before deciding, honest trade-offs in writing, and the same decision told in business and engineering words.
  72. ImranSo influence is the real tool, and writing is how it travels.
  73. NadiaNext time, we take "fast and reliable" and turn it into numbers you can test, in a workshop with the whole team.
Finished reading?Mark it complete to fill in its stop on your course line.

Use it at work

Architecture review

Today's design on the board with the questions a review asks as notes, and criteria for the targets you must keep.

Open in the System Design Studio
Next stopQuality attributes and constraints
Was this lesson helpful?
Questions and discussion

Loading the discussion…