The image of decoupled (two train cars separated) is clear. In computer science, writing "decoupled" code is a Good Thing, it implies breaking code into discrete pieces that can be tested independently, but put together easily.
What would be the opposite, in this context? Coupled is an obvious answer, but that seems to be more the fact of pieces being put together. I'm looking for something that represents bad design, such that pieces are too tightly integrated and can't be split apart.
Monolithic is the best I can come up with, but isn't great. Monolithic could be something that can/should be broken up, but could also mean something that can't/shouldn't be broken up. I'd ideally like something that is unambiguously negative, if possible.
Best Answer
I had considered suggesting spaghetti coding as accurately characterising something which was hugely entangled and not easily disentangled, but I found that it appears as part of an even better term.
Jeff Attwood quoted a 1997 paper by Brian Foote and Josef Yoder:
"Big Ball of Mud" and "spaghtetti coding" are unambiguously negative and rather pejorative; calling something "entangled" is probably a diplomatic understatement.