Tools Should Express Values
Dec 11, 2020 15:56 · 713 words · 4 minute read
I want my tools to express values. I want my text editor to tell me to write clearly. I want my scientific software to command me “Be true, be open, be humble, be curious.” I want tools to be less blank pages and more pleas for me to honor the values of the craft.
Blank is not Neutral
Many tools today are designed like blank pages. A writing app has a large blank space, with perhaps a few buttons for changing fonts and an indicator of how many words are on the page. An IDE likewise begins blank, maybe with some templates for its programming language. The same is true of both physical and digital canvas. It’s even true of mechanical tools; a hammer doesn’t express any opinion about what I build with it, it just helps me build.
On the one hand this blank default is a good thing. It eliminates distractions and makes room for creativity.
On the other hand a blank page seems to suggest a kind of false neutrality. “You call the shots” is what the blank page says. The page is an instrument of your mind and does not try to influence what you will do. That’s neutral in a sense, but it’s not necessarily the sense I care about. The combined output of (page, mind) is not neutral because the mind isn’t neutral. I have opinions and beliefs and it’s almost certain that some of them are wrong or unhelpful or detract from my goals. Why isn’t the page trying to correct them, or at least nudge me towards being more successful?
Tools with Values
Some tools do express values. In countless ways the meditation app Headspace advocates the view that acceptance of circumstances is a Good Thing (TM). It doesn’t say you shouldn’t try to make things better, just that you should accept the fact that the things which have happened have, in fact, happened.
This isn’t a neutral view, it’s better than a neutral view! It furthers the goal of finding inner peace. It’s what I want a meditation app to be doing.
Religious instruments express values. This is something religion gets right. Churches are filled with symbolism pointing to key values of Christianity, and likewise for many religions. It’s hard to walk into any place of worship and not learn something about the stated values of its congregation. On a much smaller scale you can even get a Challah knife that has a prayer over bread inscribed on the side.
University buildings sometimes express values. Astronomy departments show pictures of stars and planets on the walls. They have posters about recent and upcoming space missions (the implied value: “Space is awesome!”). Walk down the halls of a physics department and chances are you’ll see pictures obtained through a microscope or AFM or STM.
Why shy away?
Why do we shy away from having tools that express values? I think a big part of it is tool builders fear being judged for the values they might express, or they may fear alienating users who don’t share their values.
This is a valid fear. If only 1% of people share my values, and imbuing tools with those values makes it 100% better for those people but 10% worse for everyone else, it’s worse to embed values than not.
On the other hand, some values are intrinsically related to tools. If you’re doing science, you should want to do reproducible science. That means you know most of your users like reproducibility, so there’s little reason not to have tools that extol this virtue.
Similarly, someone who is writing probably wants to write clearly, so it’s good to keep that value present by reminding them to write clearly.
Programmable Tools Should Express Programmable Values
Software tools are programmable tools. They should express programmable user-defined values. My text editor should let me set a rule that says ‘If it’s a TeX document, display value X at the top’ or ‘If it’s a Python script, display value Y at the top’.
And this should be optional. If the user really wants a blank sheet of paper, give them a blank sheet of paper. But tools that nudge with values are under-used, and I think there’s real space for improvement here.