Software is People

Today, people like me write commands into documents that gets put through a program that translates them into things that the little electronic sprinkles in your computer can understand and use to make it light up and do things.

Computers, which is what I guess people born in the 20th century used to call our expensive Lite Brites, and a term I'll now use to include iPhones and TVs and internet-connected ovens, do what humans tell them. When people like me write software, we have to decide what to tell the computers; Should the screen turn red, or green, when someone presses a button? Today the whole tell them what to do process is so complex you might need hundreds of people just to figure it all out. It's like making a movie, really. And all throughout the process, people you don't know in some office somewhere are making little decisions that come together to make what you see on Facebook and Snapchat and that little screen on your Keurig machine.

I find it interesting to think of software as a person — a robotic third party watching over and facilitating your interactions with other humans. Facebook's news feed and Google's search results are each like doting parents, never wanting you to leave home and always telling you what's best for you. Snapchat is the crazy, artsy friend who you can never quite decipher, except that it loves parroting tabloid headlines. More literally, each piece of software / “app” treats you a certain way.

Thinking about things this way helps us understand our relationship with software. Which “friends” do we spend our time with? Do they treat us like they're our only friend we'll ever have and we will be missing out on so much if we left them (Facebook)? That we'll never get a job without their help (LinkedIn)? Do they tell us what they're thinking inside (open source), or do they purposely obscure and stay tight-lipped about their intentions?

This also applies to the humans making the software, and this is what sparked this thought today. I thought about how I could add a warning on that prevented people from accidentally moving posts between blogs, to help protect people from potentially revealing their alter egos. For example, if I have a pseudonymous blog called Jimmy's Life and accidentally move this post there (and leave it there), you'd know I was “Jimmy.”

So I wondered, do I as the user want a “friend” that constantly has to warn me to not do that? Do I want to have to rely on “someone” to keep things straight for me? Do I want someone telling me “what's best”? Or do I want the freedom to use my brain and move things around exactly how I see fit?

The software-writer can literally choose either and rationalize it any way they want. And for this I decided no, it's not a good feature. If is anyone's “friend,” it should default to trust, and afford users the space to do what they want. That's why it doesn't guilt-trip you for unsubscribing, for example, and makes it easy to export your data. Like any human relationship that comes to an end, all we can hope is that we both grew in some way from having met.

As we anthropomorphize computers more with voice-recognizing assistants and chat bots, the disbelief in us actually interacting with humans every time we touch a screen or click a mouse will fade. We as users should push for software-friends with wisdom and empathy. And we as developers should encode some wisdom with every command we commit to silicon.