I’ve always looked at the world and wanted to know how things worked. What things meant. What their story is. As a child I devoured book after book. Visited a thousand different worlds, lived a thousand different lives. Learned how to see the world through another’s eyes, to understand how other people might think or feel.
It’s more than that though, I also feel compelled to fix things. To make things better. It’s an engineer’s heart, and I fell into software engineering naturally, as if it was always what I was supposed to do.
People tell me I think too much, but maybe they don’t think enough, maybe they miss out on the stories that everything tells. “It doesn’t mean anything”, they say. But that tells a story too. Maybe a story of carelessness, or perhaps of convenience. Everything means something. Everything has a story. If you can see the story, you can see how the ending can be changed. That not only should things be better, that they could be better — and how to do that.
When people think about stories they think about books or films, maybe even talks. They forget that everything in life is a story — every choice, every interaction. Why you have that bookcase that doesn’t match anything else in the house. How you explain to someone else your ideas. Our entire lives are a story.
I write software for a living, and I think considering it as engineering made me blind to the fact that software is just another storytelling medium for me. That, just as much as writing or speaking, my software tells a story. Each part of the interface, each line of business logic, each piece of the architecture, telling a story. A story about the user. When you look at the software, it should tell you the story of why it exists. Of what the user wants. I care that the software is well written, and the application well architected, because it matters to me that the story is well told.
And when the software is run it does something else — it tells another story. A story to your user. It shouldn’t just work, it should be beautiful. A story that shows that you understand the user, that you anticipate their needs. Or maybe it doesn’t. Maybe you didn’t write a good story, maybe it has plot holes and a confusing narrative. But software is a wonderful medium, because this story is interactive, the user tells you a story back. A story you need to listen to.
Recently I’ve moved from web development to conversational interfaces. Conversation should be the most natural of stories — it builds relationships, connects us with others. Using language to interact with technology should be simple for a story teller — voice interactions carry such rich meaning. But already I’ve heard voice interfaces criticised as much more limiting than a graphical interface. They say a picture is worth a thousand words, but I wonder if the opposite isn’t true. Each word carrying a thousand pictures — a tiny link to a vast tapestry of interconnected thoughts and ideas, ones that will never be adequately represented outside of your mind.
Language gives us a tiny glimpse into the human mind, and as we use it to interact with computers it’s giving us a glimpse into how computers think. And it’s not pretty. Not yet. Computers need human help to have a good conversation, to smooth over the coldness of technology, to make the story better.
It’s bigger than that though, software interfaces are disappearing, merging into the world around us. The story they need to tell — the one that says that they understand us and anticipate our needs — will be an important one. Making it a beautiful one will be hard, but is very far from impossible.
Software Engineers in a world of Artificial Intelligence all need to be storytellers. We all need to understand the stories our software is already telling — we all need to learn to write better stories through it.
Once upon a time a storyteller became a software engineer. Now the software engineers must become storytellers.
If you found this article useful or interesting, please 👏 below or share it with others. You can also follow me here, or on twitter @virtualgill.