Respectful software

Last updated on 2024-07-22.

Respectful software...

  1. Serves the interests of the user, as he defines them. The most important way to do this is to make the software easy to change, and therefore easily adaptable to different needs.

  2. Respects the user's freedom. This means it does not include legalese notices that implicitly threaten to wield the power of the state against people. Thus respectful software shall be in the public domain. It shall not even include a maximally permissive license, as that would imply accepting the absurd concept that a person can have the moral right to own information and control how others may use it.

  3. Respects the user's intelligence -- for example, by giving clear, neutral and informative error messages rather than dumbed-down, cutesy, useless ones.

  4. Respects the user's agency -- is not paternalistic, does not "nudge", instead presents the relevant information and allows the user to make his own free choice.

  5. Respects the value of the time and effort the user has spent already to learn how to use that software, and to learn software in general. This means following existing conventions, doing the least surprising thing, not disrupting people's workflows.

  6. Does not waste the user's resources. This includes his CPU time, real time, memory, storage space, network bandwidth, attention, money, and everything else.

  7. Is transparent, not obfuscated. Tells the whole truth and does not lie.

  8. Is maximally portable, freeing the user to use the software in the environment of his or her choice.

  9. Cleans up after itself, is easy to remove, does not litter.

  10. Does not spy on people, does not phone home.

  11. Does not "maximize engagement", is not designed to create addictions.

  12. Quietly does its work and stays out of the way, only interrupting at all when it is necessary.

  13. Works forever and does not demand to be updated.

  14. Does not come with advertisements, political statements, or nag screens of any kind.

  15. Does not impede disabled users -- a category which includes all of us, eventually, if we live long enough.

  16. Shall be in every way designed to be a slave to the user, not to make the user a slave to the software.

33mph.com