Product Design Principles

Role: Writing
Team: Lars Svennbeck

This is a first draft of a book on design principles for new designers, TLDR: check the chapter titles.

Think like them
Remember things
Make money not enemies
Aim for comfort
Respect privacy
Create value from the start
Consider learning curve
Show them where they are
Maximize feedback
Start with content
Guide them
Get out of the way
Be transparent
Be consistent
Talk like them
Create value everywhere
Don't be an asshole


Think like them
Organize things in the same way people think about them. People have mental models of how things work that creates expectations of how things should work. The model is influenced from prior knowledge about the world, culture and how they've used similar things in the past. People expect to find sugar in the bakery category. Make sure it works that way, otherwise you'll create a lot of frustration. And tomatoes should be in the vegetables category even though it's actually a fruit. So sometimes it's better to follow an incorrect mental model if it works.

Don't make a product work as a reflection of how it actually works behind the scenes, that will often make it more complex than it needs to be. People don't care how things work as long as it can help them accomplish something swiftly and easily.

Different people have different mental models and organize things differently in their minds. It can also change over time. Someone who starts working out a lot might think about food in categories of protein, carbs and fat instead of the usual dairy, bread, fruit, frozen and so on.

Get inside their heads.


Remember things
Don't give your product alzheimers. If you tell it something it should remember it, your preferences and where you left off last time. Don't think you know best and don't prioritize business interest over letting people easily pick up where they left off.

It's also possible that people are using your product in a different way than you expect. Listening to audiobooks in a music player for example, you want to keep listening from where you left off, not just the track, but the point in the track.

Remembering people show that you care about what they think and do. It's like that person you've met a couple of times that keeps forgetting your name or what you do for a living. If you know what they like you can give them more of that.

Also remember to forget, it should be possible to make the product forget certain things or everything. For privacy but also if you're adapting the experience based on their preferences and someone else used their device or account, or they might use the product for one reason at one point and another, another time. Maybe they've bought a present for someone or watched a shitty movie when hungover, that doesn't mean they want more of that. Or it influencing the experience. They should be able to curate what you remember about them.

Remember to remember and forget.


Make money not enemies
Design a business model that doesn't screw people over or piss them off. Even though you might earn more money short term it completely destroys your brand, any goodwill and loyalty towards your company. Don't create subscriptions for things that should be a one time purchase. Don't charge for things that really should be free. Don't introduce new currencies unless you have damn good reasons. Don't make people pay for parts if they've already bought the whole. Don't charge unreasonable amounts just because you have something you know people will want. Don't create a business model that will need unfair labor to be successful. Try to avoid using a business model that will make the quality of your product worse; using ads for example.

If you're making a game, don't have purchases that alter gameplay or the core experience, it's better to sell cosmetics like hats and outfits and solutions to puzzles than a new weapon or experience points. Don't prey on the addictability of your product, people should feel good when they're done with your product.


Aim for comfort
Imagine going to see a 3 hour movie and having to sit on a wooden stool. It fills the function of having something to sit on but that's not good enough, you want something comfortable, like an armchair. It's the same with digital products. They might be functional but they need to be comfortable to make people want to keep using them.

People shouldn't have to worry about missing a button because it's too small. Try to make it visually clear how big the tappable area is and if possible, make it bigger than the actual button. For example: if the button size is 100 x 100, make the tappable area 120 x 120.

Prioritize the most common action, make the button bigger, give it more space and have it stand out visually.

Consider where and how people will use the product, they could be distracted, on a bumpy bus ride or out running. Imagine them being drunk and having sausages for fingers. Can they still use the product?

When designing for several different sized devices, start designing on the smallest one. That way it will work on the larger devices as well. Mirror the design to the device as you work or preview often, as it's easy to make things too small if you're designing on a bigger screen.

If ever in doubt, make it bigger.


Respect privacy
Without privacy, there is no freedom. In order to have a free and democratic society we need to maintain people's privacy. For companies and individuals that doesn't care about freedom, there is the argument that collecting and storing data is a liability. Sooner or later you might get hacked. Therefore you should try to do everything you can to not collect any data, do computation on the device rather than in the cloud. Strongly encrypt data in transit and when it sits still.

Don't build any backdoors for anyone, they can always be misused, even by the people you intended to build them for. Consider ways your company can easily fold up to avoid sharing data when being pressured by goverment or organisations.

Always ask for permission to use the customer's data and be clear how you intend to use it, and why it's valuable for the customer.

Don't collect data that would be awkward to ask for in real life.

Don't ask for data you don't need.

Don't try to hinder people from seeing what your code is doing so they can make sure it's not doing anything it shouldn't.

Don't share data you collect with third parties.

Don't have badly designed, badly type set, convoluted, long terms of services that doesn't clearly state what information is collected or how it's used.

If you sell your company, make sure all data is shredded.

Design business models that doesn't compromise people's privacy.


Create value from the start
Give something before you ask for something. Don't ask people to create an account if it isn't vital. First give something, then ask to get something in return for even more value.

If you just met someone and you ask them to give you someting, it doesn't create a very good first impression. Think of your product as a person and act accordingly. If you want someone to give you something, it's usually best to give something to them first or give them something in return for the thing you want. If you create value for someone, they'll like you more and they're more likely to buy from you.

Never start an experience by asking people to sign up or give you personal information. Always give them something first, show what you offer. Sell things that add to that first thing you offered. If you're building a product for viewing, sharing and curating art, let people view the art first, and if they find that valuable, offer them the ability of sharing and curating in return for signing up.

If you want people to pay for something, give them something valuable first and they're more likely to open their wallet.

Be more generous than you're comfortable with.


Consider learning curve
There's a common misconception that you shouldn't have to explain anything about your product. That it's like a good joke, if you have to explain it, it's not very good. It's true that you should always strive for a simplicity and clarity of understanding. But there's always a tradeoff between product depth and ease of learning/use. You shouldn't go for simplicity at the cost of potential product value if you're designing for people who value depth. A steep learning curve can be offset by the value you create once it's been mastered.

People are more likely to invest their time and attention if it's something they're going to use often, or if the value they get out if it outweights the trouble of a steep learning curve. High value - low complexity works. High value - high complexity works. Low value - high complexity doesn't work.

Consider a product for capturing todos, if you're building it for as many people as possible, you want to make the learning curve as small as possible or nonexistent. All actions should be obvious and self-explanatory. They might only use this product a few times per month, so it's not practical to have to remember how it works. If instead you design it with the intention of use several times a day you can make it gesture based, and have elegant, fast navigation that you have to learn. It has a steeper learning curve but the speed and flexibility for people using it every day far outweighs the learning effort.

Think about beginner, intermediate and expert users, make sure you know where you want to create the bulk value. Is it for the beginners, then the product is probably for the constant beginner which means no or small learning curve. If it's for intermediate or expert then the learning curve can be steeper because it's offset by the value created later on.

Where do you want to create the bulk value?

Show them where they are
Make it clear where people are, have clear titles, show breadcrumbs: food > diary > cream, show progress and make it obvious what the thing you're looking at is about.

If I'm in a step by step process show me where I am: Checkout > PAYMENT > Confirmation. If the product has been told to do something, show its progress, if it has been completed or not and if there are any problems.

Make the state of controls unambigous, there should be no way of misinterpreting what is selected and deselected, what is active and what is inactive. It should be clear what will happen or where you'll go if you use a certain control. Be visual to help with quickly identifying current state and selection. Use text on controls to communicate what will happen or where they'll go.

Make it posssible to preview changes that happen when using controls, when changing textsize it should be clear how big the text will be. Either with a preview or seeing the actual content change size.

Don't assume people know where they are.


Maximize feedback
People love getting feedback of what they do, it shows that the product is listening and recognizing what they're doing. Feedback also helps with creating a fun experience, bouncing a sack of sand isn't as fun as bouncing a bouncy ball, which provides a lot more feedback. Blowing things up is fun because the output of an explosion far outstrips the input of pulling a trigger or lighting a fuse. More feedback = more fun.

Feedback can be on many different levels, the smallest level of giving feedback for tapping a button, medium level of completing a task, or larger level of things you do over a period of time. For example how much money you've saved from your bank, or how much weight you've lost over a period of a month. Could be over an even longer period.

People want to be able to influence their environment. It's one of those fundamental human needs. Having things stay the way you left them the next time you come back is also a form of feedback. You can influence the environment and the effects are lasting.

More feedback = more fun.


Start with content
Get to what people want as fast as possible. Ideally it should be right there in the beginning. Try to minimize navigation and put the content in focus. Even if you have deep hierarchies, make sure you show some of the content.

Try to use content in navigation where possible, content that is live and updating and clearly represent the rest of the content. Give content more space and make it more prominent than navigation elements.

Consider a product for food ordering, either you can show options of different couisines in the beginning or you can show some actual dishes from actual restaurants. Let the navigation stay in the background, not taking up too much space or forcing people to navigate the first thing they do.


Guide them
Create a clear hierarchy to guide people. Show what is most important, what isn't, where they are supposed to go next.

The tools you have are size, color, layout, spacing, shape, density, proximity, style (similarity, typography) and location. Make the most important thing big and the least important thing small. Everything being equally important is never the case. Or even better, get rid of it. Make the next step jump out by using color and space.

Hierarchy is also important for the order of tex; tell the most important thing first. The top level concept. The goal isn't that all the text is going to be read, it's not about hooking the reader, the goal is that the most important piece of information is simple to get. Then the second most important piece. If most people can stop reading after the first piece, all the better. You're not getting paid per word read.

Make everything obvious.


Get out of the way
When people start using a product they have goals, things they want to accomplish, never get in the way of them getting there. Don't slow them down or make it difficult to get there.

If you need to tell people something along the way, do it in a way that doesn't hinder them from accomplishing the goal or by taking up real estate that makes it harder to use the product. Telling people something shouldn't add an extra step or interaction.

Consider a login screen. If the password is incorrect, show that as soon as possible and try to help with solving the problem by giving reminders of what the password requirements where. Don't show a message that you're forced to interact with before you can try again. Also don't clear out the email field so you have to fill it in over and over.


Be transparent
People want to know what you do with their data, especially if it effects them. When asking for something, always be clear about why you're asking for it and what you're going to do with it.

Be transparent about what you do with peoples money. You don't think it's any of their business? Well if you're wasting it or doing stupid things with it people are going to have a worse impression of your company. Being transparent will make you think more about doing good stuff with the money. It will build trust if you show that you have nothing to hide.

Being transparent with things that are out of your control can be helpful to get people on your side. If you have a restaurant in a country where you have a higher tax for eating in than taking away, it creates a bad experience. At least tell them the reason why you have to do it, it will create more empathy for you.

Choose the things carefully that you choose to be transparent about. Some things might hurt you. If you're very transparent about the distant next generation of your product and how much better it's going to be, it might result in a loss of sales because people would rather wait.

More transparency is better than less.


Be consistent
Act like a human that doesn't have schizophrenia. You're the same person wherever you are and whatever you do. The way you behave makes it easy to recognize you.

Make sure your product and company behaves, looks, sounds, smells, and says things in the same way everywhere. Like any human you need to figure out who you are and what you stand for. When you have and if you act accordingly, it will easy for people to recognize you and decide if they like or dislike you.

If you switch between different behaviors, people will find you fake and confusing, they'll know it's not really who you are.

Just be yourself, like, all the time.


Talk like them
Speak the same language as the people you make things for. Talk about things in ways that make sense to them and matters to them. Talk about what it means for them.

If you're a bank and want to help people save up a buffer so they're more financially resilient, then talk about the benefit of saving, how many months of buffer they have based on how much they usually spend. "€12 347" doesn't tell nearly as much as "5 months buffer".

If you know that someone works out to be able to eat their favourite treat, show them that 30 minutes of running equals one donut. It's more motivating because it's in a metric they care about and it's in a metric that's familiar and means something to them.

Talk about things people care about.


Create value everywhere
Try to give something back in every interaction, every time someone talks to someone in your company or use any part of your product. Make things that are usually boring - fun, things that suck - not suck, and show that you care and are human.

You can create value everywhere by giving feedback, using beautiful visuals or animations, giving a useful piece of information or sharing something interesting or fun. Especially look for places where people don't expect to get something good back; auto responses, forms, sign-ups, log-ins, support, returns, payments, complaints, service cancelation and recycling.

An automatic response to someone applying for a job can be useful and fun. The person have spent a lot of time and effort to pour themeselves into an application, the least you can do is give a thoughtful response. Show that you are human, have humor and give a sense of the culture. It's going to leave a good impression even if they don't end up getting hired.

Try to always leave people better off than when they first got to know you.

Opportunities, opportunites everywhere.


Don't be an asshole
Make your product act like a considerable human being. Ok, here we go;

Don't hide information like cost, cheapest option, log out option or support. Don't force people to give up information like email or credit card details in return for something "free". Don't default to opting people in. Don't make people have to create accounts if it's not necessary. Don't make it difficult to stop using your product. Don't make it difficult to read terms of service by making it long, having difficult language or bad typography. Don't trick people into completing steps they don't need to. Don't use proprietary technologies when there are good open standards. Don't make people pay for things that should be free. Don't make it difficult to remove things from their baskets. Don't disguise ads as content. Don't make people have to opt out to continue using your product after trial. Don't use a person's details and pretend to be that person to contact friends. Don't use double negatives to confuse people. Don't only allow the delay of things like updates. Don't make it difficult to improve privacy settings. Don't make it difficult to get support by using outdated communication methods like phone instead of chat. Don't create artificial scarcity, manipulate pricing or tell people prices has been reduced that really hasn't. Don't overcharge. Don't give discounts or make people barter if you can avoid it - it makes everyone who buys at normal price feel cheated. Don't let your company's internal structure make people have to take unnessesary steps. Don't chop up your product and sell it for pieces. Don't force people to have an internet connection to use your product.

But what if x helps me sell more/make more money? If you're in it for the long run and not just to create a scamming business you'll earn more by treating people well and building a trusted brand.

No one likes an asshole.