Opinionated Product Design
Just the other day I was talking to one of my fellow Desk.com co-workers about our product and I mentioned that I thought we needed to be vigilant in maintaining our product's opinion.
As you may imagine, a product like Desk.com has some significant challenges when it comes to meeting and exceeding the expectations of our user base. While we do have a few key customer types we design for, there is a great variety within those customer types as far as how they work, the kinds of customers they service and the needs they have for our product.
Desk.com is very flexible in some ways and while we've got a professional services team that—with a bit of magic and hackery—can bend and shape the product to suit some of our more demanding customers, one of our goals is to keep things consistant and maintaining a core product that is opinionated.
Products with a strong vision, that put forth a “right way” of doing things, are better products. Just ask Apple. Or 37signals. Or go and look at your favorite products, chances are they're doing something that just kind of fits for you, but might not fit for everyone.
In my opinion opinionated products are also easier to use—even if they may require a bit more upfront investment. When making product and feature decisions you're constantly having to choose between keeping things consistent and designing for a particular context or user behavior. My general rule is to do what is right for the core user, and this often means sacrificing some consistency to make sure something works well in a particular context, for example.
What it doesn't mean is designing for edge cases and/or building features to address very particular use cases. There are times when you'll have to do just that, and usually you can, with smart design thinking, do so without watering down your product for everyone else, but these times should be few and far between and treated with caution.
So, can it be done? Can you build an opinionated product that works for a wide, diverse range of people? I think you can.
How do we do it? Well, primarily, we put a lot of effort into understanding our customers as a whole.
I've been fond of saying that my job is often similar to being a lawyer. I do a bunch of research, gather my argument and then present it to a jury. In my case the jury is made up of co-workers from various areas of my company, all of which have their own biases and opinions on how our product should be designed. It's my job to take the relevant information from everyone involved, mix that up with what I know about our customers as a whole, and turn that into design decisions that do the right, best thing for most of our customers.
(Having said all of that, I'll be honest, it's an always and constant negotiation. There are so many people involved and so many moving parts that there are times when there is no option but to compromise. And that's ok, as long as you know that going in and you do your best to do what's best.)
Look for patterns.
We're constantly looking for patterns in how people use our product. As well, our customers have to accept a certain amount of “my way or the highway” when it comes to using our products. Thing is: they'd probably expect that even if we tried to be everything to everyone, so we've got that working for us.
Embrace the learning curve.
Powerful software is often complex and can't always be made to be simple or easy. In fact, there is some danger in trying to remove friction. In our product, for example, we have complicated rules and macros. These things are often hard to grasp, and can be overwhelming at the best of times, but it's because they're really powerful and very useful. When educating our users on their use, we have to be careful not to dumb them down to much, or make too many decisions for them.
We want to make them easy to understand, and showcase how they can help, while at the same time give our customers the tools they need to get the most out of them. We want to make that complexity digestible.
Discoverability—making users aware of features, while not forcing them—and education can help you maintain a strong, opinionated product that services users of many skill levels.
Test your assumptions. Be all right with being wrong.
There are often times when a clear solution just doesn't present itself. You can have a bunch of great data, which might lead to a variety of solid solutions—and still not be sure what to do. This is why you test.
It's fine to take a stab at solution, get it infront of people, and see how it plays. In fact, this is probably the best way to decide between conflicting or—sometimes harder to deal with—similar solutions. Prototype something, get it in front of people, look for patterns, iterate and, eventually, release to everyone.
Which brings be to my last bit: allowing yourself to make mistakes. It is impossible to be right all the time and even if you're somehow good, or luckily enough to be right some of the time, it's really hard to be right the first time.
Even very informed design decisions can be wrong, and sometimes I take that as a sign that we're on the right track. Be ok with making mistakes, fix your problems, learn from them, get better and improve your product along the way.
If we were constantly “right” with our product decisions, my guess is we'd be just clearing a fairly low bar, and that's not how you make great products.