Why software design matters
Many areas of software technology are easy to explain to outsiders. And the funny thing is, it’s often the most technical that are the easiest.
Say you work on encryption algorithms. You might not be able to explain to your friends how exactly your algorithms work, but it’s not hard to explain why they matter. You’d just tell them that encryption helps keep people’s data private when it’s being stored or transferred. In other words, you'd explain the encryption concept to them (and maybe give them a little operational principle about how the encrypt and decrypt actions are applied).
But for those of us whose business is software design, things get a lot harder. How do you explain to your friends what software design is and why it matters?
It feels like I’ve been trying to do this forever. It’s not that I don’t believe it. On the contrary, I think software design matters more than ever before (and AI just raises the stakes). But it’s just hard when people are fixated on flashy things to explain why the most basic stuff is important.
Now you might think that people who work in the software industry but aren’t focused on software design like you and me would get it. But strangely, they often don’t either, even if they’re making software products whose design will determine whether they sink or swim.
So I was delighted to have the opportunity to be interviewed by Kara Miller, a columnist at the Boston Globe and host and executive editor of Innovation Hub, who wanted me to explain to non-specialists why software design matters.
You can listen to the interview here.
Two ideas in particular emerged from our conversation. One is that the kind of software that I analyze in my book—the apps made by Adobe, Apple, Dropbox, Google, Microsoft, etc—is the good stuff. Of course those apps are not immune to design problems, and sometimes the excellence of the product in general makes its flaws seem even more egregious. Serious design problems are much more prevalent in other kinds of products, in particular enterprise software systems built by customizing packaged solutions (think SAP, Salesforce, Epic, etc). These are not subject to the same market forces, and they're not refined by contact with millions of users. It can be quite a shock to move from a typical Mac productivity app to your company's internal systems. Sometimes it feels like time travel, back to a time when using software required remembering special tricks and incantations.
The other idea is that companies sometimes seem to be oblivious to the most serious design flaws in their products, and are drawn to adding cool (but seemingly useless) new features before they fix basic problems. I'm honestly not sure why this happens. I know that the people who work for these companies are really smart and talented, and that they want to be driven by the bottom line. And yet the lure of little hacks seems irresistible. Maybe because building them is easier than solving a hard design problem?
As always, I'd love to hear your comments, in the concept forum or by email to me personally.