Frank Zhang
·5 min readTechnology

Why Microsoft Struggles with Consumer Products

Translated from the original Chinese post. Read the original (中文) →

(Disclaimer: This post is pure gut feeling on my part. If I could actually answer this question comprehensively and prescribe the right cure, I surely wouldn’t still be just a Senior Software Engineer 🤣 They’d at least have to make me a CVP (Corporate Vice President), right? 🤤)

Recently I’ve been helping a senior alum from my school with the technical implementation of a consumer (B2C) product. After a few conversations with him and his team’s product manager, and comparing that with the way we build products at Microsoft today, I was struck by how huge the difference is. So I figured I’d take this chance to shoot from the hip and answer the question in the title.

My friend split his company’s employees into two teams: one responsible for the consumer product and one responsible for the business (B2B) product. I said, you’re a startup with barely any people, shouldn’t you be lending people back and forth when things get busy? Why draw such a hard line? He said, that’s where you’re wrong. Consumer products and business products need different skill sets and different ways of thinking, so the hiring process focuses on different things too. To put it in trendy terms, the two teams have different DNA. If you ask people from the consumer team to work on the business product, or vice versa, things can go sideways in execution and you end up botching the product.

He went on with an example. Consumer products are all about UX details, fast iteration, and validating product design with data. So the PMs and engineers who work on consumer products are very comfortable with compromises and imperfect products for the sake of shipping quickly, they’re used to spending time on event tracking and A/B testing, and the PMs really know how to read metrics, and so on.

In contrast, the requirements for business products usually come from business customers. The PMs and engineers on the business side face enterprise clients with deep pockets, none of whom you can afford to upset. Once you’ve made a commitment to a customer, compromising on a feature is basically off the table, even if that feature isn’t part of the main flow and the customer barely uses it. In addition, since the feedback cycle with business customers is usually long, there’s much less event tracking and A/B testing.

At this point, I couldn’t help comparing Shopify with the product I currently work on, Dynamics 365 Commerce. The former targets consumers and SMBs, while the latter targets large enterprise customers. For a while, our team felt a real sense of crisis watching Shopify take off, and our internal direction wavered a bit. We spent a lot of time and people polishing our e-commerce product, and we were constantly comparing ourselves to Shopify, whether consciously or not. Now, two or three years of the pandemic later, Shopify keeps growing its SMB customer base, while we still can’t win SMB customers over. The reason is simple: we’re just too expensive. More specifically:

  1. The surface reason is that our product’s starting price is way too high. With Shopify you can set up an e-commerce site and start selling for $30 a month, while our product costs at least several thousand dollars just to get started.
  2. Behind the starting price is actually the starting cost. After a customer pays, during onboarding Microsoft will always assign a Solution Architect (SA) to help the customer design the overall solution and do the initial configuration, because our product is just way too complex. It’s not something a newbie can figure out after a month of study. If you don’t believe me, just look at how long the table of contents of our official docs is. There are even quite a few books about our product being sold on Amazon. All of this means customers need more time and more manpower to get up and running.
  3. Finally, there’s the cost of maintaining the product after it’s in use. As an engineer doing on-call, I know this one all too well (or rather, I’ve suffered through it all too well). When I get a customer case, I often have to spend hours reading docs and trying out the product just to pin down which part of the product the problem is in, and only then can I dig into the logs and code to fix it. And it seems the whole product gets around 10,000 cases a year. Just think how much it costs Microsoft to maintain this product, how much of the customers’ operations staff gets eaten up (communicating with Microsoft), how many business scenarios get blocked, and how much revenue is lost as a result…

Of course, our Dynamics products aren’t entirely without merit 😂 We’re still the first choice for many very large customers, such as UPS, Columbia and others. What you get in return for paying all those costs above is a product that supports very complex business scenarios, such as sales for multinational corporations (imagine multiple currencies, multiple languages, and all kinds of different tax rules). On top of that, customizability is a first-class requirement for our product, so customers can build the features they want on top of it (we have hundreds of partners, most of whom do deep customization for niche verticals like pharmacy retail or apparel retail and then resell the product to customers in those industries).

I’ve gone off on a tangent there. Recently at an all-hands meeting, our big boss was asked this question: “Shopify lets customers start selling for a $30 monthly fee, so where’s our competitive edge?” The very first thing the big boss said was “It’s not our target market.” See, the leaders responsible for the product and technology position our product squarely as To Business or Enterprise. So all of us on the execution side, from top to bottom, design and build the product with a mindset of serving business customers. As a result, our development process is waterfall-like; our tolerance for bugs is extremely low, so efficiency naturally takes a hit; and backward compatibility is a line that must never be crossed, so every new feature needs more development and testing time. A product that iterates this slowly and costs this much is naturally a poor fit for consumers.

So, to sum up, why does Microsoft struggle with consumer products? As analyzed above, Microsoft as a whole, from the top down, doesn’t have the mindset for building consumer products. This makes it hard for the organization’s behavior patterns to produce good consumer products. Most importantly, it can’t optimize its products by quickly iterating on user feedback, so in the end the products it builds just aren’t competitive with those of its rivals.

Comments

No comments yet — be the first to leave one.

    Leave a comment

    Comments appear after review. Your email is never shown publicly and is only used to reach you if needed.