Avoiding Enshittification

Avoiding Enshittification

Cory Doctorow's word for the way online platforms decay has gone from tech-blog slang to dictionary entry in only a few years. Enshittification is crude, but it is hard to think of a more accurate description.

Most of us have lived through it more than once: the app that was delightful, then ad-supported, then barely usable; the platform that was free, then "free with limits", then a monthly subscription with your data held hostage.

Doctorow describes it as a three-stage process, driven by a need to maximise profits - or perhaps even to just become profitable at all [the AI industry is going to experience that pain in a big way, so beware 'Free' agents - they will enshittify]

What concerns me here is different; the convergence of factors in a system that cause users more pain than can readily be accounted for by any single factor. As an example, I present how almost comically hard it was for me to use a 3D printer I'd bought and installed three months ago and then not used since.

  • Step 1 - Remember the name of the application
    Yes, this may have been something of a senior moment. But the name of the application contained neither '3d' nor 'printer'. Search was no use. The application was not installed in any of the standard locations (...that I could see). It was not installed by a standard wizard, so looking in the application list for recently installed applications did not work. I was stumped. Eventually, I found some names I could guess at on the manufacturers website. The moral of the story here: Be obvious when naming things. Oh, and Install applications in the standard way.
  • Step 2 - Remember the email address I used to register the online account
    Ah, this one fits into Doctorow's definition of enshittification. I suppose requiring registration before allowing a customer to use the product they have purchased is standard business practice these days. But... having the application demand credentials apropos of nothing simply because it has not been used in a while... that presents a real problem. There are legitimate reasons why tokens expire and why storing credentials persistently is to be avoided. So the real solution is Don't bake an online account so thoroughly into a piece of hardware that it will not function without it
  • Step 3 - Remember the password
    Of course, they didn't use browser-based authentication. If a password isn't in Google password manager, I've forgotten it already. Please, folks: If you are going to require credentials before allowing a user to actually use something they've already paid for... use a browser-based login
  • Step 4 - Figure out why the very obviously switched-on printer was not showing as online.
    The printer wasn't connecting to the Wi-Fi. It had been connected to the Wi-Fi before... the problem here was not that the problem was difficult to solve (tab through the menus in its little controller panel, find Wi-Fi, click on the correct Wi-Fi network) so much as knowing that this was the problem (the panel gave no indication of the wifi status). Two solutions here: If your product requires network connectivity to function... make the network status very obvious and aggressively reconnect after an outage
  • Step 5 - Run the inevitable firmware update
    If feels like any device, these days, if turned on after a long period idleness (or in this case just reconnected to the internet) will immediately demand that it update itself. I understand the necessity of security updates in this age of AI-powered hacking. But... perhaps there are other points in the workflow when we could bother a user with these requests? Generally speaking, when you've just turned something on, you have a definite purpose in mind which will only be interrupted by an update. In the case of the 3d printer, having the display show 'Update Needed' at the end of a print run would surely be more convenient. For my laptop, why not ask if it's okay to perform an update when the screensaver kicks in? I know, 'update and shutdown' has been there forever... but nobody turns their devices off any more.
  • Step 6 - Hunt the power button.
    'Please restart your device'... but how? Is there a restart option somewhere in this menu? Under configuration? Under status? Okay... is there a power switch? Is it on the back somewhere? Yank out the power cord. Please, product designers, can we have the off switch back? A nice, mechanical off switch somewhere on the front of the device?
  • Step 7 - See step 4. Really, please do aggressively reconnect

The point of this is not to rant at the particular manufacturer of my 3D printer and its software. I'm not even going to mention their names. The point here is that a confluence of small design issues turned what should have been a 10-second activity (Open the software, open the file, click print) into 20 minutes of frustration. The overall lesson is obvious: in product design, DETAILS COUNT. Without careful attention to small details that are seemingly insignificant in themselves, enshittification is inevitable as systems become more complex and the number of 'insignificant' details mounts.

Cover image by Büşra Salkım on Unsplash