Why sometimes a few lines of code changes take several days of deployment. Find the answers and Code Move Strategy:-
Recently In one of my project I faced the following situation: We did a code change in trigger. Changed a string value from “Demo” to “Trial”. The code change hardy took 1 minutes. Client was aware of the changes and time it will take so we estimated the work as 2 hour including code changes, analysis of its impact and deployment. When the developer finished deploying the code changes it took him 2 days (16+ Man-hours). Yes it is a surprise. Now let me list out the problems he faced.
- Code coverage of the existing trigger was 12% (Our Company Best Practice is 85%)
- Code coverage of overall production org was less than 75%. Yes this is hard to believe but this do happen when we push things in production without code coverage.
- Existing test classes were failing in production.
- Trigger in production was different than in Sandbox. Yes this is also possible when we have multiple sandboxes and people do code overrides as they are competing against each others.
- Deployment had a narrow slot of 2 hours during which end client were not working.
- Batch Jobs working on the same object were preventing the Trigger to deploy.
We gave our best as a team and came up with the following strategy which changed our entire company’s estimation and requirement analysis process.
Code Move Strategy:
Step 1: Check the existing production code coverage by “Run All Test”.
Step 2: Lookout for test class failures if any.
Step 3: List out the Batch jobs running in production.
Step 4: Compare the code between production and sandbox before working on it. If any differences found report it to your end Client/Manager.
Step 5: Make sure if you are deploying an apex code its code coverage should be above 85%.
Step 6: Use Changeset for small size deployment with less components. Keep the changeset names in a well defined order.
Step 7: Use Eclipse or Ant Migration tool for deployment with many components.If you have the privilege of Full copy sandbox use it for trial deployment and go live. Full copy sandbox gives you an advantage of less risk more effort based deployment process.
Step 8: Deactivate the necessary batch jobs and validation rules before deployment.
Step 9: Make sure the deployment is in the right time slot when end users are not working or keep the team informed for any surprises that may come while deployment or after that.
Step 10: Validate and Deploy. Reactivate the Jobs, VRs etc.
Step 11: If possible test the deployment in production or ask the respective feature manager to test it in production and report feedback.
|Big Size Project with 200+ Components||Y||N||Y|
|Small size changes with less than 10 Components(Page Layouts, Data Model, Validation Rules, etc)||N||Y||N|
|Code comparison: Compare the code before deployment||N||N||Y|
|Quick deployment: We need a deployment done within 5 minutes.||Y||N||Y|
|Non related org: Different Salesforce Organization||Y||N||Y|