Project Example 3: Your website is mission critical, it processes a high volume of transactions and payments have broken

Example Cost: £2,500

Your website is your business. You make money by selling subscriptions that provide access to protected content and tools on your website. Any downtime will result in lost sales and discontent from existing subscribers.

This morning you have reports that users are making payments but they are not being granted access to the content they have paid for.

This is an urgent problem because money is chaning hands but nothing is being provided in return. Unless this is resolved quickly you could be facing a customer services headache and the last thing you want is accusations on social media that your service is dishonest.

An extra challenge presented here is that you do have a large user base still using your website. This means that any attempts to fix the problem must not cause the service to deteriorate for those users who can still access the service correctly.

The first step is to identify how the problem can be recreated. This tends to be achieved by identifying who this problem affects - is it everybody or only users with certain characterisitc? Then we need to examine log files and error messages to learn as much as possible about what has been going wrong.

Once we can recreate the problem we can fix it.

Hopefully you already have development and staging environments in place. But if not, creating one is the next priority. This allows us to test potential fixes to the problem without risk of breaking the live site.

In this particular example we track down the problem to the way international characters are handled by a payment gateway and then sent back to Drupal causing a database error due to invalid character encoding. The fix is to alter one line of code, but it has taken several days to configure the development environment, identify the broad area of the error, find the profile that will trigger the error and debug against a remote payment gateway.