In this blog/mailing list, I have been writing about "humane software," particularly as it relates to medicine. Still, I have never stopped to acknowledge it directly or define what it means. So today, I will address that, head-on, by defining humane software. To increase the level of difficulty, or really to avoid a pet peeve, I'm going to try to avoid defining in terms of what it is not.
Drum roll, please, Andy.
Humane software is an ongoing endeavor that looks beyond the simple goals of the system at any other results and seeks to expand benefits and reduce harms.
If you're good with that, cool. If you want a little more explanation, here it is.
I say that software is an ongoing endeavor because I'm an adherent to the philosophy of software that it is "not finished until the last user is dead." That's a bleak way of saying a couple of things. One, your software has a symbiotic relationship with its users. It must grow and change along with its users to stay alive (relevant). Two, you have a responsibility to maintain the software as long as people continue to use it. Basically, don't let the people who depend on you down.
Of course, software has to meet the initial goals for its existence. Whatever benefit you are trying to provide must be realized. That is a component of the humane quality of software. It must create some good for some people beyond the creators of the software. The completeness of the humane quality comes from looking beyond the intended effects to ask, "Who else does the software impact? How are they impacted?" To be less bleak than earlier, sometimes software creates unexpected benefits, and if you become aware of them, you can work to expand their reach. In my opinion, more often, software unintentionally harms, and that is where we must do more to be aware and take steps to reduce and eliminate those unintended harmful effects.
What do you think of this definition? Is it missing anything? Does it bring any examples of humane or harmful software to mind? I would love to hear your thoughts.