Determine which fields are not a part of active business processes and are candidates for deprecation.
Recommendation is to use a tool like Schema Lister to pull a list of your fields before updating to have a detailed list of fields referenced that you can share through the process.
It's important to have a reference of the field values before the update (just in case you need them for future reference.
You can accomplish this through several methods - options are to export a report with Record ID, Name, and any other relevant identifying fields PLUS
It's important to understand where fields are referenced to proactively identify areas which tools need to be addressed.
As part of this process you will want to review where the fields you're looking to delete are referenced and plan to adjust as needed. Within SFDC you can leverage the 'Where is this used?' button.
If you have additional tool owners, you will want to communicate your planned field deprecations with them. Suggestion is to share the 'why' of the update, field details (Field Label, API name, link, data type, formula, help text), and next steps with a timeline - along with a time-bound ask of them (ie 'Please review by noon Friday 12/15 and confirm on this thread that we are good to move forward with this update).
Append 'archive_' to field label (personal preference, I've found this help to identify these fields more easily from the Field list. It may also be helpful to work through this step as part of your 'Preparation' steps, depending on the situation)
Within the field, click the 'Field Level Security'.
Check the 'Visible' box twice (to deselect all options) then click 'Save'
This is a recommended (but optional) step.
Go through the process of deleting the fields within a Sandbox --- this will show any references that will need to be reconciled.
Once you'd deleted the fields in the Sandbox you can run Apex test classes to catch any errors that might occur when Apex runs ( 'Apex Test Execution' within Setup, click 'Select Tests...', select all then 'Run')
This allows you to potentially catch some areas you weren't aware of including any errors that might come from scheduled automation, etc.
Plan for your deletion in Production. Recommendation is about a week after the completion of the other steps within the 'Staging' section. This could take some time (including planned and unplanned untangling) so I would plan accordingly and block off a chunk of time to work through this.
Referencing your Schema Lister list, add two columns -- one with data validation to track 'To do', 'Done', 'Issue', and notes. Work through your deletion, working through any tricky 'tendrils' but putting any hairier issues aside to circle back on (so they don't block progress)
If you're coordinating with other ops people to delete, you can also assign specific fields to certain people to help
Once all fields are deleted, follow up on your initial email thread to close the loop with your stakeholders from earlier as well as anyone else that should be informed of the update. Re-state the fields deprecated and attach any archives as needed.
*Note: you can recover deleted field for up to 14 days post-deletion