Pressing on! Helping Newspaper Club Through a Sudden Paper Outage
- Client
- Newspaper Club
- Industry
- Newpaper, printing service
- Services Provided
- Rails Deployment Consulting Rails Maintenance Retainer
About Newspaper Club
Since 2009, Newspaper Club has printed some of the most beautiful newsprints for designers worldwide. On its website, customers can explore various printing methods and paper types to craft the exact publication they need. The paper selection flow is one critical aspect in the process of selecting the newspaper a customer may want.
This helps customers determine what kind of printing they need based on several factors: is it a small run? Do you need more than a thousand copies? Is it a traditional-sized paper, or are you going for something a bit smaller?
The process for selecting what paper a customer might want was so tried and tested that there was never a need to consider what would happen if a particular paper type suddenly went out of stock and was not being made. So, the original developers didn't put any code into account for the situation. They figured that a substitute would be easy to implement in the system or that the process would have enough advanced notice to casually change out the paper selection options.
The Call
We got the call urgently in our morning, which is evening for the Newspaper Club staff. The situation was that there was a labor strike at the paper plant that supplied this paper and the alternative to that specific paper type. They were going to look at the stock they had on hand to gauge the risk and, at the same time, look for alternatives.
In the meantime, we should start thinking about the best way to turn off the option for customers to select that specific paper type to prevent orders from being placed. No action was needed initially, but a plan should be laid out.
A few hours later, the situation changed. After reviewing the stock and the current orders, Newspaper Club only had enough paper to fulfill the promised orders. This meant that we would need to turn off the option immediately. We reached out to the team for a meeting to discuss the options and were able to meet on Zoom right away.
Between the first and second calls, where we were just planning a response, it was important to Planet Argon to think through the website’s logic and identify safe solutions for cutting off the order process for the specific paper type in question. A ticket was drawn up in Jira, and the technical lead on the project was immediately moved onto the project, with this issue being their number one priority.
The project manager also started to line up additional resource help if the technical lead needed more help or someone to understand the situation quickly for review. One of the benefits of being a small agency with a diverse group of developers is that we can respond to urgent scenarios like this one by pooling resources around skill types and application familiarity. By keeping a robust set of technical documents, automated tests, and a history of feature changes, any Senior Rubyist could be onboarded to the project to help in an emergency.
First Response
Okay. Things were starting to look bad. No paper was coming in. They weren’t sure when it was going to be restocked. So, we needed to first prevent orders from being submitted through the website of that specific paper type. There were still four or five other paper options available, so we couldn’t deactivate all of the ordering. We also didn’t want to remove the ability for people to calculate their potential projects in the print calculator because we didn’t know how long they would need to keep this option disabled—no need to alarm customers.
The paper type is tied to several different functions in the code. It’s part of simple views for things like the paper selection screen, where customers can click around through different options related to the kind of project they have. However, there are also more complicated pieces of logic, like where the paper type is associated with a weight within a pricing table, which determines the cost for the number of copies a customer is trying to calculate.
The first solution to this problem was this:
- If the customer selects the paper type, a radio button will show an error below the radio button to tell the customer, “This paper is temporarily unavailable,” in red.
- Disable the submit button to inform the customer that the order cannot proceed to the next step.
- Add an emergency banner to the website on all pages linked to more information about the temporary paper outage
This would stop the order process before the customer has invested too much time into creating the proof version of the paper they want to print and would make it clear that they either need to select a different paper or wait until the paper is back in stock.
Even though this was an urgent issue to resolve, this change was tested on Staging and then reviewed by the client. This is not always possible in some situations, like in the middle of the night when things are tense. However, by maintaining constant and accurate communication with the Newspaper Club staff, we were ready to quickly do some quality assurance testing when the code changes were ready.
Follow-up and Additional Changes
As it was getting late in the UK, where Newspaper Club is based, the team scheduled a follow-up meeting the next morning to discuss what else needed to be done to make the process easier for customers and the Newspaper Club staff to understand the options available.
In preparation for this meeting, the technical lead and senior project manager met internally to discuss the first response, what needed to be cleaned up or modified now that the immediate issue was behind us, and how to revert the changes if the call came to revert before the meeting. In this meeting, they also reviewed the order process and brainstormed potential solutions to an escalated version of the temporary paper outage. What would happen if two papers were out of stock for the same option? What if there are only two options for that printing type? How would we quickly replace a paper type, weight, and cost in the system if we had to do it within an hour’s notice?
In the end, the team modified the existing paper type to be replaced with a solution that Newspaper Club could reliably stock during the labor strike. Knowing this change was temporary, we isolated the necessary code changes to a clearly labeled branch. This way, later, we could revert the changes to a previous state in the code before they were made and restore the site to its original paper options.
The Benefit of a Staging Environment
During this stressful time, it was important for Newspaper Club to communicate with their customers in the most professional way possible. An out-of-the-box error message was not clear enough to let the customer know this was a temporary stock issue and that other options might be similar. But it was also crucial that customers did not get stuck or deterred from using the site – which is where we benefited in having an up-to-date, like-real staging environment for Newspaper Club.
Cleaning Up
Within a few days, Newspaper Club buyers selected a new paper to replace the stock impacted by the labor strike. With the reversion already in place, Planet Argon developers were able to replace the paper stock in the system quickly, update the necessary calculations for the website, and create a new path for the new paper to be ordered, tracked, and printed using Newspaper Club’s robust codebase and policies.
After a brief retrospective meeting, Newspaper Club decided that a contingency plan was sufficient to address this kind of issue in the future. If a more extensive project came up, the ability for their staff to make the changes necessary to mark a paper out of stock within the admin system could be added. For now, everything remains quiet and running smoothly!
As we often inherit applications from previous developers, it can be challenging to make these kinds of changes quickly. But Newspaper Club’s original architects created a clean and easy-to-read codebase. Hats off to them!