Keep it Simple (Stupid)

January 18, 2021

Overthinking customer experience can increase complexity and costs

Joe Morton, Sr Developer, Loop Integration 

Back in the Mesozoic era of e-commerce, or, about 2010, and well before joining Loop, I was working on a project for a Seconds and Surplus retailer wanting to create a new web presence. One of their requirements was never to lose money on shipping. Never. Spoiler alert: they lost money on shipping through trying to implement this solution. 

So, very complicated shipping costs needed to be calculated during checkout. This involved estimating, based on pre-configured container sizes, exactly how many boxes may be used to ship an order and how much the shipper, let’s call them UpEx, would charge to ship it. While there was no guarantee that the person picking the order would actually pack it using the estimate, at least the rates weren’t going to change by the time the package was actually shipped. Maybe. 

Math is Hard 

The shipping estimate part was pretty straight-forward, as UpEx, even back then, had web services in place to compute shipping estimates given the pickup address, delivery address, box dimensions, and total weight. But, then comes the hard part of estimating how to pack each box. Here’s a formal statement of The Bin Packing Problem:

(This now concludes the math portion of this article).

This is not a trivial problem. So, this discount retailer (read: small budget) is now asking for a very demanding customization, involving the stuff of doctoral theses, that will be difficult to write, difficult to test, difficult to maintain, will be very expensive, and will ultimately drive customers away from their carts. 

I was sure to tell the project’s tech lead that this requirement was stupid every time we talked, and she was finally successful in getting the client to abandon it, but not before I had already spent a lot of time trying to get it to work. 

Back to Today 

First, nobody’s going to attempt an elaborate shipping cost scheme when Amazon Prime’s free-through subscription service makes any charge for shipping a challenge. But, at Loop, we run into other requirements that add a lot of complexity for little or no payoff. When we do, we enumerate all the issues mentioned above, like a requirement being difficult to write, test, and maintain, then we then give detailed estimates, broken down by each phase of the development cycle (we actually do that for all requirements). We also give alternative solutions and encourage sticking to out-of-the-box functionality. Once the customer sees the bottom line for a requirement, they’ll reassess the true business case for it, or, at least, make an informed decision on whether or not to proceed. 

Unlike other integrators, Loop, based on our years of e-commerce experience, discourages customers from implementing requirements that don’t make sense for their business. We don’t blindly take notes and then robotically implement whatever the client requests. Our ultimate goal is for your site to be successful, because we’re here to build a relationship, not just to bill hours. 

And, when you’re successful, we’re all successful.