Economics deep-dive
We are our own worst enemy.
Reed's Law and the security stack we built against ourselves. The cost of running a security program doesn't grow with the number of tools you own, it grows with the number of ways those tools can combine, and that single change of accounting explains why programs freeze at a scale that feels far too small for the freeze to make sense.
Reading time: about 26 minutes. Evidence tiers are mixed and flagged inline: Tier A for the source theory (Reed, Perrow, Conway, and the companion studies behind the 2025 MIS Quarterly editorial), Tier B for the Gartner consolidation survey, Tier C for the vendor-sponsored tool-count surveys from IBM/Ponemon and Panaseer, which are self-reported and are read here as a direction rather than a magnitude.
The reveal
I set out to name a law.
While drafting a chapter on why security programs get slower and harder to change as they get bigger, I wrote down a relationship I was sure I had found on the job. The cost of running a security program doesn't grow with the number of tools you own but with the number of ways those tools can combine, which is a far steeper curve. Because it felt like mine I gave it my own name, drew a figure, and felt briefly clever about it. The feeling lasted exactly as long as it took to do the reading, because what I had "discovered" was Reed's Law, which David Reed published in 1999 and again for a wider audience in a 2001 Harvard Business Review piece, roughly twenty-five years before I got to it. The further I read the more company I found, because the idea that complexity is the thing quietly killing security has a lineage that runs back to at least 1999, and the narrower idea that we do this to ourselves already has names attached to it that aren't mine. So this essay is the thing I should have written instead of a law: an account of a curve other people already found, pointed at the one place I keep watching it bite, which is the security organization and the pile of tools it runs.
I should say what I mean by the title before anyone reads the wrong thing into it, because in this field "our own worst enemy" reads almost automatically as the insider threat, the employee who clicks the link or walks out with the database, and that is not the sense I want at all. The enemy I mean is the stack we assembled on purpose, one careful and defensible purchasing decision at a time, until it grew into something no one on the team can hold in their head or safely change. Jon Oltsik put the closest version of this in print in July 2024 when he wrote that "sometimes the cybersecurity tech industry is its own worst enemy," and he was talking about disconnected tools, lock-in, and sprawl rather than a malicious insider, so I want to borrow his sense and his framing openly. The complexity is self-inflicted, it came from good intentions and sound individual choices, and that is exactly what makes it hard to talk about, because there is no villain to point at and no single decision to blame.
Prior art
The received lineage.
The thing I thought I was discovering has been said, in one form or another, for a quarter century, so the move is to walk the lineage rather than pretend the ground is fresh. Bruce Schneier put the flag down in 1999 when he wrote that "the worst enemy of security is complexity," and he meant it structurally, that every added feature and option and interaction is a place where a mistake can hide and where an attacker can work. Dan Geer carried the deepest version of it, first in the 2003 paper he wrote with six co-authors, Schneier among them, arguing that reliability's central enemy is complexity, and then more sharply in his 2018 essay A Rubicon, where he made the mechanism explicit in a way that matters for everything below: "as complexity hides interdependence(s), ergo complexity is the enemy of security." That wordhides is the part I keep coming back to, because it says the danger isn't the number of moving parts on its own but the interactions between them that no one can see or account for, which is a claim about combinatorics dressed as a claim about design.
Charles Perrow got to the structural version of this from outside security entirely, in Normal Accidents in 1984, where he argued that catastrophic failure is a property of systems that are both interactively complex and tightly coupled. The reason I reach for him here is that he keeps those two as separate axes rather than folding them into one word. A system can be intricate and slack, which is where he put universities and research firms, so the surprises are survivable because there is time to notice and intervene. It can be simple and tight, which is where he put dams and power grids, so there isn't much to go wrong but there's no room to catch it when something does. It is the corner where both are true, where he put nuclear plants and chemical plants, that produces the accidents he called normal. That distinction is the one this essay needs, because it says the count of the parts and the tightness of their binding are different variables, which is the thing I come back to at the end.
More recently the idea has climbed from the machine up to the organization, and Schneier took his own 1999 line up there himself twenty-six years later, in a March 2025 MIS Quarterly guest editorial written with Anthony Vance of Virginia Tech and titled, in as many words, "Complexity is the Worst Enemy of Security": Studying Cybersecurity Through the Lens of Organizational Complexity. That is the conversation moving exactly where I want to take it, from the box on the rack to the meeting where the box gets approved. It's an editorial introducing two studies that do the measuring rather than an empirical paper itself. I should say now that the two of them are more careful than their own title, because they spend most of a page on a finding that cuts against the flat reading, granting that most technological complexity is good in the sense that it buys capabilities nobody would give up, while still holding that the finding does not negate the principle. I'll come back to that passage later, at the point where it starts costing me something.
The objection
"Complexity is not the enemy of security. Bad design is."
There is a problem with hanging a whole essay on "complexity is the enemy," and the problem has a name I respect more than most. Phil Venables, whose essays are the register I try to write toward, answered this exact question in the negative in May 2021 in a piece titled "Is Complexity the Enemy of Security?", and his answer was blunt: "Complexity is not the enemy of security. Bad design is." He went further and said that reflexively blaming complexity is a form of "being lazy," a way of throwing up your hands at a system you actually chose to build the way it's built. He returned to the theme in April 2023 in "Handling Complexity," which makes this a position held in public across years rather than a passing remark. I can't write this essay past him. If I asserted the received framing and left his objection unaddressed, a reader who has done the same reading would rightly conclude I hadn't, and the piece would deserve to lose them.
So I want to take the objection at full strength rather than soften it, because Venables is right that complexity by itself is not fate, that a well-designed complex system can be more secure than a badly-designed simple one, and that "it's complex" is where a lazy postmortem stops instead of where a real one starts. If I'm going to keep the title I have to earn it against exactly that, by showing that the complexity I'm describing really is a design outcome, that it came from decisions, and that the decisions were individually good, because only then does "we are our own worst enemy" become an honest description of engineering rather than a shrug.
Where both are right
The synthesis
Here is where I think Venables and Schneier and Geer are all describing the same animal from different sides. The complexity in a modern security stack is a design outcome, exactly as Venables says, but it is not any single architect's design, and no one lazily reached for it. It is the accumulated residue of a hundred locally-sound decisions, each one a best-of-breed purchase made by a competent team solving a real problem, the EDR that genuinely detected what the last one missed, the SOAR that automated the toil, the second SIEM stood up because the first couldn't hold the new log source, and every one of those was the right call in the meeting where it was made. The design failure isn't in any of the individual choices, it's in the fact that the choices compound, and that the thing they compound into was never designed by anyone at all, because the person who approved the twelfth tool wasn't reasoning about the four-thousand-odd possible groupings the twelve of them can form.
That is why I can agree with Venables and keep the title in the same breath. He is right that it's design and not fate. I'm adding the part that makes the design failure collective and combinatorial rather than personal and lazy, which is that the interactions between components grow far faster than the components themselves, so the system passes out of any individual's ability to design it long before anyone notices it has. We are our own worst enemy precisely because we built the thing that's beating us, deliberately, with good reasons at every step. The trap is that the accounting was wrong: we budgeted for the tools and paid for the combinations. Reed's Law is the name for how fast that second bill grows, and it is the piece the lineage was missing, because Schneier and Geer told us complexity hides the interdependencies and Venables told us design is the real variable, but none of them put a number on how quickly the interdependencies outrun the design.
The accounting error
Three laws, three bills
To see the accounting error clearly it helps to line up three ways of valuing a network, because the security stack is a network of tools and the security team is a network of people, and each of the three laws prices growth differently. Sarnoff's Law, from the broadcast era, says the value of a network grows in proportion to the number of nodes, N, which is the arithmetic of a one-to-many system where each new viewer is worth about what the last one was. Metcalfe's Law says value grows with the number of pairwise connections, which is N times N minus one over two, so roughly N squared, because in a two-way network what matters is who can reach whom and that grows quadratically. Reed's Law goes one level further and counts not pairs but groups, and since a set of N members can form 2^N − N − 1 distinct subgroups once you set aside the empty set and the singletons, Reed argued that the value of a group-forming network grows exponentially, far faster than either of the others.
Sarnoff N · Metcalfe N(N−1)/2 · Reed 2^N − N − 1
Reed meant this as a law of value, a reason group-forming networks like online communities became so powerful, but the same combinatorics that make the value explode make the complexity explode when you read the sign backwards. That inversion is the whole move of this essay. Run it over a security stack and each of those 2^N − N − 1 subgroups is a possible interaction, an integration to build or a data flow to reconcile or a place where two tools disagree about what a given event means. You are not billed for the tools, you are billed for the subgroups. This is the accounting error stated precisely: you budgeted Sarnoff, one line item per tool, and you planned Metcalfe, the pairwise integrations you could see coming between this tool and that one, but you paid Reed, the combinatorial mass of possible groupings that no one put on the plan because no one could enumerate them. Fred Brooks found the human version of the middle term back in 1975 when he pointed out that a team of N people has N times N minus one over two communication paths, which is why adding people to a late project makes it later. Reed's insight is that once the members can form coalitions rather than just pairs, the count jumps another exponential level.
I'm not the first to invert a network-value law into a complexity-cost argument. I want to credit the person who did the adjacent version, which is Scott Brinker, who wrote a piece called "Metcalfe's Mirror" at chiefmartec.com in June 2021 making the same rhetorical turn in the marketing-technology world, taking a network law and holding it up to show the tool-stack complexity on the other side. He held Metcalfe up as a mirror instead of reusing the curve, since the exponent he actually put on martech complexity was n to the e, a little steeper than the pairwise n squared. He was writing about martech rather than security, but the shape of the argument is the one I'm borrowing, and the fair thing is to say so.
The organizational half
The same math, run over people.
The part that made me sure this was worth writing is that the exponent doesn't stop at the tools, because the organization that runs the tools obeys the same combinatorics, and this is the section the surveys can't reach. When you propose a change to a security program of any size, you are not negotiating with a list of owners, you are negotiating against a landscape of possible coalitions, every subset of stakeholders who could decide this change threatens them and align to slow it down. You can't know in advance which coalition will actually form, whether the identity team and the network team will make common cause against the new architecture or whether the compliance function will quietly ally with a vendor whose renewal is at stake. Because you can't know which of the 2^N − N − 1 possible groupings will materialize, you end up pricing the change as though any of them might. That pricing, the pre-negotiation you do in your own head before you even float the proposal, is the drag, and it grows with the same exponent as the tool complexity because it is the same exponent.
I've watched this from the inside more than once, on teams where a technically small change sat unmoved far longer than the work itself could explain, because moving it required a set of people to agree in a room. Each of them could see a different downstream owner who might object, so the safe move for everyone was to wait for someone else to go first. Nobody in those rooms was being lazy or obstructionist, which is the uncomfortable part and the reason this connects back to Venables, because from the inside the delay reads as prudence, as responsible change management, as exactly the diligence you'd want. Only from outside, or in hindsight, does it read as a system so interconnected that it has frozen itself. The coalition never even has to form, because the mere possibility of it is enough to price the change out.
I should be precise about what sets that exponent, because 2^N is a ceiling rather than a forecast, and the distance you sit below it is the part you control. Reed's number assumes every member can combine with every other, which is true of an idealized network and false of most real organizations, so what matters is not how many owners a program has but how tightly each one is bound to the others, whether their work has to be reconciled in a meeting or merely lands in the same format. That is a property of the interfaces between them rather than of the count. This is Perrow's distinction arriving where I said it would, since coupling is his second axis and it moves independently of how many parts there are. Melvin Conway made the structural version of the same observation in 1968, arguing that organizations which design systems are constrained to produce designs which copy their own communication structures. It's worth being careful about which structure he meant, because he was explicit that the org chart only resembles the communication structure to the degree that protocol forces communication to run along command lines. Read in the direction this essay needs, it says the two halves of the argument are one argument, because the coupling in how people actually talk and the coupling in what they build are the same coupling seen twice.
Evidence, with its tiers
What the surveys can and can't tell us.
The survey evidence for tool sprawl is real, but it is mostly vendor-sponsored and mostly self-reported, so every number below arrives with its tier and its caveats attached and none of it carries more weight than that. IBM's 2020 Cyber Resilient Organization Report, run by Ponemon across more than 3,400 security and IT professionals, found that respondents estimated their organizations were using more than 45 different security tools on average, and that each incident they responded to required coordination across around 19 of them. The teams using more than 50 tools ranked themselves 8 percent lower in their ability to detect an attack, 5.83 against 6.66 on a ten-point scale, and around 7 percent lower at responding, 5.95 against 6.72. That is Tier C evidence for my purposes, sponsored by a vendor whose recommended remedy in the same release is a product line it sells, and built on self-ratings and respondent estimates, not on anything counted, so I read it as suggestive of a direction rather than proof of a magnitude. IBM is careful about this too, saying only that an over-abundance of tools may hinder and that the findings suggest without showing. The caution earns its keep, because a cross-sectional self-report like this has obvious reverse causation available, since large and heavily-attacked enterprises both buy more tools and tend to mark themselves harder. The direction is still the interesting part: past some point, more tools went with worse self-assessed performance, which is at least consistent with a complexity cost that outruns the capability each tool adds.
The consolidation appetite shows up in survey work Gartner published in September 2022 and fielded that March and April, which found 75 percent of organizations pursuing security-vendor consolidation, up from 29 percent in 2020, across 418 respondents in North America, Asia Pacific and EMEA. I'd put that at Tier B, since Gartner published the headline figures themselves with the sample and the fielding window disclosed, though the underlying document sits behind their subscription and this is a proprietary panel with no published instrument or margin of error. The half of the finding I actually care about is the stated reason, and Gartner's own summary is unusually direct about it, that organizations want to consolidate "to reduce complexity and improve risk posture, not to save on budget or to improve procurement," with 65 percent expecting to improve their overall risk posture against only 29 percent expecting reduced spending on licensing. I should flag a coincidence in those numbers before it trips somebody, because that second 29 percent is a different quantity from the 2020 baseline at the top of this paragraph and the two just happen to land on the same value. All of it cuts against the easy read that consolidation is a budget exercise, and it lines up with the argument here, because if teams are consolidating to cut complexity rather than spend, they are telling you the complexity itself has become the thing they're paying to solve.
Panaseer's 2022 Security Leaders Peer Report put the average higher still, 76 discrete security tools per enterprise, across more than 1,200 senior security leaders at companies of 5,000-plus employees, fielded by Censuswide in September 2021. That is Tier C again, vendor research from a company selling continuous controls monitoring, which is to say the problem the number describes is the problem the product addresses. I'll use the figure standalone, and then I want to spend a paragraph on the comparison that usually travels with it, because the comparison turns out to illustrate this essay's thesis better than the number does. The framing you'll see nearly everywhere is "76, up from 64 in 2019," and I went looking for that 64 because I was on the point of using it myself. It isn't in Panaseer's 2019 report, which states no average at all and offers only a distribution, that 55 percent of organizations ran more than 50 tools. The figure Panaseer did put out in 2019 was 57.1, in the press release rather than in the report itself, across a couple of hundred respondents. The 64 is real, though, because Panaseer derived it for the 2022 report by re-segmenting the 2019 data down to comparably sized firms. They disclosed exactly that in a footnote. What happened next is the part worth watching, since the footnote didn't travel: downstream coverage carries "from 64 to 76" as a clean year-over-year trend with the re-segmentation gone and the roughly sixfold difference in sample size between the two endpoints gone, so a defensible methodological adjustment became a fact by repetition. That is the disease in miniature, and I'd rather show it than cite around it.
The rebuttal I owe
The monoculture objection
The obvious answer to everything I've said is to consolidate, to collapse the 45 or 76 tools down to one platform from one vendor and let the exponent collapse with them. That answer has a well-known rebuttal I have to deal with. Geer and his co-authors made it in 2003 in "CyberInsecurity: The Cost of Monopoly," and the argument is that a monoculture is its own kind of danger, because when everyone runs the same platform a single flaw in it becomes a systemic flaw across everyone. The diversity you gave up to reduce complexity was also buying you resilience against a common-mode failure. That paper cost Geer his job at the time and it has aged well, so I take it as a genuine constraint. The choice isn't simply complex-and-diverse versus simple-and-consolidated, it's a triangle with a third corner that most of the argument ignores.
The way I read the triangle, single-vendor consolidation trades Reed-complexity for monoculture risk, buying you a smaller exponent at the price of a shared point of failure and a lock-in that Geer would recognize on sight. Best-of-breed over proprietary glue trades the other way, buying you diversity and defense-in-depth at the price of the full combinatorial complexity, every tool speaking its own dialect and every integration hand-built, which is the world the survey numbers describe. Neither corner is comfortable, and the debate mostly proceeds as if they were the only two. The third corner is the one worth arguing for, which is diversity held together by open standards rather than by proprietary integrations, and its whole appeal is that it buys the diversity Geer wants without paying the Reed exponent that best-of-breed normally charges.
The third corner
What the narrow waist buys
The third corner works because of where you put the standardization, and the shape I keep drawing for it is a bow-tie, wide on both sides and narrow in the middle. On the left you let the tools be as diverse as the mission needs, many sensors and collectors and analytics engines from many vendors. On the right you let the consumers be just as varied. In the middle you force everything through a narrow waist of open, non-proprietary formats and schemas, so that the data lands in something like Apache Iceberg tables described by an open event schema such as OCSF rather than in each vendor's private store. The 2^N − N − 1 subgroups mostly cost you where they have proprietary surface to form around, when tool A and tool B each have their own representation that some integration has to reconcile. Collapse the representations to one shared open format in the middle and most of those possible integrations stop being distinct problems, because they're all just reads and writes against the same thing. You keep the diversity on both wings and you starve the coalition explosion in the middle, because there's far less private surface for the subgroups to attach to.
I said I'd come back to where Schneier and Vance cost me something, and this is the place. Their editorial gives most of a page to a companion study by Tanriverdi and co-authors, whose main result runs the way this essay does, since the more service and health-IT and governance complexity a multi-hospital system carried the more likely it was to be breached. One finding inside it lands close to the opposite of what a flat complexity-is-bad reading predicts, though, because the systems that adopted enterprise-wide data analytics platforms added IT complexity by any ordinary measure and saw their risk of data breaches go down. Schneier and Vance don't wave that away. They take it as the reason to say most technological complexity is "good" in the sense that it provides useful capabilities, and to call for work on an optimum level of complexity rather than a minimum one. I want that on the page because it's the strongest empirical thing I know pointing at the narrow waist, given that consolidating scattered data onto one shared analytical platform is close to the move I'm arguing for and the measured outcome went the right way. It also arrives with its own caveat, which Tanriverdi and his co-authors supply themselves, since that platform amplified the technical and people control weaknesses the underlying complexity had already created. Internal breaches rose even as overall breach risk fell. So the reading I take from it is that where you put the shared layer matters at least as much as whether you have one, and that a waist which centralizes the data without centralizing the permissions has moved the problem rather than solved it.
This is also where agreeing with Venables pays off rather than costing me, because if the complexity is a design outcome then it is a thing you can redesign, and the narrow waist is the redesign. I want to be careful not to oversell it, since I've built this architecture as a reference stack and tested it in a lab, which is a long way from a fielded result at scale. The reversibility it's meant to buy, the ability to pull one engine out and drop another in because the data was never trapped in the first engine's format, is something I've demonstrated in that reference environment and have not yet measured across a production migration. So I'd call it a strong design claim backed by working evidence, and it's the thing I'm actively trying to measure.
What the theory asks of a new owner
The domain that arrives next.
There is a version of this argument that points at whoever arrives next, and I think the theory owes them an answer rather than describing the curve and stepping around it. Everything above says complexity accretes from individually sound decisions, and hiring a specialist for a genuinely new surface is among the soundest decisions an organization makes, so every time a program decides it needs an owner for cloud security, or identity, or now AI, it is making exactly the locally-correct call this essay says compounds. I've been in the room on both sides of that, as one of the existing owners watching a new function get stood up and as the specialist being stood up. The uncomfortable thing is how similar it feels from either chair, obviously necessary and obviously the right hire, with nobody in the room asking what it will cost to coordinate with.
The answer follows from the coupling rather than from the count, which is why I wanted that distinction in the argument proper rather than buried in the caveats. A new owner can't decline to exist, because the surface is real and somebody has to know it, but they can decide how much of the organization their work has to touch in order to get done. That is the whole design problem restated at the scale of one hire. So the question worth asking of any decision a new domain makes is not how much work it adds but what shape the work has, whether it creates a new node, or a new edge between nodes, or a new place where two owners have to reconcile a disagreement they didn't previously have, or whether it merely puts more traffic down an edge that already carries some. Work routed through channels that already exist costs almost nothing on this curve. A parallel stack with its own console and its own data and its own escalation path costs the most, and it is also the most natural thing to build when a mandate is new and the budget is briefly available.
There's a stronger claim available and I want to hold it loosely, because it's a design claim I'd argue for rather than an outcome I've measured. A new domain arrives with a mandate, a budget, and a short window of permission to ask why things are the way they are, which is the one moment an organization will pay to delete something rather than add to it. The permission debt, the identity sprawl, the three overlapping governance forums that all have to be briefed before anything ships, those are things everyone agreed should be simplified and nobody was ever funded to simplify, and a new mandate is a forcing event that can pay for that work under a name the budget will actually approve. If it does, the new domain comes out complexity-negative on net, adding one owner while removing more coupling than it brought. What makes that possible is worth naming, because it isn't foresight, and the failure this essay describes was never that anyone lacked intelligence. It was that nobody was accountable for the aggregate and nobody was paid to subtract, and a new mandate is the rare moment when both of those are briefly untrue.
I want to guard that against the obvious cheat, because the fastest way to make a complexity number fall is to absorb every neighboring domain into one function and declare the result simple, and the monoculture section above is exactly why that fails. Centralizing the domains rebuilds the single-vendor corner in the org chart, trading the coalition explosion for a chokepoint where one team's blind spots become everybody's, so it relocates the complexity into a single calendar rather than reducing it. The organizational narrow waist has the same shape as the technical one, which is to let the edges keep owning their own work, the way they already own their own systems, and to standardize the interface between them instead of the ownership of them. What a new domain publishes is then a shared way of describing the risk, not a queue everything has to pass through. That is also what the Tanriverdi caveat is telling you at the org level, since a platform that centralized the data and left the permissions alone got a worse internal-breach outcome for its trouble.
The opposite failure is real too, and I suspect it's the one a person who has just read an essay about complexity is most likely to commit, which is refusing to build what the job needs because building it would spoil the argument. Some of a genuinely new surface really is new, and prompt injection and agent autonomy and model supply chain don't reduce cleanly to controls anybody already owns, so a domain that under-builds in the name of minimalism hasn't reduced complexity so much as left something undefended. The discipline I'd hold to is to add the minimum new capability the surface actually requires, keep it loosely bound to everything else, and spend the rest of the mandate deleting.
Concessions
Honest limits
I owe the numerate reader a few concessions, because the exponent is a direction and I don't want to be caught claiming it's a count. The cleanest objection to Reed's Law is the one Bob Briscoe, Andrew Odlyzko, and Benjamin Tilly made in IEEE Spectrum in 2006, when they argued that the network-value laws are overstated because they assume every connection and every group is worth the same, which they plainly aren't. Their own estimate for the value of a network grows more like N log N than like N squared or 2^N. That discount applies just as much to the cost side as to the value side, so I am not claiming your complexity literally doubles with each tool you add. Anyone who quotes me as saying a fiftieth tool imposes 2^50 units of anything has misread me. What I'm claiming is a complexity class and a direction, that the cost of combination grows faster than the count of components and in the same combinatorial family that Reed described, and that this is enough to explain why programs freeze at a scale that feels far too small for the freeze to make sense.
I should also concede that the three-law framing is a rhetorical scaffold more than a settled taxonomy, that Sarnoff's Law is more a retrospective naming than a law anyone derived, and that Metcalfe's own N-squared has taken the same N-log-N beating as Reed's exponent. I'm using the three of them as an accounting story, budgeted-Sarnoff, planned-Metcalfe, paid-Reed, because the story captures the shape of the mistake, and not because I think the exponents are precise. Perrow's two axes come with a related caveat that his critics have pressed for decades, which is that he never supplied criteria for measuring either one, so I'm using complexity and coupling as a way to think and not as a scoring scheme. And I should be honest that the organizational half, the coalition math run over people, is the part I can argue from experience but not measure, since I can't put a survey instrument on the coalitions that didn't form, so that piece stays qualitative on purpose, grounded in what I've watched rather than in what I've counted.
Bottom line: complexity really is doing the damage the lineage from Schneier through Geer keeps pointing at, and Venables is right that it's a design outcome rather than a fate. Both of those are true at once because the design that produced it was collective and combinatorial rather than any one architect's failure. We built the stack ourselves, one defensible best-of-breed decision at a time. We budgeted for the tools while the real bill was the exponential mass of ways they can combine, which is the curve Reed named in 1999, took to a business audience in 2001, and I re-derived a quarter-century late. Because it's design and not fate it's fixable, and it's fixable in both halves, since the coupling a narrow waist starves in the stack is the same coupling a new owner can decline to add to the organization. The fix I'd stake something on is moving the standardization to an open narrow waist so you can keep the diversity without paying the coalition explosion, which is the one move that answers Geer's monoculture worry and Venables's design point in the same stroke, and which is a better thing to have found than a law with my name on it.
The architecture this argues for.
The narrow waist is not a metaphor here, it's a build. MOAR explained walks the bow-tie component by component, and the Lab holds the reversibility evidence the claim above leans on, which is a reference stack rather than a production migration and is labelled that way throughout.
Back to writing →