It’s release day. You’ve been preparing all week, but you’re still nervous. You coached the team to limit the size of the release, but the developers were on a roll and now there are twenty user stories ready to promote into production. The last time your team had to move that much metadata, they were at the office until midnight.
The release into staging yesterday went well. The change sets required hours of tweaking to get right, but in the end, the move from UAT to Staging completed and the QA team successfully ran the smoke test for the new features in under an hour.
If you could run a full regression test against staging you would feel a bit more confident, but QA never seems to have the bandwidth to write tests for all of the old issues. You were able to get the business to spend an hour doing a blitz test against the most critical processes and so far there are no red flags. The sandbox refresh you did on staging just before the release from UAT means that the differences between staging and production should be minimal.
That’s what worries you. There are always issues.
Then there was the release last year that exposed customer data to the wrong partners. You never really recover from that kind of mistake. So you spent three hours checking the permission sets and profile changes assigned to the Community users to make sure that will not happen this time.
You review the run list one last time and head for the conference room to meet with your team. You’ve done all you can for now. It’s time to get the show on the road.
Does this story sound familiar?
Tips for Ensuring a Painless Release Process
You and your team shouldn’t dread release days. Here are a few tips for ensuring a smooth and seamless release process:
- Segregate duties: Let developers loose in their domain but keep close control of the release manager’s domain.
- Minimize differences between environments: If Test and Production differ only by new features, you increase the likelihood that the release will work as expected.
- Automate Promotions: If you automate promotions, you can verify the automation scripts in earlier stages so you know you won’t miss anything in your release to production
- Keep Releases Small: This minimizes the possibility of error and makes it easier to roll back changes if necessary.
- Release user stories: If you organize your release around user stories, then if a feature needs to be reverted, you will know what changes to undo.
- Establish quality processes: Invest in Selenium, static code analysis tools, and treat Apex test coverage as a tool for good instead of a necessary evil.
- Automate compliance checks: Well-designed permission sets, profiles, and sharing rules in Salesforce are critical to information security but investing in automated compliance checks will help you sleep better at night.
Developers and release managers should love release day. It’s your opportunity to show off your hard work to your customers and coworkers. Use these tips as a checklist to ensure the right processes are put in place to make this a reality.