Adobe CoreTech

From iGeek
Software companies often centralize, then decentralize code, because there's no right way, thus the other way looks better.
Software companies often centralize, then decentralize code -- because there's no right way, so the other way always looks better. When you create a libraries team (Core Tech) -- they are beholden to many masters (products) -- and thus their implementations are always a lowest common denominator, pleasing no one. And they get to be the hated bottleneck for all problems.
ℹ️ Info          
~ Aristotle Sabouni
Created: 2019-02-04 

The idea of Core Tech (or a Core Libraries team), is always there are things (code) that many products need to share. You have a choice:

  1. Each team creates their own version of a library -- which means 17 different versions of the same thing, with 17 times as many bugs and compatibility issues (as things are close but not quite the same, across products).
  2. You create a team to offer one version of a library -- which means 1 version of the same thing (fewer bugs/support/compatibility issues)... but you have to create a lowest-common-denominator solution, or many variants of some things to support variations.

There's no winning.

You create #2 for consolidation -- then everyone whines about how they're the bottleneck. All that centralization requires communication, debate, finding what the core features are, implementing it -- then finding out the specializations each product needs, and so on. It takes more time to get everyone to agree on how it should work, no two agree in exactly that, and then nobody gets what they wanted. So it takes much longer to get things done, and nobody is really happy.

Eventually, after all products whining long enough, "we can't ship because we're waiting on Core Tech", or we can't do that, because of Core Tech -- the company blows up Core Tech and moves individual libraries of functions to some product team with the most vested in that. Then they optimize for themselves, and everyone else is screwed. And the old version is not maintained well, and nobody to hold accountable for it not getting updated.

I was in a similar BU (Business Unit) called Core Services -- we did things like bug software, common software licensing, or managing bugs/issues between Adobe and other companies -- because all products needed to work with those other companies. A single point of contact worked better (I was that). Then feel the solution is to move it to each team, and since the teams don't know about what the other teams are asking, or how to work with each company, they get far less accomplished. But the failures are their own.

So Core Tech was damned when they existed... Damned years later after they were dissolved, because no one to support the long dead libraries and API's. Once Adobe killed all the common libraries (CoreTech), they then created a new centralized library division for Login (Identity), Networking, Payment and other Web Libraries called Cloud Tech.... but they were the bottleneck, hated for the same reasons Core Tech was... and they got moved into various products directly... which changed nothing.

The problem is not how you do something, but how well you do something.


GeekPirate.small.png



🔗 More

Adobe
Some things I've experienced or observed while working at Adobe.



Tags: Adobe

Cookies help us deliver our services. By using our services, you agree to our use of cookies.