esc

It's easier to win a habit than change one

• 5 min read

Shopify Shipping was the first product I owned at Shopify, and my first job with a PM title after running my own company. It was a lot all at once. There were way more users than I’d ever built for, in a domain I had to learn fast, and on top of that, it was a product I hadn’t started myself. I came in when it was about a year old.

Adoption was growing, but slower than everyone expected. It was still a small fraction of eligible merchants, and moving that needle was now my job. But slow growth doesn’t tell you why. It might mean people don’t want it, or that something else is going on.1 So before changing anything, I set out to find out which.

Shopify Payments had been out for a couple of years and done very well, so expectations for Shipping were high, and inside Shopify it kept getting measured against Payments. But it was the wrong comparison. Payments is a setting a merchant turns on once, and then it works. Shipping is a workflow. Many merchants, and often their whole staff, already had one they ran several times a day, so switching meant changing a habit. It was a very different kind of adoption inside the same admin, and we were judging one by the other’s yardstick.2

Once we saw it as a habit to change, catching up on features stopped looking like the fix. Merchants had plenty of options, and many of them and their staff already knew tools like ShipStation, which had been the standard for years. Matching those features didn’t make it worth learning a new tool, so parity alone wasn’t going to move anyone.

The other idea was placement. Shipping lived on the order page, the best real estate in the admin, so there was always a temptation to make it louder with a bigger button, a higher spot or better copy. That doesn’t fix a workflow problem, because merchants could see it fine and their routine was just somewhere else. And the page itself didn’t have a single owner back then, so changes there were hard to make.3

To understand where the low adoption came from, I needed to hear from merchants directly. As a founder I’d had my ears on the ground by default, because I talked to customers all day. At Shopify I didn’t have that yet, so I started building it. We put a short survey inside the shipping flow, the part of the admin we did own, and it helped a lot. It gave the team a direct line to merchants and a feedback loop we kept using. But it only reached merchants who already used Shipping. It told us how to make Shipping better for them, not why the rest weren’t.

The merchants we most needed to hear from had their shipping habit somewhere else. They never opened the shipping flow, so they never saw it. For them we had to read between the lines in support tickets and the community forums, and learn the other shipping apps feature by feature.

The answers pushed us to decide who we were building for. We aimed at stores shipping roughly 10 to 100 orders a day. The biggest shippers already had dedicated tools and people, and a merchant shipping one order a week barely noticed. We also stuck to two markets: the US because it was the biggest, and Canada because Shopify was based there and Canada Post was on home turf. Even those needed a lot more carrier coverage, and going to more countries before we’d nailed the first two would have spread us too thin. Saying no to the rest made the later calls easier.

The clearest one was bulk label printing. Everything in Shipping was one label at a time, and bulk looked like something only high-volume shippers needed. But even at three or five orders a day, printing them one at a time starts to hurt, and for the merchants we were building for, printing in bulk was just how the work got done. Bulk meant adding real complexity to the Shopify admin, and it took a long time to get built. Most of that time went to making the case and earning buy-in, not to engineering, and it didn’t happen right away.

The work around the label was part of that routine too: packing slips printed along with it, and shipping rates at checkout that matched what the merchant would actually pay to ship.

The bigger difference was where growth came from. Merchants who’d been on Shopify for a while had already learned to take their orders somewhere else to ship them, so winning them back meant breaking a habit. That inertia turned out to be much harder to beat than any of us expected, even once Shipping was good. New merchants getting their first orders had no habit yet. If Shipping was right there and good enough the first time they needed a label, that’s where they learned to ship, and we kept building for the routine they’d grow into, so they wouldn’t outgrow it as their stores got busier. Growth from new merchants eventually dwarfed what we won back from existing ones.

For merchants who already shipped somewhere else, we had to make switching worth it, and matching the tools they already used wasn’t enough. Price could, so better negotiated carrier rates did a lot of the work. So did the advantages of being built into Shopify, like printing labels from your phone. Sometimes the way in was a single kind of order, like international shipments: once a merchant used Shipping for that, more of their orders tended to follow. It was a longer battle, a year or two of steady work, but they came around too, just more slowly. By the second quarter of 2018, Shopify reported that more than a third of eligible merchants in the US and Canada were using Shipping.

The question I’d ask now, before reading any adoption chart, is whether we’re asking people to turn something on or to change something they do every day. If it’s the second, slow adoption is really three groups mixed together: people who don’t have the habit yet, people you’ve won and need to keep as they grow, and people who’d have to give up something that already works for them. For us, each one needed different work, and the last one took the longest.

Notes

  1. Since then, I’ve seen a lot of product teams get stuck at this point. You can decide what you built isn’t wanted and move on, or keep at it, and with the opportunity cost that high, moving on is tempting. ↩

  2. It didn’t help that Shipping had launched as an MVP into one of the most crowded app categories on Shopify, where, as Kevin Yien argues in MVP Levels, the bar for a first version is high. ↩

  3. A couple of years later, I got to redesign that page. We rebuilt it to support multiple fulfillment locations, which unblocked other teams’ work, like multi-location inventory. ↩