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?
Use semver.
Don’t casually make breaking changes. I don’t care if it’s “easier”.
Write tests
Write good commit messages and release notes.
Every PR to main must be releasable to prod. If you don’t want customers to see it, use a feature flag.
Have a revert plan.
Do code reviews. Don’t just slap “lgtm” on it and approve. Check out the code and run it.
Release often
Have monitors in your environments for errors.