A Survival Guide for Deployment to Production: It is going to be Ok

It is upon you.  The moment that you have been working toward after many status calls, on-site workshops, hours of configuration and testing you have made it to the Deployment to Production.  What could go wrong right?  You have done everything within your power to ensure this deployments success.  You have tested, retested and have followed best practices of migrating your work from a developer, full and now production instances.  It all checks out.  What could go wrong?

 

In a previous life, I was a deployment engineer.  That’s right, for two years my sole purpose, everyday all day, was to perform deployments for all of the firms’ projects.  In that time, I saw even the most well run projects get derailed by a poor deployment.  In the end things just happen on deployment night. I hope that by reading this it will give you some insight as to what to watch for before deployment and how to make this as stress free as possible.

 

To understand what is needed for a deployment to run smoothly I believe you need to have an understanding as to why a deployment would fail. Some of these include:

1.       Missing Elements

  •  If you are missing components that components in your change set depend on, you will get a deployment error.

2.       Unit Test Failures

  • If you are deploying code you have to run unit tests in order to deploy to production. Unit test failures can occur for numerous reason. Sometimes these can be resolved if a component is missing but others this could require development work.

3.       Code Coverage less than 75%

  •  Saleforce 101, you can’t deploy to production if your test coverage for the org is less than 75% .If you have been diligent about making sure your org has adequate unit tests and is up to date this error should not be a problem.
  •  If you do have an org that is less than 75% this error is a show stopper and you will need to speak with your team as to know what steps you should take next.

 

In order to avoid some of these pitfalls I have listed a couple of steps you can take to make deployment night a breeze.

1.       Have a list of components you are deploying and who built it. 

  •  I can’t tell you the amount of times where I would come across a deployment error and spent lost time into looking as to why it was failing instead of just going to the source of who built it.  This way you know exactly who built it and who to contact if things don’t go through.

2.        Have any manual steps or installations well documented and written step by step.

  • Some aspects of a deployment can’t be done by either a change set or Metadata API so they will need to be done manually.  Be sure to have all the steps that are required, be it pre deployment or post deployment to make sure nothing I missed.

3.       Validate the Change Set to Production Before Deployment

  • I can’t tell you what peace of mind it gives you knowing that the package has been validated before deployment.  This will not only expedite the deployment but also ensure that you will not have deployment errors that could hinder your progress.

4.       Plan Deployments Around Business Hours

  • In order to not disrupt an organizations day to day usage be sure to perform the deployment after business hours. I always try to have deployments happen on a Thursday evening since it is after business hours but before the weekend so no one will be hard to get a hold of in case something goes wrong.

5.       Create a Deployment Plan

  • Have a plan of how you are going to tackle this deployment by listing who will be available on your team on what times, roles and responsibilities and a clear plan for communication throughout the deployment.
  • Break out what time tasks need to happen and what is to be done in that amount of time.
  • Create a backup plan in case something needs to be reverted back to its original state.

6.       Clearly Communicate that Plan to the appropriate parties

  • This may be the most important step you can do, if there is no clear communication between all who are involved the deployment could be a disaster.
  • Clearly communicate to the team when the deployment will start, when to expect to perform their roles and lastly who to contact in case of an emergency. 

 

With these steps and a bit of practice, deployments to production will become an ease and you will soon be able to finish strong on every project regardless of how the project went in the meantime.

 

 

About Alex

Alex Trakowski is a Consultant at Statera. A Salesforce professional with 5+ years of CRM, CLM and CPQ experience.