It has to work
by havoc
Often when our minds turn to design, we think first of cosmetics. With all the talk of Apple these days, it’s easy to think they’re successful because of shiny aluminum or invisible screw holes.
But this is a side issue. The Steve Jobs quote that gets to the heart of product development might be: So why the fuck doesn’t it do that?
If you’re trying to make a successful tech product, 90% of the battle is that it works at all.
“Works” means: the intended customers really use it for its intended purpose.
Plain old bugs (deviations from the design specification) can keep a product from working, if they mean people don’t use the product. But bugs can be irrelevant.
It’s easy to fail even without bugs:
- Using the product has too many steps or a single “too hard” step. People give up.
- The product solves a non-problem or the wrong problem. Nobody will use it.
It doesn’t matter why people don’t or can’t use the product. If they don’t use it, it does not work.
Startups based on making it work
Plenty of startups were successful because they broke the “it has to work” barrier. A few famous examples:
How many “file sync” products existed before Dropbox? It must have been thousands. But it’s easy to create a nonworking file sync product. Too many steps, too much complexity, or too many bugs: any of these could mean “file sync” didn’t work.
Can you imagine pitching these companies to potential investors? “Yeah, thousands of people have failed to do our idea. But we’re going to finally do it right.” Tough sell.
Working vs. well-designed
Dropbox, Sonos, and Flip are working products people seem to agree were well-designed. But some successful products have pretty bad cosmetics:
- despite its eventual failure, MySpace became popular initially because it met a need and it worked
- craigslist
- eBay
- git got the big picture right, but every small UI design decision or “cosmetic” issue seemed to be wrong
- HTML/CSS/JavaScript (now I’m just trolling, sorry)
“Working” is a little bit different from “well-designed.” Sometimes working can involve “worse is better,” perhaps. “Working” has to do with solving a problem, not (necessarily) doing so in an elegant or beautiful way.
“It just works” vs. solving the problem
The phrase “it just works” comes up a lot, and that’s almost enough. “Just working” seems to mean there aren’t many manual steps to use the product.
But you still have to solve the problem. I remember the iPod because it solved my music problem: its use of a hard drive meant I could get all my music on there, and listen to all my music. That’s what I wanted to do. Other players didn’t work for me because they didn’t hold all my music, which created a problem (deciding what to put on there) rather than solving one (getting rid of all those CDs). To this day, I find the iTunes app hard to use (bordering on terrible), but it works.
Easy to use is not quite the same as working, though perhaps it’s a helpful step.
QA that asks “does it work?”
At Red Hat, we used to use a sophisticated QA technique called the “yellow pad.” To yellow pad a product, you get one of those yellow legal pads. You need a fresh setup just like the one the customer will have (say, a computer your software has never been installed on). Then you install and try to use your software, writing down on the yellow pad anything that fails or looks embarrassing or nobody would ever understand.
Plenty of “finished” products will fail miserably.
QA teams and developers get tunnel vision. It’s easy to go for months with nobody on the team taking a fresh look at the product, step-by-step.
Once you can pass your own “yellow pad” criticism, or in parallel if you like, you can jump to hallway usability testing, maybe still using a yellow pad: watch someone else try to use the product for the first time, and again take notes. Fix that stuff.
The point is this: over and over and over, iteratively as you fix stuff, you need to try the product by walking through it, not by looking at features in isolation. Feature lists and requirements documents are death. Step-by-step stories are life.
I’m sure you can see the resonance with agile software development and lean startup methodology here, but you need not buy into a complex method or theoretical framework.
Yellow pads won’t help you solve the right problem, but they’ll get you past a lot of details that can sabotage you even if you’re solving the right problem.
Focus
A good way to kill a product: start adding extra features when it doesn’t work. First it needs to work. Focus on that. Then you can elaborate.
People who can’t tell if it works
Many people argue that non-technical CEOs can’t lead a technology company. One reason, I believe, is that many non-technical CEOs can’t tell whether a product works, or can’t understand which technical barriers to workingness are surmountable and which are fundamental.
Often, IT departments can’t tell if software works; they produce lists of requirements, but “it works” may not be one of them. Remember, “working” means “people will really use it in practice,” not “it can be made to do something if you have enough patience.”
Interaction design is a branch of design with an emphasis on step-by-step, and I find that designers with this background understand that it has to work. Many (not all) designers with other backgrounds may have an emphasis on the appearance of static snapshots, rather than the flow through the steps; and I’ve found that some of those designers don’t know whether a design will work.
Software developers are good at recognizing some ways that products don’t work, but as frequently noted, many of us overestimate the general public’s tolerance for complexity.
It might take a few years
Some kinds of product (notably, many web apps) can go from concept to launch in a few months or less, but whole categories cannot. Operating systems; anything involving hardware; non-casual video games such as World of Warcraft. In my experience, which spans a few projects anyway, complicated tech products tend to take a year or two to be “done” and around three years to work.
Sometimes I wonder if the “secret sauce” at Apple is no more than understanding this. Other hardware manufacturers have structural problems investing enough time in a single product. While I have no idea how long Apple spent developing the iPhone, I’m willing to bet it was at least three years. That’s more than enough time for most big companies to cancel a project.
Video game companies seem a little more open to investing the time required than other kinds of software companies, with major games spending several years in development. Video games don’t have the luxury of launching a “1.0” and then fixing it, I guess.
The first milestone that matters
If you’re building something, celebrate on the day that the product works.
You may have a long way to go yet (does anyone know your product exists?), but you’ve already succeeded where others failed.
“I’m sure you can see the resonance with agile software development and lean startup methodology here, but you need not buy into a complex method or theoretical framework.”
That’s right, you only need to buy into a certain set of values, which are pretty much the same behind both of the things you mention in the paragraph and everything you endorse in this blog post.
[…] a successful tech product, 90% of the battle is that it works at all. Havoc Pennington, on creating a successful product… and companies I would add. […]
I disagree with your definition of “works” (“the intended customers really use it for its intended purpose.”).
Apple MacIntosh was not designed for graphical designers, but they adopted it. Flickr was not designed as a photo sharing social product, but it became a product by itself (instead of being part of a game experience).
Paraphrasing Guy Kawasaki, if somebody is willing to give you tons of money to use your software in a way you never conceived, then just take the money.
Besides to be open to change your view, I agree with all your comments.
for sure, you are right
This is a great post. Totally nails down all my frustration on my Linux machine. It’s great, I love it, but it’s still not ready.
We had a tech-debate with friends last time, and they were telling me how they love their Mac, because it “does what they want”, and it’s “fool-proof”. I think we have the first point (we can do a lot of things, and sometimes better than Mac), but we’re clearly not user-proof.
So, more testcases, more QA, and off to the desktop market 🙂
My criteria for whether something “works” is if I can use it after a couple glasses of wine without reading the instructions.
If I lose interest and/or a stream of foul words come out of my mouth, the product has failed the test.
Which lead to another comment about “it works”: Linux on the desktop has a future only if one can buy a hardware that just work with the software. This involve integrating the hardware and the software into one single product.
Gnome Computer Inc. Anyone?
you guys at Litl should take your own advice ; )
I haven’t worked there in a while (but I’m sure they are working on it)
This is a really nice post. I am currently taking a course at university about human computer interfaces and design. This post nicely summarises some of the material we have covered.
I’d also have to throw out there, that video game designers, by and large, do a fantastic job of making ‘it work’. You can be a total neophyte, and figure out most games intuitively and quickly. Most other computer tech fails miserably at this. I wish video game designers re-designed all computer apps from the ground up, but they’re likely making too much money in the video game field.
[…] It has to work. Indeed. " If you’re trying to make a successful tech product, 90% of the battle is that it works at all. […]
[…] Better framing: it has to work. […]
[…] a new insight, but it’s still important, and well-stated here in these graphics. The product has to work and it can only work if you know what it’s supposed to do, and who it’s supposed to do it […]