By What, or For What?

There is a classic mise en place argument in professional kitchens: do you organize your station by ingredient type: all proteins together, all aromatics grouped, sauces in a line, dry goods in sequence; or do you organize it by dish? Everything for the “duck à la hack”, together; everything for the “risotto de agileer”, together.

The answer is: yes. Or in slightly more words:

Store by type. Work by function.

This same argument shows up everywhere, wearing different faces - and at the same time it’s a beautiful example of polymorphism. :)

Note: I wrote this in pieces, across different times and different rabbit holes, so it may read more like a tapestry of facts than a coherent argument. Some sections were summarized with AI assistance. It is what it is.

Don’t Know Much Biology

Biology spent 250 years classifying animals by what they look like; by morphological type. Then molecular phylogenetics arrived and revealed that vultures evolved twice, independently, on two continents: Old World and New World vultures are no more related than a human is to a bat. Falcons turned out to be closer to parrots than to hawks. The thylacine and the gray wolf evolved nearly identical skulls across roughly 180 million years of complete separation; so similar that telling them apart is a standard paleontology exam question. The initial taxonomy was wrong because it confused appearance with ancestry.

Cladistics, the phylogenetic revolution launched by Willi Hennig (German biologist and zoologist) in 1950, insisted that classification must reflect genealogy, not looks. It took until the 1990s and molecular sequencing for it to win. Yet functional ecology didn’t disappear: it runs in parallel, grouping organisms by ecological role regardless of lineage. Biologists now hold both classifications simultaneously, because each answers a different question: phylogeny tells you what organisms are, functional ecology tells you what they do.

Spent a Week in a Dusty Library

Libraries ran the same experiment with information. Melvil Dewey (American librarian and educator) built his classification system in 1876 around subject type: a rigid hierarchy of ten classes, a hundred divisions, a thousand sections - a clean, logical structure that worked beautifully until reality got in the way. The fundamental flaw is this: a book on music therapy could legitimately sit in either music or medicine, but the physical book can only be in one place. You have to pick a side and hope your reader guesses the same one.

S.R. Ranganathan (Indian librarian and mathematician) cracked this in 1933 with faceted classification: describing every book simultaneously along multiple independent dimensions: Personality, Matter, Energy, Space, Time. It sounds abstract, almost philosophical, until you realize that every time you filter Amazon results by size, color, brand, and price all at once, you are using exactly Ranganathan’s idea, just with better fonts and a shopping cart.

They’ll Hang Us in the Louvre

Museums illustrated the same tension with unusually public drama. MoMA (The Museum of Modern Art in NYC) spent decades organizing work chronologically by medium type: the canonical “march of isms,” painting here, sculpture there, photography elsewhere, each movement flowing into the next in a tidy narrative of progress. MoMA2000 (a landmark, year-long exhibition cycle at MoMA) tried something radical: thematic organization, abandoning chronology entirely. Critics called it a “post-historical hodgepodge,” and the backlash was swift. The 2004 reopening reverted to strict chronology; but that clean timeline came with a quiet cost: only 4% of represented artists were women. The 2019 reinstallation finally attempted a hybrid: a broadly chronological framework, thematic groupings within periods, media mixed deliberately, and regular rotation of the collection. Women artists rose to 23%. Not a perfect answer, but a more honest one.

The V&A (The Victoria and Albert Museum in the UK) tried a different experiment in 2021, replacing its medium-based departments (Furniture, Textiles, Sculpture) with sweeping chronological mega-departments. The outcry from curators and craft historians was immediate and loud enough that it was reversed within months. Someone put it well: their material expertise was the museum’s “intellectual DNA”: a capability-building structure you cannot simply flatten in the name of visitor-friendliness, no matter how tidy the floor plan looks.

Paradise City

City planning provides the sharpest cautionary tale. Euclidean zoning, established by the 1926 US Supreme Court ruling in Euclid v. Ambler Realty, gave cities the constitutional power to separate uses by type: residential here, commercial there, industry over there, each in its own clean box. Le Corbusier (French-Swiss architectural designer and painter) was delighted; his Ville Radieuse and CIAM’s 1933 Athens Charter pushed this to its logical extreme: a perfectly sorted city, rational on paper, sterile in practice.

Then Pruitt-Igoe was built in St. Louis: thirty-three eleven-story towers of pure residential type-zoning, designed by Minoru Yamasaki (American architect), no mixing of uses, no street life, no reason to be outside. Demolished between 1972 and 1976 after becoming uninhabitable. The critic Charles Jencks (American landscape architect and designer) declared that modern architecture died there, at 3:32 pm, on July 15th of that year. Cabrini-Green Housing in Chicago followed the very same arc.

Jane Jacobs (American-Canadian journalist and author) had already explained why, in 1961, in The Death and Life of Great American Cities: vitality requires mixed primary uses, short blocks, buildings of varied age, and high density. Life happens at the intersection of uses, not in their separation. A street that is only residential is dead at nine in the morning. A street that mixes a bakery, an office, and three apartments is alive all day.

Carlos Moreno’s 15-minute city and form-based codes replacing use-based zoning in cities like Buffalo and Miami are all variations of Jacobs’s original argument: organize by how people live, not by what category the building belongs to.

Seven Nation Army

The US military separated its branches by type - Army, Navy, Air Force, Marines - which worked well enough for peacetime administration and training, where specialization is a virtue. Then Operation Eagle Claw in 1980, the failed Iranian hostage rescue, revealed something embarrassing: Army helicopters and Air Force planes could not communicate by radio across service boundaries. Operation Urgent Fury in Grenada three years later was worse. Army and Marine units literally could not talk to each other in the field: an Army officer famously used a personal credit card to call in air support by phone, which is either darkly comic or a precise measure of how badly type-based silos had calcified.

Six years after Eagle Claw, the Goldwater-Nichols Act passed with overwhelming bipartisan support. It forced joint command structures, requiring each service to “organize, train, and equip” - type-based, for capability building - while combatant commanders exercise operational control across all forces. The principle became explicit: grow specialists by type, deploy them by mission.

The German Wehrmacht had arrived at the same conclusion thirty years earlier with Kampfgruppen: ad hoc combined-arms units integrating tanks, infantry, artillery, and engineers under a single commander, assembled for a specific operation and dissolved when it was over. The Marine MAGTF institutionalized the same insight more permanently: ground, air, logistics, and command as a single coherent unit. Today that logic continues into multi-domain task forces embedding cyber, space, and electronic warfare capabilities at the squad level.

Monkey Business

Organizational design replayed the whole debate in business terms. Alfred Chandler, Harvard business historian, documented in his 1962 Strategy and Structure how DuPont nearly collapsed after WWI because its functional organization - all engineers together, all salespeople together, all finance together - couldn’t coordinate across multiple product lines simultaneously. Each silo was competent; the seams between them were not. The multidivisional structure was invented as the fix: organize by product line, give each division its own functional staff, let coordination happen inside the unit rather than across the whole company.

Conway’s Law formalized the deeper insight in 1968: any organization that designs a system will produce a system whose communication structure mirrors its own. In other words: your code looks like your org chart. If your teams are siloed, your architecture will be too, whether you planned it that way or not.

Hey, Teachers, Leave Us Kids Alone

Education did the same thing, only more reluctantly. The subject-based curriculum - math here, history there, literature in a third room - was imported from the Prussian model in the 1830s and has barely moved since, which is either a testament to its durability or an indictment of institutional inertia, depending on your mood.

Finland’s 2016 curriculum reform mandated phenomenon-based learning periods, studying climate change or the EU across subject boundaries simultaneously; though it did not abolish subjects, despite nearly every English-language headline claiming otherwise.

McMaster University’s 1969 medical program was the first to place realistic clinical problems at the start of learning rather than the end. Students encountered an actual case, a patient with symptoms, before being taught the underlying science, which turned out to be a more honest model of how medicine actually works. Harvard Medical School adopted it. Maastricht University built its entire curriculum around it. High Tech High in San Diego runs entirely on project-based learning with no textbooks, and still sends the vast majority of its seniors on to meet UC and CSU requirements.

The emerging consensus is hybrid: maintain subject structures for building deep expertise, supplement with substantial interdisciplinary project periods for application. The same answer, again.

21st Century Breakdown

The digital transition made this concrete. Research by Gerry McGovern across 600+ organizations - including Cisco, Microsoft, and the European Commission - consistently found that users care about completing a small number of tasks, and that task-based navigation outperforms category-based navigation every time (surprise, surprise.) The implication is clean: classification correctness and findability are different goals. Type systems optimize for one; function systems optimize for the other.

Amazon’s two-pizza teams, the Spotify model’s squads and tribes, Team Topologies’ stream-aligned teams; all variations of the same move: make the primary unit of organization a capability delivery unit, not a discipline silo. The Spotify model became famous enough that everyone copied it, without noticing that Spotify’s own co-author, Anders Ivarsson, had warned it was “aspirational, never fully implemented.” Autonomous squads created fragmentation; chapters failed to deliver on their expertise promises. The surviving consensus looks familiar: cross-functional product teams as the delivery unit, with discipline chapters and guilds maintaining expertise - the same two-layer structure that every other field eventually arrived at.

Lost in IKEA

Retail makes this viscerally obvious. Traditional grocery stores use grid layouts with around 30_000 SKUs organized by product category: efficient for restocking and inventory management, but terrible for discovery. IKEA’s forced-path showroom loop does the opposite: it guides customers through styled room displays, not “sofas” but “a living room, and here is what it looks like.” Customers end up seeing roughly 100% of the merchandise, versus around 33% in a conventional store. Then the layout switches: the warehouse pickup section reverts to a type-based grid at the exact moment your intent shifts from inspiration to acquisition. IKEA understood the two modes and designed for both.

Japanese konbini (small, ubiquitous, often 24-hour convenience stores) organize by customer mission and time of day: freshly made bento (a traditional Japanese single-portion takeout) at the front for morning commuters, beverages near the counter for quick visits, hot food appearing in the afternoon. The store is essentially re-sorted several times a day around what you are likely to want right now. Trader Joe’s takes a different angle, curating around 4,000 SKUs in small stores and achieving the highest sales per square foot of any US grocer - roughly $1,750 versus Walmart’s $400 - by organizing around what you might want to eat rather than what category the ingredient belongs to.

Software, Hard Way

In software engineering, we went through this slowly and painfully. Every project started the same way: all controllers in one folder, all services in another, all repositories lined up in a third. Then someone shipped a feature and touched seventeen files across eight directories, and eventually someone asked the obvious question: why do we have a UserController, a UserService, a UserRepository, and a User scattered across four different places, if they all exist solely to serve the same concept? Package by layer vs. package by feature is just the kitchen argument, in Java.

Spring Modulith, released in 2023, went further and added compile-time verification of module boundaries. Its documentation put it plainly: “traditionally, application frameworks have provided structural guidance aligned with technical concepts… shifting focus to align code structure with the domain has proven to lead to better structured applications.” Shopify - the largest Rails monolith in existence at 2.8 million lines of Ruby, maintained by 1,000+ developers - built Packwerk specifically to impose domain boundaries on top of a framework that didn’t have them. Their engineering team diagnosed the root cause directly: “all the issues we were experiencing were a direct result of a lack of boundaries between distinct functionality.”

Now you know why I preach modules: clean boundaries are not optional.

What this means for everyday development: we need two views of the code simultaneously. One is by type: packages, layers, and all that. The other is by capability: essentially a set of function calls across packages that together deliver a single piece of value, something closer to a stack trace than a directory listing.

Something worth pondering: OOP is fundamentally about organizing types around data. This is the essential reason why thinking about capabilities in OOP is not about hierarchies; it should be about functions, kept separate from data.

Pattern Emerges

The pattern across every domain and example in this piece is consistent enough to be called a law.

Type-based organization is good for building capability and storage. It is where expertise lives, where the army trains its recruits, where the library catalogs, where the museum builds curatorial knowledge, where the engineer goes deep.

Function-based organization is good for deploying capability. It is where the dish gets made, where the mission gets executed, where the neighborhood actually works, where the feature gets shipped.

Every mature system eventually figures this out and runs both in parallel. The interesting part is not which one to pick; it is the ritual of switching between them: mise en place, the combat task force, the sprint kickoff, the museum rehang. Herbert Simon (American psychologist) called these “nearly decomposable hierarchies”: a structure found in complex systems, both natural and artificial, where subsystems are relatively independent of each other in the short term, but interact in meaningful ways over longer timescales. The domains where things go badly wrong are usually the ones that picked one organizational principle and declared the problem solved.

There is no wrong answer to the question: “By What, or For What?” The trick is recognizing that it was never really a choice.

🧧
I am not defined by my opinions. We adopt, change, and refine our opinions, but they do not make us who we are. It matters less whether we agree and more whether we understand each other.
> BUY ME A COFFEE <