Any time you deploy changes to production it is very critical because end user might get effected if something goes wrong so every time deployment happen you should have a deployment strategies.

1. Initial preparation and Roll back plan

a) While making production deployment always deploy to full copy sandbox first and validate your changes.
b) Write down all manual steps.
c) Always backup your production code.
d) make roll back plan.

2. Schedule your release with following steps

  1. Announce a maintenance window.
  2. Stop all setup changes on production.
  3. Create a staging environment.
  4. Migrate changes to the staging environment.
  5. Change environmental dependencies and services from testing settings to production values.
  6. Lock users out of the application.
  7. Test deploy using the Metadata API.
  8. Deploy to production.
  9. Unlock the production organization.

3. Notify user about changes

a) If chatter is enabled make a chatter post in different groups.
b) Send email communication to all users.
c) Prepare change log with all new features.
d) Setup training or presentation for all users if require.