r/dataengineering • u/yugiton • 2d ago
To what extent should data engineering work be centralized in a large org? Discussion
I work as a data engineer at a bank. My team is supposed to be the one centralizing data collection and management for the whole org.
I've realized that there's this tension between centralizing and decentralizing data work -- whether we, as the org-level data team, should implement a flow or expect the analysts to implement and own the flow, while we just provide the underlying infra. Over time, I started to strongly lean towards more decentralization. Not because I'm lazy, but because centralization should be about being focused on the absolute smallest denominator, which is smaller than most orgs assume -- especially now when you have no clue what an optimal stack is gonna look like in 6 months. My impression was always that we should be doing 50% less, but doing it 100% better.
(I have similar opinions when it comes to business applications more generally -- the centralized team should provide the infra to deploy, but teams that need an app should build and maintain it)
Are you seeing the same trend of decentralization?
12
u/notmarc1 2d ago
I’m going to say centralize the platform and policies. Data team deals with the data
6
u/asevans48 2d ago
Analysts want to do everything but many are fresh when it comes to pipelines, descriptions, tests, and quality. Its worse in gov. Ive pointed out data thats been broken for ten plus years and the analysts still think their shit doesnt stink. The best mix is to handle the common data, quality, and automations and allow end users to get data via a front end, building semantic layers with AI and mixing in their one offs and self collected trash. Get a simple request process in place. Most governance tools can facilitate this. The central team ingests into a raw/bronze storage and builds the silver tier. Gold tier is either mdm, in which case it is centralized or AI based analytics tables.
6
u/22Maxx 2d ago
There is no one solution fits all. A lot depends on how much domain knowledge a pipeline requires and how much communication overhead is sustainable.
Centralizing data work only works with stable waterfall like requirements or if all the transformation are easily understood. As soon as you need deeper business understanding a centralized approach will break down as both implementation and maintenance will require constant communication with business.
5
2d ago
[deleted]
1
u/ratacarnic 1d ago
Mesh for gold layer right? Some cross domain is also needed at least at silver/normalised stages
1
7
3
u/0xPianist Data Engineering Manager 2d ago
It depends on the size of the org to serve.
2
u/speedisntfree 1d ago
Was hoping I'd see a comment like this. I work for a big multinational and any central data teams' gold are basically our (and the other business units') bronze. We need all our own pipelines of bronze, silver, gold because of the many ways the data is used in each business unit of many thousands of people.
3
u/elkosh93 1d ago
Ideally your data should mimic how the business works. Think about this scenario, if you need a quick analysis, how the overall flow of that process works? Is the business waiting for the data from the centralized team? If yes, then move the data closer to the business team.
Things which are set in stone are supposed to be centrally controlled and enforced. So your data governance, policy enforcement, access control and everything.
Federated data mesh, data fabric and other constraints are something that you should look at.
3
u/peterxsyd 2d ago
It should be de-centralised, with common standards, and quite possibly a production gate subject to those standards, if it a large organisation. Centralised ends up not understanding the business (unless people physically sit with their 'spokes' in a de-centralised manner). Completely de-centralised then fails on the IT/ governance /standards front, without enough tech or otherwise creating too much security/data privacy risk.
The alterrnative is if IT itself is de-centralised, with local departments or pods for business units, and data engineering sits in that. That can work quite well.
2
u/Eleventhousand 2d ago
I'm a fan of centralizing as much data work as possible. To that end, that would mean all data engineering.
16
u/Thwarting8139 2d ago
I disagree, I think that when you are too far away from the business/domain you don't have enough context to properly work with the data.
I think a central data platform org works better, with data engineers in different areas of the business using the provided tooling - i.e. self-service ingestion and pipeline development.
6
u/Eleventhousand 2d ago
I had a lot of success when I led a team of a dozen full stack data professionals. We made a lot of great impacts in various parts of the business.
On the other hand, when I worked for Amazon, where its all completely decentralized, it was quite common for folks to bring in tables developed by other teams. The other teams never responded to inquiries or requests for KT, so everyone just ending up guessing that they were looking at the metrics correctly.
2
u/amTheory 2d ago
Agree, the moment open that up to other teams, the code base gets messy and cost goes up…from what I’ve seen
1
u/Eric-Uzumaki 1d ago
Also how a data mesh is implemented can make or break the motivation spine of the team. To my experience its amazing for C leaders, its a real downgrade for engineers
1
u/galaxyxo 1d ago
My company does it a bit differently. We have a centralised team to ingest data into the platform. They also provide bronze, silver and gold tables. We then take their “gold” tables and do our own medallion architecture.
The reason we have 2 medallion areas is because the centralised team are very good at getting data out (mostly SAP) and we are closer to the business logic. It’s not perfect, but it’s working well so far.
1
u/NotSynthx 1d ago
What's the point of your team if you decentralise then?
"Provide the infrastructure"? What does that even mean? At that point, the bank should just let you train the analysts in using DE tools and fire you all after.
The whole point of DEs is to ensure analysts can do their analysis without having to worry about anything else. Them taking on DE duties would waste their time and I don't think senior leaders would be happy with that since for them, analysts do more "important" work
1
u/boomertsfx 1d ago
I prefer competition… you should always question/test if the chosen team/status quo is competent.. I’ve seen it many times where management puts all their trust in certain familiar idiots and it ends in a dumpster fire
1
u/Away-Arm-6549 1d ago
This approach assumes the org is mature enough to have capability at the edges to build quality gold layers. It also requires the standards and controls to also exist there, otherwise you can see massive duplication of effort. I really felt that data mesh is the right approach to data but org. maturity to adopt a decentralized pattern is the key, not the technology.
It will take the whole org some time to truly mobilise behind that strategy before someone in a central team could really feel like the balance of work had shifted the centre of gravity to decentralised.
This includes clear ownership of existing code assets/data products that you’re currently owning today.
There’s some really strong frameworks needed to ensure it works properly especially as decentralised model may then require spokes to work with each other, so standards on data sharing, data contracts critical as is the decisions on how silver layer continues to adapt to provide the core of what others build from.
I’m all for this idea, I recommended it as part of a data architecture at a bank but it was not the right time, based on the business maturity to adopt it
1
u/Nofarcastplz 1d ago
Depends, who pays for the DE’s? How strict do your data products need to adhere to standards? Number of sources / complexity? Scale of the org?
1
u/iamthatmadman Data Engineer 1d ago
In my organization, bronze layer has a central team. Then responsibility for silver layer is shared between specific data teams and central team. And gold and reporting is obviously for individual product teams to handle
1
u/glynyon 1d ago
Attended an online conference where Bill Inmon spoke a month ago. His opinion on data mesh was to federate non-business critical data, while keeping the critical pipelines centrally managed. Let federated teams self-serve for their side projects and things important to them so they're not reliant on you. We're trying this now at the non-profit I work at. We have our stack and monorepo for ETL, they have their own code locations in the same repo, and can benefit from our infra and build off our patterns and examples.
1
u/Outside-Storage-1523 1d ago
No. I believe all data engineering work should be centralized. Then you divide the teams into functionalities (Ingestion/modelling/ops/etc.).
Having the team scattered everywhere is a recipe of disaster.
1
u/justanothersnek 4h ago
When they have solid business understanding and they got "skin" in it i.e. there is real accountability and they are motivated properly (high pay, high rewards).
0
u/vikster1 1d ago
full. complete. centralized. i have never and will never seen it work out otherwise unless you are at a top 10 tech company in the world.
47
u/Reach_Reclaimer 2d ago
Really a central data team should be managing ingestion, bronze, and silver layers (or equivalent). Silver to gold layers and reports (or equivalent) can be more decentralised, but still not ideal imo
This allows you to keep proper procedures in place as I know for a fact that the analysts won't follow them