Monthly Archives: June 2017

The problem with “it’s just an app”

Middlemen seemingly exist just to get “cut out.” Online marketplaces like Airbnb and Uber are described as middlemen, and I frequently read about how they could be replaced, say, by worker cooperatives or open source apps. After all, “it’s just an app.” Replacement is an appealing idea—imagine Uber/Lyft, but with drivers making X% more money because they don’t have to kick up money to the platform. I’m deeply skeptical, as I think there is not enough appreciation of what these marketplaces do and what it would take to replace them. Setting aside network effects, I think even recreating the basic functionality of most popular marketplace-intermediating apps as they *currently* exist would be challenging.

Anyone who has built software will tell you that the complexity of the software grows much faster than the apparent complexity of what that software does. For example, the original Facebook was a couple thousand lines of code. Two plus years ago, the web codebase, excluding back-end services was over 62 million lines of code. Facebook doesn’t “seem” 1,000x more complex, but running an always-on, globally distributed system that can do all the things that modern Facebook does well is enormously complex. Part of this complexity is that it has to handle ever-more edge cases and be more robust to different failures. Another driver towards greater complexity is that with scale, the platform has an incentive to do small things marginally better. It makes sense to nail some user interface interaction if users will be subjected to it  billions of times.

For-profit platforms can get talented people to work very hard on boring problems. Right now, there is some Stanford CS PhD, some Harvard MBA and RISD-trained designer figuring out the right sequence of dialog boxes and push/in-app notifications to guide Lyft passengers to the arrivals level at an airport. And a PhD data scientist who is going to analyze GPS data, customer support tickets and server logs to try to figure out if whatever they come up with is working. It’s Einsteins designing refrigerators.

The idea of worker cooperatives or open source apps doing the above reminds me of the quip about the problem with socialism is that it wastes too many evenings. You’re not going to get volunteers to work through the kind of tedious problems that make an app seem smooth and intuitive. Most successful open source software  typically (1) solve a technical problem the creator had, (2) is inherently interesting to the creator, (3) or has a strong corporate sponsor/ecosystem ala Android. Where you don’t see open software succeeding is in solving some end-user boring, non-technical problems. And these are precisely the problems for-profit platforms focus on.

We already know what a marketplace looks like that ignores the boring stuff. Consider Craigslist, which although clearly a success, has seen nearly every one of its “verticals” attacked by for-profit platforms, some with great success. Those entrants realized that they can compete with “free” by solving problems that users had. 

It would be foolish to think that incumbents can never be brought down, but the “just an app” or “just a website” perspective doesn’t consider how much hard-to-duplicate work lead to that app in its current form, and how much of that work was tedious and unlikely to be done by any entity without a strong profit motive.