Why is design failing to penetrate software companies
Since my employer got into the design business by acquiring a design firm, I have been trying to teach myself about design and how it is used in the software industry. It now seems obvious to me that properly designed software is the exception, not the norm. So, why is that?
Software companies are run by software engineers
Now, this is not a surprise to anyone but it has a major impact on the inability of design to penetrate software companies. Software engineers are "alpha people" they don't understand that they are the only ones that can figure-out how to use their software. I don't really want to expand on this because Allan Cooper did it much better than I could ever do it in The inmates are running the asylum.
Software people poo-poo waterfall
In his book, Cooper makes an analogy between the "design driven" software process and film making. You have pre-production, principal photography and post-production. When you tell this story to a software guy, the only thing he hears is waterfall. Then, he will promptly plug their ears with their index fingers and go "la la la la la... I can't hear you!".
The software world, especially in the past 5 years, the silver bullet has been agile methodologies. The software industry is blaming a lot of its past failures on the waterfall model and its inherent lack of flexibility. The whole industry has been moving towards a development model that lets team crank-out releasable product in small atomic iterations. If the "crazy customer/user" changes his mind, we only lose the work for the one 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 design.
What design brings in to the picture, and why it is not just another rebirth for waterfall, is that design is agile. It is interactive and it is flexible. And, by doing all the refactoring in pre-production, you don't have to throw away any expensive code.
You can launch a new product for 12000$
There is a lot of people that still believe that software is cheap. They read articles like this one and think that they can build gmail for that price. When you think that software is cheap, it is no wonder that you don't want to take the time to do proper design and save some money.
And this is a further obstacle because even software companies fall into that trap and keep thinking that they can make the development process cheaper. They should know better by now. They try to put new fangled processes in place 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 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 can probably put it together for 12000$. But anytime you're going to solve a new problem or try to solve an old problem in a better way... It is going to cost you actual money.
Good design is invisible
One of the main issues about good design is that it is invisible. It gets out of the way to let you do your job. When is the last time you entered a store and went: "Wow, that door was really well designed, I had no trouble finding the handle and opening it". It is really hard to put a value on something that is invisible. Features in software are visible. They can be sold and promoted. Well designed features are not easier to sell than badly designed ones because the good design is impossible to describe, it's invisible.
Design is only apparent in two cases: When it is in your way and when you pay attention to it. When it is in your way is easy to detect. You just get frustrated when you try to use something. Companies end up having to staff a call center full of people to answer customer calls.
So how do you detect good design? 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 once in a while:
Start with The design of everyday things. You will start seeing the world around you in a completely different light. I promise you will never walk into a mall without looking at the door handles again.
If you are a software person, read About Face 3: the essentials of interaction design. It is a big book but don't worry, it has lots of pictures. It is full of theory but it is not enough to make you a designer. I can guarantee that you will find in there examples of things that you have actually implemented that are big design no-no's.
If you are involved in any way with the construction, marketing or sale of software products, you should also add The inmates are running the asylum to your reading list.