Before you attempt to resolve a problem in your implementation, you must identify precisely how it is failing.
The first step in the troubleshooting process is to gather information that defines the specific symptoms of what is happening. You might ask these questions when gathering this information:
What is the task or expected behavior that is not occurring?
Can the affected task be divided into subtasks that you can evaluate separately?
Is the task ending in an error? Is an error message associated with it?
Is the task completing but in an unacceptably long time?
Is the failure consistent or sporadic?
What has changed recently in the software or hardware that might be related to the failure?