I try not to make unlikable software (and features) May 8, 2021 on Drew DeVault's blog

I am writing to you from The Sky. On my flight today, I noticed an example of “unlikable” software — something I’ve been increasingly aware of recently — inspiring me to pull out my laptop and write. On this plane, there are displays in the back of each seat which provides entertainment for the person seated one row back. Newer planes no longer include these, given that in $CURRENTYEAR everyone would just prefer some power for their phone or laptop. Nevertheless, you can still end up a plane with this design. You can shut the thing off by repeatedly pressing the “☀️ -” button, though that button is rated for half the cycles it will have already received by the time you press it.

When the flight safety video is playing, or an announcement is being made, however, the system will override your brightness preference. This is a fairly reasonable design choice, added in the name of passenger safety. What’s less reasonable is that the same feature is re-purposed for shoving advertising into your face a few minutes later. In fact, it spends more time on ads than on safety. A software engineer sat down and deliberately wrote a “feature” (or anti-feature?) which they had to have known that the user would not have wanted. The airplane manufacturer demanded it at the expense of the user.12

I have had many opportunities throughout my career to make similar anti-features, and I have encountered many other examples of this behavior in the wild. Many programmers have implemented something which measurably worsens the experience for the user in order to obtain some perceived benefit for the company they work for. Dark patterns provides many additional examples, but this kind of thing is everywhere.

I find this behavior to be incredibly disrespectful to the user. When I am that user who is being disrespected, I will generally stop using that software, and stop supporting any businesses who chose to be disrespectful.3 For my part as a programmer, I do respect the user, I find satisfaction in making software which makes their lives better, and I always have and always will push back against anyone who demands that I subvert that ethos for their wallet’s sake. You should always aim to make the user’s experience more pleasant, not more unpleasant. We should just be nice to people. That’s it: please be nice to people. Thank you for coming to my Ted talk.


  1. A savvy reader could (correctly) extrapolate this to infer my position on advertising in general. ↩︎

  2. They also got on the PA later on to try and convince passengers to sign up for their airline-themed credit card. This isn’t even a budget airline. ↩︎

  3. Though, to be entirely fair, it is somewhat difficult to “stop using” the mandatory ad viewing session I am being subjected to on this airplane. I could put in earplugs and gouge out my eyes, perhaps. Yes, that seems like a proportionate response. ↩︎

Have a comment on one of my posts? Start a discussion in my public inbox by sending an email to ~sircmpwn/public-inbox@lists.sr.ht [mailing list etiquette]

Articles from blogs I read Generated by openring

What's cooking on SourceHut? September 2021

Another month passes us by, recording further progress on the road to the sr.ht beta. Joining us on this journey are another 448 new souls, bringing our total number to 24,552. As always, I’m depending on you to show them kindness and patience as they learn …

via Blogs on Sourcehut September 15, 2021

Automatic cipher suite ordering in crypto/tls

Go 1.17 is making TLS configuration easier and safer by automating TLS cipher suite preference ordering.

via The Go Blog September 15, 2021

Summary of changes for August

Hey everyone! This is the list of all the changes we've done to our projects and apps during the month of August. We'll also be reporting in our on position in the world, and on our future plans. Summary Of Changes Nasu, implemented a way to shi…

via Hundred Rabbits September 4, 2021