Principals and Agents
Three Things #97: December 10, 2023
I never write reviews on Amazon, Uber, Airbnb, or any other centralized marketplace. There was a time when I used to do this, in the early days of each platform, when it still felt novel and fun. Amazon around 1998, Airbnb around 2010, and Uber around 2013 felt small and vulnerable, and to be a user felt exciting, like being a renegade and part of an important movement. It was exciting because you were onto something that the world didn’t know about yet. Even my friends didn’t know about these platforms when they first launched. In retrospect, I don’t know whether I legitimately felt that way or whether it was due to the effect of propaganda, but it felt real enough. I used to advocate on behalf of these platforms, and to onboard all my friends.
Of course that couldn’t continue. These companies and these platforms eventually got too big, and as they grew everything got shittier. Uber’s customer service was amazing in the early days; now it’s basically nonexistent, the prices are exorbitant, and drivers try to scam you. You used to find all sorts of hidden gems and meet amazing people on Airbnb, and there used to be a novelty factor to it; the last few times I ended up in a disgusting property that was clearly only used for Airbnb listings and that looked nothing like the photos. And Amazon… well, horrible UX, tons of fake reviews, and screens full of hidden ads are just the start of its problems.
And yet these companies still pretend to be community-driven. They all still talk about the importance of “community” as if they’re a small village garden or an open source project or something. The abuse of the word community among unaccountable, for profit billion dollar companies is atrocious. Words have meaning and this word has been sadly stripped of its meaning due to bad actors like this using it as a pleasant-sounding euphemism for “customer.”
As I reflected on the sad trajectory of companies like this, from darlings that I was genuinely excited to share with my friends to unaccountable, toxic, shitty platforms with terrible UX and no customer service to speak of, I kept coming back to this question: Why don’t I post reviews on Uber? What’s the actual reason? Why don’t I feel like doing this? Why does the mere thought of doing this disturb me so much? I think the core issue, and the mitigation if such a thing exists, lies at the heart of this question. Here are three reasons.
Thing #1: Ownership 🚩
On the surface it seems to boil down to a question of ownership and agency. I’m willing to invest a great deal in myself, my home, and my family because they’re mine and they’re always going to be mine—I’m stuck with them! I’m willing to invest a bit in my local community because I feel some degree of ownership and agency, but less than I do at home. This relationship continues outwards in ever more distant concentric circles, so to speak: I feel less agency in my city than I do in my local community, even less in my state, very little in my country, and hardly any at all at the global level. (Incidentally this is one reason I think large nation states are inherently ungovernable, but that’s a topic for another week.)
Similarly, I’m willing to invest a great deal of time and energy, without limits (other than those impacting the health and security of myself and my family), in my own startup. I see such a project as an extension of myself and my agency as a person. I’ll invest less in a company or project if I’m an employee rather than a founder and have, say, very minimal ownership rights and limited agency. I’ll invest even less as a contractor: I’ll deliver the agreed upon work product, but I typically won’t go above and beyond in the way that I would as a co-owner.
Why is this the case? Partly it’s simple incentives. If I’m the founder or cofounder of a project then I have a great deal invested in it, a great deal of stake and reputation on the line, and a lot to lose—and also a lot to gain if the project does well. (This is sort of the central tenet of capitalism and why, despite its flaws, it’s the best system of incentives we’ve yet devised.) Presumably I wouldn’t put myself in that situation if I didn’t genuinely believe in the opportunity, timing, market, etc. or if there were something more promising to work on.
By contrast, as an employee, while I’m still somewhat invested in the success of the company and the project, the degree of investment is far less than that of a founder. And as a contractor it’s even less, since contractors typically don’t have any ownership.
All of these forms of engagement can make sense depending on the people involved, the situation, and personal preference. I personally can’t work as an employee (I’ve learned this the hard way, multiple times) because I can’t be only partially invested into a thing and because, as an employee, the temptation to leave and become a founder again is always too great. I’m independent minded and I’m not good at following instructions or playing by someone else’s rules. I can be fully invested, as a founder or cofounder, and give something all of my energy and attention. I can also be a contractor and have a clearly defined deliverable and no other obligations (and work for myself, which is what it means to be a contractor).
Is there more to ownership than simple financial and legal incentives? It’s also a practical matter of time and commitment: if I found a startup I’m likely to be working on it for a very long time. By contrast, as a contractor I probably won’t be involved in any given engagement for very long. You’re more likely to invest time and energy in making a home comfortable if you plan to be there for a long time!
The other piece of the puzzle is agency, which I touched upon above. I’m willing to invest time and energy into a thing not only because I have financial and social upside but because I feel a sense of enfranchisement, a sense of agency, a sense that I and my actions matter: they have impact both on the organization and on the wider world. This is somewhat intangible and difficult to describe in other terms but it’s a very rational human emotion.
Which brings us back to Uber and the other platforms. I have no ownership in Uber. And I have zero agency. Uber may pretend otherwise but it’s simply too big and I’m just one lowly user. My thoughts, feelings, and preferences don’t matter in the least to the company. My relationship with Uber, to the extent that such a thing exists, is purely transactional. I don’t like Uber very much, I feel no sense of values alignment, I avoid using it when I can, and using it often leaves a bad taste in my mouth for a bunch of reasons. But I do it anyway sometimes because I’m buying a job to be done. When the job is done, I want nothing more to do with it. I want it to go away and stay out of my life (which is why I hate push notifications from apps so much).
I have zero intention of ever leaving a review in Uber. Why bother? What’s in it for me?
Is there a way to feel a similar sense of ownership and agency in a big project that many people are working on? Fortunately, I believe so, which brings us to the second thing.
Thing #2: Open Source 📖
All of the platforms just mentioned are run by big, for profit companies. Those companies are accountable only to their shareholders and their software isn’t open source. Despite being a customer I don’t feel compelled to contribute to those companies or their platforms because I have no agency, no ownership, and derive no benefit from doing so.
Fortunately there’s an alternative! Humans have found another way, besides sheer capitalism and for profit companies, to organize human endeavor at a large scale: open source. I use open source software every day, from Bitcoin and Ethereum to Linux to Brave to a variety of tools and utilities. (I’m trying to transition to using exclusively open source software and I’ve made some progress but it’s a work in progress.) And there are some big differences between closed source, unaccountable, for-profit platforms and those that are public, participatory, and built on open source software.
One way to have ownership and agency in a project is to, well, literally own a portion of it through equity. But there’s no equity in an open source project, or in a public good more generally, so how does one achieve ownership and agency in this sort of project? It’s a bit nuanced and it varies from project to project but the short answer is, one derives a sense of agency and ownership from the act of contributing to the project (you get out of it as much as you put into it).
Many open source projects are run and governed as a form of commons-based peer production. Another related idea is do-ocracy. In the case of a for profit company in order to become an owner one must not only be wealthy enough and have the wherewithal to purchase equity; one must also be enfranchised by the financial system, and one must convince someone else to sell them shares (easier in a public than a private company). By contrast a do-ocracy is typically permissionless. Anyone with the time and requisite skills can typically jump in and start contributing. Github uses the term code owner for a reason: one really can derive a sense of ownership in such a project through “sweat equity” and through the respect and admiration they’re afforded if they have a track record of valuable contribution over time.
When open source projects first emerged most people thought that this model would never work. After all, it’s not economically rational for experienced software developers to contribute unpaid labor to such projects when they could instead devote the same time and effort to a project that they get paid to work on. But open source did work, and it continues to work, because it turns out that people are motivated by more than pure economics. I’m far from the only developer willing to devote a great deal of time and effort to an open source project that no one owns or controls so to speak.
There’s a sense of joy, pride, accomplishment, community—and, yes, ownership—that arises out of contributing to an open source project in one’s spare time. Do not underestimate the power that this sense of community and shared ownership imparts to a project. It turns out to be a very powerful phenomenon. Extraordinarily complex projects, some of the most complex, most widely used software ever written including Linux, Apache, Chromium, and Android have arisen as a result. And one could argue that these projects could never have been built in a traditional, centralized, top-down fashion! In many of these cases the decentralized, open source upstart (Linux, Chromium, Android) defeated the centralized, corporate-backed incumbent (Windows, Internet Explorer, iOS).
While I never post reviews on Uber, I’m more than happy to spend 10x or 100x the time reporting a bug or adding a feature to an open source project that I use. Partly it’s because there isn’t some unaccountable, distant corporation and its shareholders that are benefiting from my labor, at least not directly. (It should be noted that sadly this isn’t equally true for all open source projects. I’m a lot less likely to contribute to Android or Chromium due to the way Google has captured these ecosystems than I would to something without an unaccountable, distant corporation behind it.)
Partly it’s because I feel like a real stakeholder in such a project. Contribution is typically permissionless and in most cases it’s fairly clear how I could play a larger role in the governance and leadership of such a project if I were so inclined. And I always have the option of forking the code as well, something else I can’t do with Uber! In this way open source projects and applications can tap into orders of magnitude more talent than closed source, unaccountable projects can. As a result and over time, I’m certain that open source software will get better and better and will gradually replace more and more of the garbage, closed source apps we use today.
I should note that for the same reason that I’m totally unwilling to write reviews on Uber or Amazon, I’m also totally unwilling to devote any time or resources to software or projects that aren’t truly open source. I often get pitched on some exciting new protocol or application that’s going to change the world, and my response is always the same: show me the code! This is both because as a developer I need to see the code to know the project is legitimate; but even more importantly it’s because it makes the interaction trustless. I don’t want to invest time and energy into something that’s not going to be around for very long. And I don’t need to trust that the entrepreneur and the company are going to open source the code later (everyone says they will, but most don’t get around to it) or be around forever. The code will be.
Thing #3: The Principal Agent Problem 🧑🔧
I’ve been intuitively aware of this phenomenon—not feeling incentivized to invest in something when you don’t have ownership or agency—for a long time but I never knew what to call it or how to classify it. I finally realized recently that I had been introduced to the answer in a totally different context: it’s called the Principal-Agent Problem. In a nutshell, this is the conflict that arises when one actor (the agent) acts on behalf of another (the principal). The two actors have divergent personal interests, and while the agent in theory is supposed to act in the interest of the principal, in practice they’ll put their own interest first. I had been introduced to the idea in the context of corporate governance, where the agents are the company executives and the principals are the shareholders.
I think this framework captures well what’s going on when I refuse to write reviews on Uber or Amazon. In this case I’m both a customer, paying the company in question in exchange for a service provided, and also an agent who’s expected to do work that’s in the interest of the company (write a review). But the company isn’t compensating me for that work, and due to that and the total lack of ownership and agency my interests diverge from that of the company. In other words, the incentive design here is broken.
The Principal-Agent framework also explains the other examples I presented above. I’m willing to do a lot of work at home, on behalf of my family, because I’m both principal and agent—in other words, I’m doing the work on my own behalf (or on my family’s behalf, but the family is an extension of the self). The startup scenario is the same: I’m willing to do a great deal of work for my own startup because, again, I am both principal and agent. In both of these cases the problem isn’t a problem because the two actors are in fact one and the same! By contrast when I’m not a founder or at least part owner of a company I’m much less willing to work extra hard because in this case I’m the agent, not the principal, and the owner’s interests don’t match my own.
Of course ownership isn’t black or white; there are shades of gray. If you’ve ever wondered why companies give their employees stock options, one big reason is that it’s a partial solution to this problem. This helps a little bit with ownership, but for all but the very earliest employees the amount in question is barely measured in basis points relative to all other shareholders, so for 99% of such employees the attraction of equity-based compensation is purely about the financial upside and not about engendering a meaningful sense of ownership or agency.
What about open source projects? Does the Principal-Agent framework explain these as well? One way of looking at it is to say that there’s no principal in the case of an open source project. A for-profit company could be created to commercialize and monetize the code but, assuming the code has a true open source license, it has no owner to speak of because anyone can fork it and use it anytime for any purpose without permission.
As mentioned above many such open source projects are governed via commons-based peer production. The key word here is “peer.” When there’s no principal, all agents are in fact peers. One could equally say that all of the agents are principals. True, in practice not all actors have equal roles in the governance and operation of a project. Some will inevitably be more central and take on more agency, responsibility, and accountability. But as long as the project is governed as a true open source project, and as long as any actor is able to fork the code and establish a different system of governance, strictly speaking there is no principal.
I think this explains why I feel comfortable working on open source projects (and why I feel uncomfortable if the project is owned or in practice dominated by a for profit company like Google or Facebook). Someone else isn’t profiting from my work (at least not directly). Someone else isn’t taking advantage of me. My interests are aligned with those of all of the other people working on the project, and the others benefiting from it.
I’m not aware whether anyone has studied the principal-agent problem in the context of commons-based peer production or open source projects, but if this hasn’t been done it would be an interesting angle to explore. I’m also curious how it plays out in cooperatives, where all agents are also principals (albeit not necessarily to an equal extent). The incredible success of open source in recent years does suggest that, in addition the usual, narrow, capitalistic set of solutions to the problem, there are promising alternatives such as removing the principal entirely or making everyone a principal.
I recognize that I’m privileged to be able to say this—how wonderful it is to be a software developer in 2023!—but I, for one, do not plan to ever work again on a project where I’m not a principal. I encourage you to do the same if you’re able. And if you feel stuck I’m happy to strategize anytime about how to get there.
And for the record I still don’t plan to start writing Uber, Amazon, or Airbnb reviews! Until these companies start compensating us for this data labor I encourage you to boycott the practice as well.