6 tips for preventing performance headaches in retail apps

| 8 min. (1666 words)

Are you still thinking about last year’s software performance headaches?

You aren’t alone. Even large-scale retail apps experience preventable problems like broken payment buttons, and every year we hear of another retail giant that is unable to cope with traffic spikes on Black Friday – a $3 billion e-commerce day.

Luckily, many of these software problems can be prevented. We’ve put together a few tips for maintaining performant retail apps so you can be ready for anything.

Macy’s mobile app error

1. Website performance matters

As a developer concerned about how your app is performing, you’re going to want to make sure that the content is loading quickly from the moment customers land on your site.

Nothing will beat understanding real user interactions, and getting a window into this activity is a lot easier than you think if you have the right performance monitoring tools. Real user monitoring (RUM) tools track the performance timings from your actual users. Not synthetics, not sampled, but real, actual times that they experience.

RUM tools will surface the overall trends in your software performance over time. For example, the screenshot below shows the Performance page in Raygun — a great place to start identifying and prioritizing which issues to fix.

Screenshot of Raygun Real User Monitoring

Real user monitoring tools help to get granular on user-centric performance metrics, such as first paint and first contentful paint, which help developers understand how a user perceives the performance of the page. They help to answer questions like, “how long before the user sees the page is loading?” and “when did the user first see something on the page?”

Representation of first paint and first contentful paint

The faster you know about problems, the better. If your app has inventory issues, crashes or slow loading pages, you’ll want to know about it, quickly. That’s where alerts come in.

2. Set up alerts for major problems

Users will probably take to social media to let you know about a problem, but that doesn’t help developers get to the bottom of error. To make the situation harder for teams, only 1% of users report software errors.

“Customers are busy and don’t always want to describe the problem, or they get frustrated when you don’t understand where the error is.” - Bob Bond, CEO of WriteUpp

It’s not just about alerting – you’ll need all the information relating to the crash or performance problem in the alert so you can triage and address quickly. You’ll need to know:

  • When the error was last seen
  • How many users the error affected
  • The stack trace
  • Exactly who the problem affected

Error alerting tips

Effectively distribute resources

Who is working on which bug? Use your project management tool (like Jira) to allocate the right issues to the right people.

Alerting software

Apps like PagerDuty and VictorOps can be lifesavers for when something vital fails.

Avoid alerting overwhelm

Over-alerting can cause developers to tune out to notifications- we’ve all been there! To avoid alerting overwhelm, Raygun allows you to ignore known issues permanently, so they don’t continually cause notifications.

3) Prepare for traffic spikes – even at 5 am

Online stores in both the UK and in the US can see traffic increase by 220% over big e-commerce events like Black Friday and Cyber Monday. Interestingly, consumers were so keen to avoid the in-store chaos associated with Black Friday they shopped online late at night, and from the comfort of their own homes.

Screenshot of Macys experiencing traffic problems Image source: Fortune.com

You can see the problems for unprepared development teams already. Infrastructure must be stable to support high traffic volume at all times of the day across multiple time zones. 100% uptime isn’t a myth and is an achievable goal for any development team.

How to prepare for traffic spikes

1. If your platform can’t handle it, migrate to one that can

Platforms like WordPress can be notoriously slow, and migrating content to a scalable system will prevent the performance bottlenecks some CMS systems can cause.

2. Is your on-call schedule bulletproof?

If something does go wrong in the middle of the night, you’ll want your best developers available at all hours. Just be careful not to exhaust your team.

3. Get support from your software

Software like Raygun is designed for this very problem. Crash Reporting alerts you to problems, while Real User Monitoring surfaces slow loading pages. You may also want to consider an application performance monitoring (APM) tool to help reduce server load.

Here’s more on how Raygun can help prevent software crashes with large-scale retail apps.

While you can’t always predict a traffic spike, you can add a degree of predictability by spotting patterns in peak traffic data – information you can pull easily from your analytics software.

Traffic spikes can cause all sorts of issues - the worst of which is a complete outage. Here are a few more causes and ways to prevent downtime.

4) Protect against downtime

As we gather a more global user bases with our apps, it becomes more important to be 100% available at all times. It’s not unusual for development teams and users to bridge many time zones. Therefore, catering for the midnight shoppers in the UK while catching the morning rush in China might be critical to your success over the holiday period.

Peak load times are the riskiest times for an outage – and the last thing you need is a crash caused by poorly written code lurking in your database or a server that can’t process requests.

Screenshot of Macys experiencing traffic problems

Tips to prevent downtime

No major releases over busy periods

Many put a code freeze on during the holidays so that nothing can interrupt with major systems. While bug fixes should be deployed consistently, new features should take a back seat.

Are your servers firing on all cylinders?

Traffic spikes affect servers, but often teams don’t have enough visibility to spot a load balancer that isn’t pulling its weight. Protect your CI/CD deployment pipeline with an APM tool.

5) Don’t underestimate your mobile platforms

Over the past five years, increased mobile usage had a substantial effect on record sales.

For example, in 2016 on Black Friday, one-third of all PayPal payments were made on mobile devices, and at peak times, PayPal handled $15,507 in payments per second. Cyber Monday resulted in similar activity, with PayPal seeing over 50% year-on-year growth in global mobile payments.

Walmart’s online data matched the trend, saying that over 70 percent of website traffic on Thanksgiving in 2016 was mobile. Target.com also noted that 60 percent of Thanksgiving sales were from mobile devices.

Historically, however, conversion rates on mobile are lower than on desktop, partly because mobile experience can be an afterthought for some companies. Because of these statistics, technical teams will benefit enormously from providing a great mobile customer experience right from the code level.

Screenshot of Footlocker’s layout issues

Footlocker’s layout issues on the payment page caused one usability tester to say “It looks like it’s been phished.” Image source: Baymard.com.

While your marketing team is busy creating custom landing pages and optimizing messaging for the sales, your development team should be actively ensuring your JavaScript isn’t broken.

  • Crashes
  • High asset load times
  • Large data consumption
  • High battery life consumption
  • Poor user experience design

While we can’t control how third-party scripts load or whether our customers use iOS or Android, we can ensure their first experience offers a great browsing and checkout process. Because your developers can’t be everywhere at once, omnichannel monitoring is the only real solution to raise and diagnose these problems.

6) Ensure seamless communication between support staff and developers

Excellent support is another cog in healthy software development workflows, but it’s not all about the customer – your development team has to be set up for success too! Do they have the tools and support they need to do a great job? You may not be able to prevent all software crashes, but it’s an opportunity to make amends.

Retail studies consistently show that great support will ensure return customers, and if you can increase your customer retention by 5%, you can increase profits by as much as 95%

Screenshot of customer UX issue complaint

From our experience in developer support, the way you chose to triage, test and automate your support will ensure a smooth line of communication that is scalable for the busy season, and just as easy to turn down when it gets quieter. It’s not unusual to see retail teams provision five times the resources to cope with the extra load. In 2017, Amazon hired an additional 120,000 holiday workers – so don’t be afraid to employ temporary relief over the holiday period.

Is your support team ready?

Triage

Raise the issue to the right person. In Raygun’s engineering team, we prioritize issues that are affecting the most amount of users. If it’s a minor problem, we can assign it to a junior developer. If it’s a major problem, we want our most experienced team members on deck.

Test in appropriate environments

If you find performance issues sometimes fall through the cracks and end up swamping your support team, you can implement a three environments rule; test in a local environment first, then a production-like environment, then deploy into production and run a smoke test.

Automates

Lean on your software to automate parts that don’t need human interaction. For example, your error triage process is one place that benefits from automation. Chris Johnson from Hyperfish saved USD$150,000 in support wages by automating error reporting for his enterprise customers.

If you need more ideas, read these tips on better tech support for developers.

Is your team prepared?

Many e-commerce companies struggle with performance problems, but once robust monitoring is in place, it becomes easier for your team to be prepared.

Firstly, pay attention to performance metrics and set up alerts to help you be better prepared. Protect against traffic spikes and downtime, and give your team the tools and processes they need to offer the best support.

Give your customers the best experience possible, and you’ll create customers for life.