Make a pattern worth using

If there’s one thing I’ve learned about designing patterns, it’s that you need to make a pattern worth using.

It seems that every technology company today wants to become a “platform”; to make their device or service the foundation for other people’s work. To that end, many companies are developing hardware specifications and programming interfaces for others to use in their own products.

Everyone is racing to make their patterns the most open and development-friendly, yet very few people are racing to be the *best*. It’s the *best* pattern, however, that usually wins–not the most open.

Look at the iPhone. Completely closed, from hardware to software to service, and Apple is in fact antagonistic toward developers and customers who try to extend it. They even pushed software updates to the device that ruined them if you’d changed anything.

Yet developers are building completely custom applications for it, even many that can’t be used without people hacking their phone first. An entire [ecosystem](http://www.iphoneapps.org/) has sprung up around this illicit activity. And normal people, who have never installed anything more than a chat program, are scouring the web for ways to flash their iPhone firmware so they can use these hacked apps.

Why? Because Apple–seemingly without meaning to do so–created a pattern that everyone wants to use. Their closed system works so well that everyone wants to be a part of it, even though doing so takes much more work than developing for a more open system like Windows Mobile.

At work, we tried for years to establish visual and interaction patterns for our designs. Our tactic was always to take all the individual examples and let people choose which one worked best for them, and unfortunately it never really took. No one was excited to use a pattern that wasn’t great for their need. However, when we hired a team of design rockstars specifically to define a shared set of styles they created sexy and clean patterns that everyone was excited to use.

I’m a huge fan of open-source hardware and software efforts. I’m very excited about the [Bug Labs](http://buglabs.net/) modular electronic device and system, I’m hoping to get a [Squeezebox audio system](http://www.slimdevices.com/) (which benefits from open-source software), and I’m looking forward to the Android phone OS. I think [flexibility in a system is incredibly important](http://ryskamp.org/brain/design/failure-and-flexibility.html).

The winners in almost any product space, however, will be the ones that make the *best* patterns, the ones that people will jump through hoops to use if they have to. If you can be both great and open, do it. But if you have to choose, it’s more important to be great. Don’t propose a compromised design because you think it is “more practical”, or “more open”. Make those criteria work for you; make them subject to your design goals rather than compromising the design for their sake.