//-->

Ethical Software by Alex Bunardzic

March 30, 2006, 11:50 pm

Making Painful Software is Mean

Filed under: Software, Design, End-user experience — Alex Bunardzic @

Anyone who is not into status quo should be grateful to the 37 signals crew for their uncompromising thinking, writing, acting, and teaching.

Today I read a very succinct and significant proclamation, made by the 37 signals core member Ryan Singer, that “making painful software is mean.” This is a very profound and far reaching statement, because making software is a fairly new type of human activity that hasn’t been fully digested by the community.

What Characterizes Mean Behavior?

Typically, any behavior that harms others is, by consensus, characterized as being mean. Inflicting physical injury and pain, emotional injury and pain, as well as plotting to jeopardize someone’s potential, all those types of behavior are recognized by the community as being mean.

But if a person builds a robot, or a software program that will do those same things to others, than that person is also guilty of exhibiting mean behavior. It is this last case that hasn’t been fully recognized yet by the society, and so we still don’t have court precedents where victims of mean software could get legal protection.

What Characterizes Painful Software?

Of course, part of the problem is that software tends to be mystified, and so it’s difficult to delineate behavioral traits of a software program that could be interpreted as being painful. We as a society need to collectively work on establishing these parameters, in order to assure harmonious functioning of our communities.

So we have our work cut out for us. But what is it we should focus on? I’d like to offer some suggestions, or seed ideas:

  1. Respect — same as in any other social situation, the most basic requirement for harmonious interaction is respect. Any situation where the person engaged in some sort of activity is being disrespectfully treated is utterly painful for that person.

    Software that exhibits rude, inattentive, and arrogant behavior towards its user is painful. Such behavior should be discouraged and even punished.

  2. Nurturing environment encouraging exploratory behavior and growth — any situation where participating members are being actively discouraged from learning by trial-and-error and growing through the use of the system facilities is considered painful. Software program that insists on keeping its users in a state of perpetual inadequacy is to be labeled as painful.

  3. Disregard for the human priorities — humans must be recognized as being the most precious and most expensive resource. Information technology machinery time is dirt cheap; human time is always at a premium price. Forcing human users to waste a lot of their time on tasks that could be easily and inexpensively be performed by the software programs is to be considered painful. Any such design must be actively discouraged.

The list is potentially endless. Please contribute your own thoughts and views on this critical issue.

Comments are closed.