Tip: Basic Isolation Steps When Troubleshooting
I want to provide a very simple yet very effective troubleshooting step that a great number of people tend to avoid. I will try to be as brief as possible with my explanation but I will immediately outline the single step.
Create a new user account when trying to isolate issues, login to the new user account and attempt to reproduce the issue.
I will now take the opportunity to explain why this is a very important isolation step when troubleshooting almost any issue.
MacOS is made up of two distinct levels of software operation as it were. The System Level and your User Account. Although they work in tandem the User Account relies on the underlying System files to be in good working order to operate correctly. The principle behind isolating the issue to a pristine user account is that if the underlying System is working as expected, the new User Account should perform as expected. In other words if you can not reproduce the issue in a new User Account then it tells you that the underlying System (the OS) is fine but something in your main User Account is not working as expected.
Often times, we confront issues and try all kinds of things, install things, remove things, reinstall, restore from backups, remove cache files, sign out and back in to Cloud services, test in Safe Mode, disconnect hardware devices to minimise the hardware configuration and so on and in some case the issue is fixed through one of these steps but try not to shoot in the dark, you could literally be there for hours trying all sorts of things but the key is understanding whether there is a System Wide Issue or a User Specific Issue; hence the importance of quickly understanding which of these two is causing the issue that you are trying to solve. Once you can confidently reach a conclusion on which of these two is causing the issue you can very quickly begin to work within one of these areas of contention.
I hope this makes sense and that you will create a secondary admin account with a strong password (that you can remember). When trouble strikes, you can login into that account and test the issue on that pristine account and quickly determine if the issue is System Wide or User Specific.
So again, the answer you want to arrive at is if the issue is related to your Main User Account (the one you log in to day to day) or if it's the operating system.
The other thing to consider, and I alluded to it earlier is hardware. In many respects it is a key component of the overall experience and failures happen there as well, be they an internal or external hardware component failure, a port (like USB) failure, cables and so on. The most annoying are intermittent failures, they work sometimes and other times don't. So in terms of hardware, a simple step you can take is to disconnect all external devices that you added to the system to confirm that those devices are not contributing to the issue you are trying to resolve. Again, the simplest thing to do is disconnect them all. Is the issue cleared? If so, connect devices one at a time, see if the issue is reproducible, if the issue remains clear, continue to add hardware back until you find the device causing issues.
So in this tip, I've outlined a few very easy steps that I believe can help almost anyone (geek or not) to quickly come to a pretty good idea on where a problem (issue) is coming from. Is it the System (the OS), is it a file somewhere in your User Account (that's why you test in a New User Account that you keep around to test these issues against) and finally might it be hardware; so disconnect all hardware to check that too.
Isolating an issue to hardware or software can be quicker than you think. After all, it is made up of only three basic pieces, some hardware (external and internal), the OS and your user account.
If you are a consultant, teach this to your customers, they will love you for it because it helps them gain a sense of independence and empowerment and they can already begin to tell you where the problem doesn't exists. You know, they'll tell "I tried with no hardware connected to the Mac", "I tested a new user account and things are ok there" and so on. Then you can dive deeper more quickly.
If you have questions, please submit a comment or answer. If you have other effective tips surrounding this theme, please share them with the community.
Apple Support has an article titled Isolating issues in Mac OS X that everyone should at least know exists. You can add it as a bookmark in your favourite browser in the secondary User Account, referring to it can help when you are testing in a new user account. Read the article, I bet I forgot to mention a few things and/or Apple just has a better way of explaining it than I.
Other relevant links
How to test an issue in another user account on your Mac
If an issue stops happening when you log out of your macOS user account and log in with another, the issue could be related to the files or settings in your user account.
Use safe mode to isolate issues with your Mac
You can use safe mode to help resolve issues that might keep your Mac from completely starting up, or to isolate other issues related to your startup disk.
How to reset the System Management Controller (SMC) on your Mac
Learn when and how to reset the SMC on an Intel-based Mac.
Reset NVRAM or PRAM on your Mac
If your Mac has issues related to settings stored in NVRAM or PRAM, resetting it might help
@alex-santos - excellent post, thanks a heap! Mirrors what I've learned to do after, how shall we say, an "interesting" learning process!