This blog aims to illustrate to readers what Priority 0 (P0) issues are and how to identify and deal with them.
What is an Issue?
“An issue can be defined as a bug in our code.”
There are many different types of tasks at Vatico. These include data modelling, dealing with tickets, creating insights, doing write ups, and many more. However, most of these tasks are not considered bugs. This classification should only be used for tasks which are bugs.
Why must we classify issues?
At Vatico, it will be common to have many things to work on at the same time. Therefore, being able to identify and classify bugs to different priorities is crucial as it allows us to know which bugs we must resolve as soon as possible regardless of working hours to ensure normal business operations. Conversely, we will also know which bugs can be processed later as they are not P0.
What is a P0 issue?
There are in fact 5 levels of priority used: P0, P1, P2, P3, P4 with P0 being the highest priority. For this write up, we will only be focusing on how to identify P0 issues.
“P0 issues are bugs which paralyse our business functions and cause all business operations to come to a standstill.”
These bugs demand immediate attention and must be resolved immediately to restore normal business functions. In Vatico’s context, there are 2 main scenarios where this may occur:
- Code cannot compile when merged, thus the whole system breaks.
In such a scenario, the bug will be discovered immediately and should be fixed on the spot.
- Code can be compiled when merged. However, a table may be broken due to bad logic or formatting issues, ultimately causing key functions which need this table to be broken as well.
In such scenarios, there will likely be some lag time between the bug being made and the bug being discovered as only when the table is called, the bug will appear.
Unlike requests and modelling which if left unresolved will only result in some inconvenience, it is of utmost importance that we resolve such bugs immediately since all business operations cannot carry on otherwise. Thus, even if such bugs are discovered outside of working hours, we should still resolve them immediately.
Impact of P0 issues on business
The impact of P0 issues on the business is severe. In some situations, customer fulfilment might run into errors due to the P0 issues, resulting in a potential loss of revenue as customers will not be able to complete their purchases. Such a negative experience will also negatively impact our reputation, causing loss of potential customers.
With autonomous systems in place, downtime is inevitable in the event of a bug as the code will not be able to function as intended. Thus, it is our duty and responsibility to ensure that if such bugs do arise, they are resolved straight away.
What are some common causes of P0 issues?
The following are some common causes of P0 issues. Do note that this is not an exhaustive list and other bugs may also cause P0 issues.
- Wrong or Duplicate name of SQL/YML
- This usually occurs when we create new tables from old tables with similar structure, such as total_orders_monthly and total_orders_annually, where we copy the old YML file and use it as template but forget to change the name to the new version
- Extra or Missing punctuation marks in SQL code
- This usually will be an extra semicolon at the end of file as other errors will not allow your code to run in the first place.
- Wrong Jinja code formatting/logic
- Currently, Jinja can only be used to reference tables under the “report” schema, do not use Jinja to reference tables in other schemas, such as “staging” and “public”
- Missing Inverted Commas
What are Non-P0 issues?
“Non-P0 issues are issues that do not cause all business operations to halt.”
These issues could range from P1 to P4 depending on their level of importance. Such bugs could include:
- Not using Jinja code to call a fresh table from the data warehouse, resulting in others not having access to the most updated data.
This bug will be a P1 issue as it blocks others from completing their tasks but does not stop all business operations. Please click here to find out more about other priorities.