In the past few months we’ve lived through a dream/nightmare situation for any software agency. A product we created four years ago became an overnight success. Thankfully, it went well and disaster was averted!
Introduction
In 2016 we were approached by Jon and Chris, the founders of GoodSixty with the seed of an idea. They were looking to make local grocery shopping easier and fairer.
Together we built a hyper-local marketplace, where traders could list their business and products, buyers could shop and GoodSixty could manage their deliveries.
The technical stack is relatively standard:
- Ruby on Rails framework for the main development part.
- Responsive web and mobile app.
- ElasticSearch for any search requirement.
- Redis caching.
- Heroku hosting.
For the past 4.5 years, we’ve been helping the GoodSixty team to scale safely, responding to user feedback and new market demands. So far, the growth had been steady but linear.
In late 2019 what started as a Bristol test operation expanded to a base in London and delivering via post. We were making more and more strategical changes to the product. From a technical point of view all our indicators were green.
When everyone rushed online
Then, in March 2020 came the COVID-19 lockdown. People couldn’t go out shopping anymore and rushed online to the big stores’ delivery services.
But it quickly became impossible to book a delivery slot from the big supermarkets, so people started to look for alternatives. And with more than 300 traders available, ready to deliver – amongst other things – fruit, vegetables, meat and even flour, GoodSixty became an essential alternative to the big stores. Overnight.
On the 20th of March 2020, we received a notification from our automated maintenance service. The website was crashing under the demand. We had too many people trying to order.
This was GoodSixty’s dream! But as the technical agency, we were more apprehensive.
Scaling Ruby on Rails and putting our earlier decisions to the stress-test.
So, here we are, 20th of March 2020, 19:45, and a product we’ve worked on over the last four years is blowing up overnight. Well, only if we can stop the website crashing under a 3000% increase in traffic.
Thankfully, while building the original website, we recommended the GoodSixty team use Heroku as their hosting platform.
Heroku is what’s called a Platform As A Service, they will not only manage hosting and server security for you, but they also make it extremely simple to scale rapidly and to demand.
Within 5 minutes of the website overload alert, we were back online with a brand new, much larger server, ready to welcome all the new customers.
GoodSixty was happy. We were relieved. Our earlier decision to get with the right hosting platform paid off. Now we could start fulfilling those orders!
What’s more impressive is that we managed to keep a page load average of under 2 seconds while going through that steady traffic and conversion increase. This was only made possible thanks to previous technical decisions made by the team working on the product. Go Cookies!
Manage the unexpected
Any developer telling you that they can build an application 100% bug free is probably telling you a lie. We have a lot of experience in building an launching apps. Collectively, over a century’s worth. For every feature we write, we write automated tests. For every feature we deploy, multiple people test it and try to break it before it goes live. Unfortunately what works today, could break tomorrow and you have to learn how to manage the unexpected.
When an app launches, there is an expected growth curve. Slowly but surely, you acquire new customers. The app works as expected, but some weakest areas or little annoyances may start to appear. One by one. When they arise, we take note and during the next sprint, plan to work on them.
But, when your app growth explodes and follows a hockey stick curve, all of your weakest areas will be exposed simultaneously. For some, it will be race against the clock to get them sorted – every new user going through them will add more unnecessary stress to the system. Thankfully, with GoodSixty we didn’t have too many of these, but there were certainly some moments where we had to question decisions made previously, and adapt to the new requirements fast.
Bugs and weaknesses are inevitable. The role of the developers is to find solutions to fix the effected parts of the site, without impacting past, current or future users. Don’t blame yourself for your previous decisions, they were made in another context. Just embrace the new challenge at hand, adapt and help the platform grow.
But, it’s not just about what the users see
When your demand explodes, it’s very likely that your tech is not the only part of your business that needs to grow.
GoodSixty did a fantastic job at adapting their offline processes (order gathering/fulfilment and delivery) nearly overnight. And that’s with the added complexity of social distancing and new contact free delivery demands.
Here, the tech will need to adapt to help those new processes. You will need to quickly build new reports and new functionalities to help the back office manage the demand. Your aim here, as a technical partner, is to unlock solutions that foster growth for the business.
My 3 takeaways
- Communicate: When things go crazy, clear communication is your ally. Take the time to understand clearly what the most urgent problem to solve is (is it a new report to create to help back office? Adding new functionalities to the platform? Or chase some random bugs? etc ), and make sure that you have a plan.
- Adapt quickly: Growing fast will require you to adapt fast. What was important last week, might become irrelevant in light of new information this week. You should have all the data to help your client make the right decisions. Just make sure that you’re keeping a regular eye on the data and are ready to adapt rapidly.
- Breathe: As with everything when running a business, it’s a marathon. You will need to manage your and your team stress and rest levels. The first few days will be intense, so make sure you take the required rest regularly to help you make the right decisions the next day. And, when crisis has been averted, celebrate that success!
Overall
When the initial rush of panic wears off, everything is working as it should be and everyone is happy, there’s a lot of satisfaction in knowing that our earlier technical decisions were the right ones, and that we can build software robust enough to deal with a 3000% spike in traffic.
I’ve always said that what I love the most about running an agency is that no two days are the same. The variety in our day-to-day work keeps things interesting, and when a challenge like this arises, it’s exciting! It’s fun, and keeps me on my toes.
To find out more about Good Sixty, head to their website. While you’re there, why not try a shop with them? Every pound spent with them has a 60% greater benefit to your local community than spending with a large supermarket!
Do you need expert support building or scaling your Ruby on Rails app? Get in touch.