Critical Path Newsletter
Why Is Design-thinking Failing To Penetrate Software Companies?
As Chief Software Architect for Macadamian, my role is very technical, though I've long had an interest in design and the user experience. Since Macadamian merged with a design firm, I’ve been trying to teach myself about design and study how design-thining is adopted in the software field. Over the past couple of years, I reached the opinion that properly designed software is the exception, not the norm. Why is that?
Software companies are run by software engineers
If you construct, market or sell software, you should also add The Inmates are Running the Asylum to your reading list.
The fact that software engineers run the vast majority of software companies isn’t a surprise to anyone, but it tells us why good design eludes the industry. Software engineers are "alpha people." They don't understand that they’re the only ones who can figure out how to use their software.
I could expand on this point, but I won’t. Allan Cooper did it much better than I could ever do it in The Inmates are Running the Asylum.
Say “design” and software people hear “waterfall”
In his book, Cooper makes an analogy between a design-driven software process and movie making. In the movies, you have pre-production, principal photography and post-production. When you tell this to a software guy, the only thing he hears is “waterfall.”
In the software world, especially in the past five years, the silver bullet has been agile methodologies. The software industry blames a lot of its past failures on the waterfall model, with its inherent lack of flexibility.
The whole industry has been moving towards a development model that lets team crank out releasable products in small atomic iterations. Then, if the "crazy customer/user" changes his mind, we only lose the work for one short iteration.
Agile is not a process, it's a mitigation strategy. And the funny thing is that it is a mitigation strategy made indispensable by the lack of up-front design.
What design brings in to the picture, and why it is not just waterfall in disguise, is that design is agile. It’s interactive and it’s flexible. And, by doing all the refactoring in pre-production, like the movie industry does with storyboards, you don't have to throw away large amounts of expensive code.
You can launch a new product for $12 000
A lot of people still believe software is cheap. They read Guy Kawasaki's blog post about Truemors and conclude they could build Gmail for that price.
Even some software companies fall into that trap. They focus on making the development process cheaper.
They should know better by now. They try new processes to reduce the cost of the software, they adopt new tools to make development faster and they attempt to move the development to "lower cost environments."
But ultimately, what costs money (and the goodwill of users) are failed projects and useless features.
If you are trying to build a Digg-clone/social-media/crowdsourced-Web 2.0 application, go ahead and hack away at it. You might even launch if for twelve grand.
But anytime you need to solve a new problem or an old problem in a better way... It will cost you actual money, and the surest way to limit your risk, and be sure that you are investing your development money where it really counts - where your customers will derive the greatest value, is by spending time and money on design.
Good design is invisible
Good design gets out of the way to let you do your job. So people don’t see it.
Have you ever entered a store and said, "Wow, that door was really well designed, I had no trouble finding the handle and opening it!"
We don’t value things that are invisible. Software features are visible. Marketing and Sales can promote and sell them.
Design becomes visible in only two cases:
- When it gets in your way
- When you pay attention to it
When design gets in your way, it’s very, very visible. It’s a bright red traffic light that never turns green. You just get frustrated when you try to use something and fail over and over. Companies end up having to staff a call center full of people to answer customer calls. That’s expensive in two ways:
- it costs us money
- it costs us the goodwill of our users
The second way to make design visible is to pay attention to it. Software development companies tend like technology more than design. We tend to look on the inside of things to get excited—we love an ugly app that uses the latest technology better than a pretty one that’s slow. But here’s the thing: our perception that design = aesthetics is way off. Design is about interaction. Interaction between humans and computers. A well-designed program means that interaction is easy. A poorly designed one means that interaction is frustrating.
You don't need to be a designer to know enough to pay attention to design. You just need to educate yourself a little. In between books about Ruby on Rails and Agile estimating, toss in a book about design:
Start with The Design of Everyday Things. You’ll start seeing the world in a completely different light. You’ll never walk into a mall without looking at the door handles again.
Then read About Face 3: The Essentials of Interaction Design. Don’t let its 648 pages scare you; it has lots of pictures
It is full of theory but it is not enough to make you a designer. I guarantee you’ll find examples of big design no-nos that you've experienced first-hand.