Problem-solving is an essential part of web development. It is the process that makes difficult functionality possible and essentially refers to finding solutions for any issues related to the site. Being good at resolving issues is a skill that takes practice and a calm approach.
While there are countless ways to resolve issues, both big and small, here is the process I go through to find a resolution as quickly and accurately as possible. To illustrate the process, I will outline the steps by using a recent example that was easily resolved using this process.
Take a deep breath
While it may seem like a waste of time or a silly thing to do when something catastrophic occurs, taking a deep breath helps to reduce stress levels and allows you to think clearly about your next steps. Panicking and diving straight into action can often be counterproductive by layering on new issues when you dive in like a bull in a china shop. Whether it’s a button that isn’t working correctly or an entire site that has crashed, do yourself a favor and take a slow, deep breath before proceeding to the next step.
Example: After making updates to a website, I went to review the results and discovered that not only had the changes not taken place, but the whole site was broken. I could feel the panic gripping me but after I closed my eyes and took a deep breath, I knew I could handle it — then, it was time to get to work.
Define the issue
In some cases, the issue will be very apparent — for example, the website is no longer there. In other cases, you’ll get a note of a malfunctioning button or form that needs your attention. Before charging into resolving the issue, it is always beneficial to make sure that you are resolving the correct broken button or form before you devote time to creating a new problem. In some cases, all you need to do is look at the detailed note you were given and the corresponding screenshot, and you are ready to go. In other cases, you will want to go back to the client and clarify that you have the correct issue isolated so that you can begin to resolve it.
Example: This issue was well defined for me. The site was non-functional. Time for the next step!
Identify the problem
In my experience, resolving a particularly difficult issue is 70% figuring out what is wrong. For a non-tech example, think about what needs to happen to figure out why your car won’t start. Is it the battery, starter, or fuel pump? What is or isn’t happening when you turn that key in the ignition? In order to resolve your issue, you need to determine its cause.
Example: I started digging into the cause of the site crash and discovered that critical files were missing after a site update had been performed and the server timed out the process. Before moving along with the process, I checked the database and noticed that it was intact. Lucky me!
Coming up with a plan
With the issue defined and the problem identified, it’s time to come up with a plan of action. With many problems, there will be more than one potential solution. Take the time to think of all the potential solutions and the consequences of each approach. Remember — all plans will cost you time, money, or functionality. Some may even put other elements of a project at risk for failure as well, so it is a good habit to think a potential fix through. If the solution has a financial impact on the client, it’s good practice to give them their options to ensure they are a part of the process and have accepted the consequences of the plan they choose. This can simply be letting them know that Plan A will cost more with fantastic results, while Plan B will be a lower cost with very basic results.
Example: With the issue being identified as missing files, I had two paths to a quick resolution.
1. Replace the files.
2. Point DNS to the working server.
The issue occurred over the weekend and I was unable to get access to the DNS, so Plan A was my only course of action.
This is often the easy part. The problem has been defined and identified, and you have come up with a plan. Now all you must do is put your plan into action
Example: We had been experiencing issues with their server already, so we had made a copy of the site on our own server. I was able to make a redundant backup of the site and pulled a copy of their files. Once I removed the damaged directory with a working copy, I was able to update some configuration files and get the site back online.
Check your work
Before you start to pat yourself on the back for a job well done, take a moment to double-check that the issue is indeed resolved and didn’t create any new issues. If there are new issues, you know what to do! Take a deep breath and start to problem-solve the new issue.
Example: Before communicating that we were back up and running, I went through the re-activated site for bugs. I found that a couple of pages weren’t functioning properly so I went through my process and got the site back to its original form before alerting the team that we were back up and running.