In my article the other day about Conway’s Law and Data Modeling, I got some great feedback that made me wonder if silos are always a bad thing. After thinking a bit more about silos in the general context (not just data modeling), there’s some nuance to silos I hadn’t considered.
The conventional wisdom about silos is that they are bad. We’ve all seen the consequences of poorly managed silos - communication breakdown, kingdom building, bureaucracy, and ossification.
But silos don’t just appear out of thin air. They’re often a natural byproduct of growth and specialization. Silos aren’t just a phenomenon of massive companies. Silos form for several reasons, even in small organizations. There might be deep expertise and specialization among a group of people that naturally creates separation of concerns. You want this separation, as it establishes clear accountability and ownership for who is responsible for what. These might be painfully obvious, where marketing is responsible for marketing, sales handles sales, and so on. But silos are fractal. Within IT, there might be sub-silos of engineering, data, and help desk. Each sub-silo has a sense of identity and cohesion. Here, silos naturally form around domains of expertise and capabilities. When silos work well, these domains collaborate.
Silos become dangerous and get their well-deserved reputation when they become rigid, isolated, and protectionist. Again, one needn’t look far to see this in companies of all sizes and maturities. In data, this manifests itself in many ways - arguing about metrics and meaning, data hoarding, or data being weaponized against other departments. A big part of data modeling is corralling people from various silos in the (often feeble) attempt to derive a shared understanding of vocabulary and concepts across the organization. People are so deep in their domain that they forget others don't share their vocabulary or mental models. Jargon is an efficient shorthand for them, and they lose the ability to "translate" it back into everyday business language that people in other silos can understand. When people say data modeling is challenging and complex, this is the type of stuff they’re talking about.
Some argue that we should work to break down silos. But what do you replace them with? An unstructured, chaotic organization that will inevitably develop silos? Not happening.
Your data model serves as a social contract, and it is one of the most powerful tools for creating a shared language. Good data modeling forces conversations that bridge the natural gaps between silos. A successful data model is a map that different experts from various silos can view together and agree on where they are and where they need to go.
Silos on their own aren’t necessarily good or bad, no more than gravity is good or bad. Instead of viewing them as a negative, embrace the silo for what it is - a way of assembling humans around things they’re good at.
Silos is a representation of the politics. And politics isn’t bad.
There are bad and toxic politics. But not all politics are bad.
Completely valid point. There’s different types of silos I guess. Team silos, communication silos, data silos, etc. Could be as simple as one team siloing their transformations of base data from another. And vice versa.
I think it starts to go wrong when each silo comes up with their own definition of what business terms/objects/data objects are or mean and separate logical definitions of metrics.
Great if they share it but also breaks down when it’s shared and the other team disagrees with it. They don’t have to accept it I guess. But this is where differing reporting numbers can happen.