My team has this one shared component that gets involved in like every feature’s development. This year, we’re loading like 5 different features onto it, all with different timelines, and my head’s about to explode trying to figure out how to make it all fly.
How does everyone else do their software releases? Do you freeze prod and then do one big release later? Throw everything into prod during dev, hope no one sees the unreleased stuff, and just announce it later? Or something else entirely?
Versioning. “This version of SharedComponent has this and that functionality” and “this version of OtherComponent requires this specific version of SharedComponent”.
If you’re getting stuck with significant “this has to come with for that to go” problems - that aren’t literal dependencies, but arise from code wonk or poor separation of concerns - you may have some “architecture smell” that could be addressed. Obvious “usual suspects” include things (whether at a single class, component, or entire service level) that have too many responsibilities/purposes/reasons to change, and mismanaged abstraction.