I recently faced a major issue with our release management process. We've had three unexpected production problems this month because no one could remember which features were included in the latest release. For instance, Engineering said feature X was good to go, and QA gave it the thumbs up last week, but somehow it didn't make it into the build that was deployed on Friday.
We've been using Slack threads and manually checking Git tags for tracking, but it's becoming precarious. How do we effectively report to leadership regarding what shipped each sprint? What tools and processes do you use for release management to ensure everyone is on the same page?
2 Answers
Communication and well-defined processes are key. Here’s my workflow:
1. Use Git tags for release triggers and ensure they're reflected in your artifacts for traceability.
2. Before pushing to production, compare the current and upcoming Git tags to understand the changes.
3. Create a script in Bash or any language of your choice to automate this comparison.
4. Once you have the details, confirm with the service owner that everything is as planned before rolling out changes.
To avoid these surprises, you should implement a solid branching strategy and ensure your PRs are well-defined. Are you employing CI (Continuous Integration)? Even better, integrate your version control with your issue tracker to ensure everything aligns. This way, testing and QA can operate seamlessly with development.

That approach is great, but I suggest you establish processes first and make sure all your tools work together effectively. This could solve most of the issues you're facing.