Patterns of good software products
A pattern language for people who make software products. It runs from the largest decisions to the smallest. Each pattern names a problem that keeps coming back and the core of its solution.
Part One: Strategy
Where demand comes from
- The Struggling Moment It is tempting to believe a good product creates its own demand. But people keep the way they have, because it works well enough, until something in their own life makes it not good enough.
- The Progress They Want Features are what a team builds, so features are what it thinks in. People think about where they are trying to get, and judge the product by whether they got there.
- What They Do Today It is natural to measure yourself against the product most like yours. The person choosing is comparing you with the spreadsheet, the assistant, the workaround, or doing nothing.
- Forces For and Against Makers add attractions, because attractions are in their power. What holds people back is usually worry about the new thing and comfort with the old one.
- The Customer You Turn Away Every extra kind of customer looks like extra revenue. A product stretched to fit all of them fits none of them well.
- One Thing Done Well Each added capability wins an argument with somebody. The product that does ten things passably still loses to the one that does the important thing properly.
- The Whole Job It is cheaper to solve the middle step, where the software is. People are left stranded before it and after it, and blame the product for the parts it ignored.
How it is understood
- Different Where It Counts A team can list a dozen ways its product is different, and every one is true. A buyer needs the one difference that matters in their situation, and a reason they can repeat.
- The Kind of Thing It Is People understand a new thing by what it resembles. Call it something familiar and you are compared feature by feature. Call it something new and nobody knows what you are.
- Their Words, Not Yours Makers name things by how they are built. People describe their trouble in their own words, search with those words, and do not recognize the product when it uses different ones.
- Found Where They Look It is easiest to promote a product where promotion is sold. A person with a problem goes looking in particular places: a colleague, a search, a forum, a marketplace.
The stance of the business
- Enough A company needs to grow to survive its early years. Growth pursued for its own sake afterward pushes it to spoil the product that earned its customers.
- A Price You Can Explain Tiers, add-ons and stacked charges let a company charge each customer what they can bear. People who cannot work out what they will pay feel tricked, even at a fair price.
- Who Pays, Who Uses When one person pays and another uses, as with advertising or a manager buying for a team, the product bends toward the payer. Yet it only works if the person using it is well served.
- Easy to Leave Making it hard to go keeps this year's revenue. People who feel trapped stop trusting the company and warn others off.
- Promises You Can Keep A promise is made by the person closest to the sale. It is kept, every day, by people who were never asked.
- A Point of View Offering every option offends nobody. A product with no opinion about how the work should be done cannot help anyone do it better.
- Makers Close to Customers Summaries and dashboards let a few people speak for many customers. The people who decide what to build stop hearing a customer's own words.
Deciding what to build
- The Last Time They Switched Makers need to know what people will do. People can only report what they did, and asked about the future they oblige with a guess.
- Watch What They Do Numbers are cheap and cover everyone, and people will gladly describe their work. Watching is slow and covers a few, and only watching shows the workaround nobody mentions.
- Decide What It's Worth Asking how long something will take invites an estimate that grows. Deciding first how much the problem is worth sets a limit the solution has to fit.
- Rough Enough to Change A vague idea cannot be built, and a detailed design gets defended instead of questioned. The stage in between takes hard thought before anyone has agreed to build, so it gets skipped.
- Say No by Default Every request is reasonable to the person asking. Every one accepted becomes something to maintain, and something every customer has to look past.
- One Customer's Request A large customer asks for something only they need, and the money is real. Everyone else then lives with a product shaped around someone else's business.
- Fix What's There First New capability wins new customers and is easy to announce. The things existing customers already struggle with go on costing them every day.
- The Smallest Whole Thing Cutting scope is how work gets finished. Cut the wrong way, it leaves half of a big thing, and people can only use a whole thing, however small.
- Take Things Away Removing a feature upsets the few who use it. Never removing anything makes the whole product harder for everyone to find their way around.
- Check After You Ship Shipping feels like the finish, and the next piece of work is waiting. Whether the change helped anyone can only be seen afterward.
- Measure Progress, Not Attention Features shipped and time spent are easy to count and pleasant to report. Counting them rewards the company for being busy and the product for holding people longer than they wanted.
Part Two: The product
Finding and trying
- Say What It's For Makers want to say everything the product can do. A stranger needs to know in a few seconds what it is, who it is for, and whether to keep reading.
- Value Before the Ask A company wants an account, a card or a sales call as early as it can get them. A person wants the product to do something for them before they give anything up.
- A Trial With Your Own Work A polished demo with sample data is easy to stage. People cannot tell from it whether the product will handle their own messy situation.
- The People Who Must Agree The person who wants the product is rarely the only one who must say yes. They have to persuade a manager, a partner or a team, and carry the blame if the choice is wrong.
The first days
- First Useful Result in Minutes Setup has to happen some time, and makers want it done properly at the start. A newcomer has little patience and no proof yet that the product works for them.
- Learn by Doing Makers want to explain the product before anyone gets lost. People do not take in explanations until they have a reason to care.
- Good Defaults Options let every customer have it their way. Most people never change a setting, so the product they get is the one that ships.
- A Switch That Can Be Finished People arrive with years of existing work and a way of doing things that still runs. A move that drags on leaves them paying for two systems, and they drift back.
- Set Up by One, Used by Many In a team product, one person configures it and others are told to use it. What suits the person setting it up is rarely what suits the people who arrive later.
- The Second Visit The first session ends and ordinary life resumes. A product can pester people to return, or it can leave them with a reason of their own to come back.
Getting good
- Past the Awkward Stage Every new skill makes a person slow and clumsy for a while. Most give up during that stretch, before the product has had a chance to make them any good.
- Show What Good Looks Like A blank canvas offers freedom. People cannot aim at good work they have never seen.
- The Path to Expert What is easy to find for a beginner is slow for someone who uses the product all day. Each group resents an interface made for the other.
- Progress They Can See A product that works quietly gets no credit. People cannot tell what it has done for them or whether they are getting any better.
Everyday use
- What You Came For, Up Front A company has things it wants every visitor to see. A person arrives wanting to carry on with their own work from where they left it.
- The Product Remembers You Asking again is the safe way to avoid a wrong assumption. Being asked the same questions on every visit tells people the product has not been paying attention.
- Fast Enough to Forget Each small delay has a good technical reason. Together they make the product feel like hard work, and people cannot say why.
- Works Where They Are It is simplest to build for a desk, a large screen and a good connection. People reach for the product on a phone, in a queue, with one hand.
- Quiet by Default A notification is the only way to reach someone who is doing something else, so it gets spent on the product's own numbers. People learn to ignore all of them, including the one that matters.
- A Place to Finish A feed or a queue that never ends keeps people in the product. It also leaves them feeling they are never done.
- Habit Without Hooks Streaks, badges and guilt reliably bring people back. They do it without making anyone's life better, and people come to resent the product for it.
- Together When It Helps More people in the product is good for the company. Sharing pushed on someone who only wants to get their own work done is an intrusion.
Trouble and change
- A Human When It Matters Automated help is cheap and answers most questions. When something serious goes wrong, meeting a chatbot tells the customer they are on their own.
- Own the Mistake Admitting a failure feels risky. Silence and blame cost more, because customers judge a company by how it behaves when it fails.
- Undo Almost Everything Warnings are easier to add than undo. People who fear breaking something stop exploring, and one slip costs them an hour.
- Nothing Is Lost Saving only on request is simpler to build. A crash, a timeout or a closed tab then throws away someone's work.
- Change Slowly What People Know Makers see the old design's faults every day and want to fix them all at once. The people who know the product best pay the most when everything moves.
- Old Customers Keep Their Deal Costs rise and prices must follow. People who built their work around the old terms feel the ground move under them.
- Trusted With Their Data More data makes more features possible. People find out later what was collected and what was done with it.
Part Three: The details
Before anything else
- Watch Someone Use It Makers know their product too well to see it fresh, and testing sounds like a project. Watching three people try to use it will show what no review can.
- Works for Every Body It is quickest to design for good eyesight, steady hands and a mouse. A great many people have something else, permanently or just today.
Screens
- One Screen, One Purpose Putting everything in one place saves people a click. A screen where everything is equally prominent gives no hint about what to do first.
- Start With the Feature It feels orderly to design the navigation and the frame first. The thing people came for then gets fitted into whatever space is left.
- Loud, Quiet, Silent Everything on the screen was put there because it matters to someone. When it all speaks at the same volume, nothing stands out.
- Space Shows What Belongs Together Lines and boxes are the obvious way to separate things. Each one is more to look at, and distance can do the grouping with nothing added.
- Real Content First Placeholder text and tidy examples make a design look finished. Real names, real lengths and real mess are what it will have to hold.
- A Few Choices, Made Once Choosing each size and color to suit its spot seems careful. A product made of hundreds of slightly different choices looks unsettled, and every screen takes longer to make.
- Where Am I Deep products need many places. People lose track of where they are and how to get back.
- Show a Little, Offer More Showing every option at once overwhelms a beginner. Hiding them frustrates someone who knows what they want.
- Lists That Answer the Question The order that suits the database is the easiest to show. People then have to sort and filter before the list tells them anything.
- Search That Forgives Exact matching is simple and predictable. People make typos, use plurals, and use words the makers did not.
- The Empty Screen Teaches An empty screen is the honest state of a new account. It is also the first thing a newcomer sees, and it says nothing about what belongs there.
- Obviously Clickable A clean screen with few visible buttons looks calm. People cannot tell what can be pressed, and do not try.
- Built for Scanning Makers write and lay out screens as if they will be read. People glance, pick out a word, and act.
Asking and deciding
- Ask Only What You Need Each extra field might be useful to someone in the company one day. Each one also loses some of the people filling in the form.
- One Decision at a Time Putting every choice on one page shows the whole picture. A page of choices that depend on each other makes people stop.
- Prevent the Mistake Accepting anything and complaining afterward is the easy thing to build. People would rather be unable to make the mistake, or have the product accept what they typed.
- Errors That Help An error is clear to the person who wrote the code. To the person reading it, "something went wrong" says nothing about what to do.
- Confirm Only What Matters Asking "are you sure?" feels like protection. Asked about everything, people stop reading the question.
Words and feedback
- Plain Words The company's own terms are precise for the people who work there. People do not recognize their work in them.
- Buttons Say What They Do "OK", "Submit" and "Continue" fit on any button. They do not say what will happen.
- Say What Happens Next Makers know what a button does, so the question never occurs to them. The person about to press it does not know whether they will be charged, who will be told, or whether it can be undone.
- Honest Status It is tempting to show success early and hide a wait. People who are told "done" when it is not, or left watching a spinner, stop believing what the product says.
- No Tricks A pre-ticked box, a hidden cost or a guilt-tripping button wins today's number. It loses the customer when they notice.
Finish
- The Same Thing Works the Same Way Each part of a product is built at a different time by different people. When the same action behaves differently in each, nothing people learn carries over.
- Somebody Looked Small rough edges seem too minor to schedule. People notice them, and conclude that nobody is looking at the large things either.