Once you've completed Step 1: Gathering Data, you're ready to use the information collected throughout the Noibu platform to brainstorm potential sources and causes. This is an opportunity to cast a wide net and consider obscure options along with likely contenders. Open-mindedness is key at this stage. Avoid ruling anything out or making assumptions without a solid justification from the data.
When forming hypotheses, you must consider three significant factors:
Error Data and Discoveries
If you were thorough in Step 1, you should already have hypotheses brewing. Even if you don't fully understand why the error occurs, you may already have a "smoking gun," a set of supporting details and evidence that point to a potential cause.
Consult your data and discoveries and come up with as many hypotheses as possible, though consider the likelihood of each as you go. Avoid digging too deep at this stage–there will be time for that in Step 3–but if your data clearly disproves a hypothesis, feel free to discard it.
Common Edge Cases
When developing hypotheses, consider common edge cases–general problems that occur frequently on modern websites–in addition to options supported by your data. Some common edge cases include:
- Race Conditions
- Perhaps the problematic line of code is dependent on other pieces of code running in a certain order, or on a fast connection, and a breakdown further up the line is causing the error.
- Perhaps the problematic line of code is dependent on other pieces of code running in a certain order, or on a fast connection, and a breakdown further up the line is causing the error.
- Deprecated Code
- Perhaps the problematic code is referencing a deprecated resource, or using an integration or SDK element that's out of date.
- Perhaps the problematic code is referencing a deprecated resource, or using an integration or SDK element that's out of date.
- Implementation Issues
- Big functions with large pieces of logic can stop websites from functioning. Even low probability failures will occur with enough traffic.
- Big functions with large pieces of logic can stop websites from functioning. Even low probability failures will occur with enough traffic.
- Third Party Scripts
- Third party errors on client-facing scripts are common.
Site Setup
Considering site setup issues should go hand-in-hand with analyzing discovery data and considering common edge cases. Understanding how your site is built and deployed is essential to understanding the error.
- Does your site use a JS framework like Vue or React? Could this be the source of the error, or could you trace the source of the error knowing this?
- Are there any webpack configurations that could be at fault?
Once you have a healthy menu of hypotheses, you're ready to move on to Step 3: Investigating Hypotheses.