These days I spend a lot of my time thinking about the software I use and create, and who is at the center of it’s design. As software markets have matured, we’ve seen a wave of enshittification sweep through and fundamentally change the software we rely on. Why has this happened? Who is at the center of their design considerations, and what am I even referring to?
Let’s start with a classic, yet subtle example (at least here in the US) iMessage. iMessage is a messaging service built by Apple and is the default across all of their products. It is a messaging service that enhances the traditional SMS experience, adding things like read receipts, message reactions, and the ability to work exclusively over wifi, but there are many more features as well (games, payments, icloud, etc). The service is free, easy to use, and secure… As long as you’re communicating with another user who has an iPhone. Communicate with anybody outside of the Apple ecosystem and the experience is notably worse. You lose many of the features previously available, and the blue bubbles you have come to love turn green, all in a carefully curated way to make the experience worse. This makes messaging people outside of the Apple ecosystem feel clunky, and leads to real social pressure to use Apple’s products and services. You may be wondering, well, why don’t they release iMessage on Android? Or make the regular SMS or RCS experience better? If they were focused on making the best software for their users, that is what they would do, but that is not their focus! Apple explicitly stated internally, they will not release iMessage on Android because
“iMessage on Android would simply serve to remove [an] obstacle to iPhone families giving their kids Android phones” - Unnamed former Apple employee, reported by The Verge
Apple doesn’t want everybody to have the best experience, they only want that for those that exist within their ecosystem, and they want those outside to feel pressured to conform.
Let’s take a look at another example. The first thing that may have come to your mind when talking about software that doesn’t work for it’s users was likely social media. Social media, very famously and often overtly, does not respect its users. It is designed to be addictive and collect as much data about you as possible to be sold to advertisers. It is not about connecting you with loved ones, or giving you a place to share your memories. That is only a means to an end. The other terrible practices of social media companies are outside of the scope of this article, but don’t worry, I am sure I will be writing something in depth about that soon.
Why does this matter?
As tech companies mature and consolidate, the choices we have in front of us shrink. If you wish to participate with loved ones on social media, you’re probably on Facebook or Instagram. If you’re in the US and considering buying a phone, you may feel pressured to purchase, or continue purchasing an iPhone. We are drifting away from software that works for us, and using software that coerces us, or as Andrew Kelley calls it in his recent talk “Don’t take the black pill” “coercionware”. (I highly recommend watching this talk by the way, Andrew is a huge inspiration of mine!). As somebody who loves software, and loves what computers can do for everybody, I know we can do better.
What does user centered software look like?
User centered software is software that is made as good as it possibly can be for the user. It is software that is chosen because it is so good, not because you are pressured to use it. Linux is a great example. You can get a free, robust, open source operating system and use it for whatever you want, no strings attached! Or how about Wikipedia? Wikipedia is here to provide you the sum of all human knowledge, and has become one of the most visited websites in the world purely based on their merit. They don’t coerce anybody into using them, or lock their information behind a paywall. They don’t spy on you or sell ads, they just give you high quality information for free, no questions asked.
I could go on and on, but something that organizations tend to have in common when it comes to creating user centered software is their incentive structures. The Linux foundation and Wikimedia Foundation are both nonprofits. They are organizations with the express purpose of solving a problem, or fulfilling a mission. When compared to Apple, or Meta whose goal is to make as much money as possible, the distinction seems obvious. For-profit companies make software that centers the user at first, but after a certain point, they tend to start squeezing their users for additional profit if they feel their growth is limited. Google’s removal of their motto “Don’t be evil” comes to mind here.
Interestingly, some companies like bluesky are trying to find a middle ground. They are designing their software in a way that doesn’t trap or coerce users, considering themselves “future adversaries” in an attempt to keep the users at the center of their software throughout the growth of their privately owned company. I would love to see more of the industry take an approach like this, it would lead to better software and services for all.
So what do we do with all this information? As consumers, we have a choice. We can choose where to spend our time, where we send our money, and we can shape the products and services available to us. If a piece of software you are using feels exploitative, or isn’t working for you, consider giving something else a try. Look into open source alternatives, and see if your problems can be solved for free! If you find value and have the means, consider donating to support the projects you love so more people can benefit from high quality software that respects them.
This is my first ever blog post! If you made it to the end, thanks for reading! :-) If you have any thoughts, feel free to reach out to me at the links below.