How to prevent software crashes in retail apps: Best practices for developers

As we approach another holiday season, are you still thinking about last year’s software performance headaches?

You aren’t alone. Last year, Amazon lost out due to broken payment buttons, and favorite retailer Macy’s couldn’t cope with traffic on Black Friday – a $3 billion e-commerce day – causing frustrated shoppers to go to social media.

E-commerce stores like Macy's can prevent software crashes this year by implementing these tips

Macy’s mobile app fails on Black Friday causing frustrated users. Image source.

Research consistently points toward exceptional customer experiences with your brand as the differentiator that will make you stand out in a busy landscape. So now’s the time to protect apps from software crashes and performance problems like slow loading pages, broken checkout flows, and outages.

We’ve put together some core areas to focus on to help your development team put the best foot forward this holiday season.

Set up alerts for major problems

If your app has inventory issues, crashes or slow loading pages, you’ll want to know about it, quickly. When Target.com went down on Cyber Monday in 2015, they were forced to meter traffic causing a significant loss of sales plus negative press coverage. The faster you know about these problems, the better.

Prevent software errors by detecting them early and often

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

Bob Bond from WriteUpp software reinforces this challenge, and says that 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.”

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.

Prepare for traffic spikes – even at 5 am

In 2016, online stores in both the UK and in the US saw traffic increase by 220% over 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.

Compared to 2015, Vouchercloud.com saw a 46% increase in pre-6am traffic, with a 208% increase at 5 am Friday morning. Between midnight and 1 am was UK retailer Argos’ most significant trading hour, with 8,000 visits per minute and 15 orders per second.

Macy's infrastructure couldn't cope with the traffic spike last year, and experienced downtime

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 bottlenecks some CMS systems 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.

4. Identify your peak traffic times and look for trends

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.

Pay attention to website performance

If you think that layout bugs can’t be as harmful as a server outage, think again! Over time, layout issues reduce trust in a brand, especially on payment pages. When UX research institute Baymard.com asked about quirky layout features in usability tests, many participants abandoned the page, citing that layout problems “make it look like the site has been hacked” – even on major e-commerce sites.

Collection of screenshots showing poor UX and layout issues from large retailers

“Amazon’s sign in form provokes security errors. Toys’R’Us’ checkout process yields errors for perfectly valid phone numbers. Footlocker’s checkout has boxes flying around the screen, covering the ‘continue’ button and key information. Fandango tells the user they couldn’t charge their card, but doesn’t give them a way to try a new one.” Image and caption source: Baymard.com

Here’s how to ensure they don’t interfere with sales

Usability tests 

Invest in usability tests. Many external companies will do this for you, but your internal team can provide just as much perspective. Get a mix of both technical and non-technical participants. You can prevent software crashes for users taking an unusual navigation path.

Use Real User Monitoring to highlight the navigation paths

There’s nothing quite like seeing the exact path a user took to encounter a layout problem – even in the most complex environments.

Continuous testing on popular pages

Keep your important pages (like your most popular products and payment pages front of mind in testing.

Offer user-friendly error messages 

Your users may be encountering unfriendly error messages that are eating up support time. For example, your email address is missing the @ symbol gives the user the antidote rather than input string not in correct format which sounds like a bug that needs a support call. When Kunal Johar, the Co-founder of events platform OpenWater implemented this across his app, he eliminated  99% of his support complaints.

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.Target.com also experienced downtime. Prevent software crashes this holiday with these tips.

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.

Don’t underestimate your mobile platforms

One significant stand-out for Black Friday and Cyber Monday in 2016 was increased mobile usage had a substantial effect on record sales.

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 code level.

Layout issues on payment pages don't evoke trust

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.

Mobile optimization best practices

There are five primary performance indicators that you must monitor on a consistent basis. I’ve put a summary below, but we go into more detail in this article on reasons for mobile application abandonment.

  • 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.

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%.

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. Amazon is hiring an additional 120,000 holiday workers this year – 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 our 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.

Automate

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 app ready for the holiday season?

Even if your company has opted out of the Black Friday madness to take a more balanced approach of offering discounts throughout the year, holiday sales in 2017 are still going to break records. Prevent software crashes and layout issues to give your customers the best experience possible over this busy time. You’ll create customers for life!

Do you have any tips for helping your software team to prepare for the holiday season? Let us know in the comments below.

You may also like:

UX tips for healthcare apps: how to make happier customers 

How to make sure website errors don’t spoil your sales with Raygun