Back in the day, design wasn’t too big of a deal. As long as the product worked, it didn’t matter that much what it looked like. Products were much more utilitarian. Users were willing to jump through hurdles to get value out of them.
It’s very different today. There’s much more competition on all fronts, and users have much less patience for poorly designed products. Any friction in your product may cost you a customer.
I'm a product designer and co-founder at Canny and in this article, I’ll explain how non-designers can apply basic design principles to software products. For each of the guidelines below, I’ll give an overview, an example, and talk about how you can apply it in your work.
Let’s dive in!
The overall design consists of two equally important parts: UI (user interface) and UX (user experience).
UI’s goal is to clearly communicate to the user what's important. Any user interactions should be very straightforward. UI is also about the look and feel of the product. Put simply, the user interface is what you see in a product, such as navigation, inputs, and icons.
UX combines all aspects of a user's experience: usability, usefulness, desirability, brand perception, and overall performance. You consider the entire experience of interacting with a product, including your feelings.
Contrary to popular belief, design isn’t just about making things pretty. Good design is about solving real problems, first and foremost. This is especially important in B2B products where your customers are paying for your product to do a job.
Our goal at Canny is to build a product that is a joy to use. We want to bring users to their “aha moment” as quickly as possible, with minimal distractions. In other words, we need to make it super simple to use.
Now let’s explore how you can get your product to that state.
Sometimes, you just want to jump in and start designing. Try to fight that urge and start here instead.
You need to know your target audience extremely well in order to optimize experiences for them.
If you’re not sure how to define your ICP (ideal customer profile), try this: Think about who’s most likely to benefit from your product. Take the time to really dig into their demographics, psychographics, and personality. The clearer you can get, the better.
Any given problem can have many potential solutions. Do early due diligence to think through and refine your approach. Ask yourself:
The reality is—you need to be selective. You can’t (and should not) build everything. That’s the art of prioritization — selecting the most impactful ideas.
Occasionally, we have to push back on requests that we get from customers or other team members. Sometimes, a feature just isn’t a priority based on how much effort it would take and/or the impact it could have. Other times, features don’t add to the long term vision or might negatively impact overall user experience.
Now that we’ve done some due diligence, let’s get into some guidelines.
Effort is required to fully understand the underlying problem you’re solving. Try the following:
Remember: don’t make the scope too large right away.
Aim to build an MVP — minimum viable product. As you’re defining it along with critical use cases, ask yourself:
💡 Tip
Consider the Pareto Principle: How can you solve 80% of the problems with 20% of the work.
We decided to build a CSV import feature. Instead of supporting all data structures, we started with posts only. If we wanted to incorporate users and votes as well, it would’ve been way more complex.
To support this decision, we saw that teams who wanted to import ideas didn't have associated user information anyway. We have the option to expand the functionality later, but the MVP is sufficient for most people.
Win: Faster to build, simpler experience.
Before designing, do your research. Ask your users questions, look at data, and really ask yourself: Which functionality is absolutely crucial? Then strip features down to their most basic form. Less is more!
“Good design, when it's done well, becomes invisible. It's only when it's done poorly that we notice it," – Jared Spool
This quote is so true — design exists to help solve a problem. As a designer, the more you can make the design get out of the way of the task, the better.
Don’t overcomplicate your design. The more unfamiliar the interface is to the user, the more potential for confusion. Unfamiliar design patterns also hurt conversion rates. What’s more important (especially in the SaaS industry) than conversions?
The bottom line is: “Don’t make me think”. Avoid making your users question anything.
Just for laughs, check out this intentionally bad UI Reddit thread for some examples of what not to do.
If you check out our website, you’ll see that it’s pretty similar to other SaaS landing pages. We’re not trying to win a website design award; we're trying to convince people to sign up for our product. Elements of our landing page are very common in SaaS:
The web today is extremely mature, so use that to your advantage. Look to brands that are similar to yours and ones that you admire for inspiration. How are their landing pages structured? Stick to common elements like tabs, toggles, dropdowns, primary/secondary buttons, etc.
This point goes back to simplicity and is especially important in user onboarding. If something within your product onboarding causes any confusion, your users will feel frustrated.
If customers cannot complete their tasks in your product, they're not reaching the value they want. This will lead to churn.
How can you prevent that? Remove distractions and focus on helping them complete their task. Decrease the chance that they could make any mistakes.
Let’s go over an example.
Imagine a checkout page. If you’re a user, all you want to do is quickly complete your transaction.
How can you, as a designer, make that happen? Remove unnecessary navigation and distracting text, while including things that add clarity.
If you’re finding that some of your users aren’t acting the way you want them to, this is a clear signal that you need to optimize that design. The design process doesn’t end when flows/features are launched. Take time to revisit experiences to see if they could be optimized.
Here are a few ideas to get you going:
Usability tests can help answer several of the above questions. As you’re running usability tests, ask your users to think out loud. Take note of any confusion.
Sometimes, there are many ways to complete a task. Every so often, it's best to take a stance on how it should be done instead of trying to support every use case.
This goes back to minimizing the chance of error. If users don’t have options, they’re much less likely to make a mistake and get confused within your product.
We always aim to reduce complexity by being prescriptive with our designs. Instead of offering endless flexibility, we design for the fastest path to value for our users.
Consider tools like Jira or Salesforce which are very powerful, but also very complex. They win a lot of business because of how flexible they are. However, building new features gets exponentially more complicated as existing features might impact new ones.
Especially in the early days of a new product, you’ll want to optimize for speed and clarity.
Remember: You can always add more flexibility to your product in the future. Avoid complicating it right off the bat.
Initially, we had a set of default statuses available. The majority of customers were satisfied with these and it kept the experience simple.
It wasn’t until years later that we started supporting custom statuses which involved:
Not to mention that we now need to consider custom statuses for future features we build. The complexity snowballs very quickly.
Limiting our scope to the essentials at the beginning was the right move. From there, we were also able to collect feedback to inform how we needed the custom status feature to behave.
When building new features:
Powerful products can be simple. You can support a ton of powerful functionality without making the product complex.
Here’s how: Put the most common actions to the forefront and tuck away the less common ones.
Here are some obvious examples:
How can you figure out which actions are more common than others? Get to know your users. The better you know them, the more obvious it becomes.
On both pages, our customer performs a common set of actions, sorting and filtering data.
So we have these actions available for users in the left sidebar. Putting similar types of functionality in the same place (even though they're different pages) helps with predictability and understanding of your product's layout.
Everything else (like settings) is hidden in the settings tab (which is still easy to find).
Obviously, we want our users to use all of our features. Especially when we release new ones, we want our target customers to adopt them.
There are various ways of bringing attention to new features. The key here is to be helpful in the right context. This goes back to understanding your users, knowing where they are in their journey, and serving them. In other words, show them what they need to complete the task at hand.
Instead of doing tooltip product tours/walkthroughs, we have an onboarding checklist. We find it to be a great way to help our users onboard (at their own pace) by using the product.
From there, we show helpful tips throughout the product (but only where it makes sense).
We supplement this with our drip campaigns (email and in-app messages) which highlight certain features, depending on how far along each user is with onboarding.
Here’s how you can do it.
Another thing we find very useful is dismissible new user experiences (NUXs). Those don't go away until the user has acknowledged it. It’s a good way to educate without being annoying.
Random popups are an option, but they’re not a great experience and you risk frustrating your user. Being helpful at the right time is what we’re aiming for.
What do all the things we talked about have in common? It all comes down to simplicity.
It is possible to have a really powerful tool while keeping the UX simple and delightful to use. Also, it's easier to add functionality later than simplify after the fact.
When designing, you should always look for opportunities to collaborate. Don't work in a black box. Be open to feedback. Keep a pulse on how people are actually using your tool. This will provide incredible insights and ideas for improvement.
With that, you can build a very well-designed and easy-to-use tool. When you keep it simple, you’ll drive more signups and generate more revenue for your startup.
I like how much you have put into this overview. I wish I had something like this when I started out to help me understand it all, and even for experienced designers there are great tips here. Nice work Sarah.
Ahh I appreciate that so much, thank you!!
Design Guidelines for Non-Designers: Make Your Product Stand Out
Keep it simple and clutter-free.
Maintain consistency in colors, fonts, and styles.
Use legible typography.
Utilize whitespace effectively.
Choose colors strategically.
Establish a clear visual hierarchy.
Select high-quality and relevant imagery.
Ensure responsiveness across devices.
Iterate and gather feedback.
Stay updated with design trends.
For more design tips and inspiration, visit internshipy
Very impressive sum-up. Excellent work, Sarah!
Thanks for reading Antoni!
Great deep dive. So many people want to re-invent the wheel, but the greatest designs are simple, thoughtful + deliver small delights throughout the process for the user.
Exactly Tori! Thanks for reading 🙏
Super in-depth, thanks for sharing! I love how it's more about doing it well and not trying to re-invent the wheel! Taking this into account with my new app :)
Thanks for reading Bradley!! Absolutely do not re-invent the wheel! A lot of things are intuitive because they are known paradigms that we come across over and over :) best of luck with your app!
Thanks for this article! It really helps out people like mee who are just starting out in this field :D
I'm so glad to hear that!! Thanks so much for reading 🙏
As a developer, I can confirm that design is hard. Especially if someone doesn't have a sense for it like me. I liked your article, I learned a lot from it. 👏🔥
I'm so happy to hear that Peter! Like a lot of things, design takes practice. You can build your sense over time :)
Shane Braddick here, thanks for the tips to make my posts stand out, Im always trying to improve my posts, so thank you!
Thanks for reading Shane!
What a comprehensive guide, Sarah! Your breakdown of design principles into actionable steps is incredibly insightful. I particularly resonate with your emphasis on understanding the target audience and simplifying the user experience.
How do you balance the need for simplicity with the desire to innovate and introduce new features? And, as a product designer, how do you prioritize user feedback while staying true to your product vision? Looking forward to hearing more about your experiences!
Sarah, your article resonates with my experience. Simple, thoughtful designs do make a difference. Thanks for the valuable tips!
Glad to hear it! Thanks for reading :)
What are some effective ways to collect user feedback during the design phase, especially if the user base is not large?
I would recommend talking to people 1:1. Getting them to go through the flow while thinking aloud so you can see what their expectations are for each interaction.
Great article!
If you are a software developer working on a product without a designer, you may spend on designing the UI more time than on programming.
Fortunately, there are React UI libraries with high-quality components based on design systems, for example, Ant Design (antd) and Material UI (MUI).
UI libs based on design systems help developers to:
For the same reason so much people prefer Tailwind CSS over pure CSS. Tailwind CSS utility classes are low level but are still based on the design system, thus the resulting UI will look more consistent than manually styled with pure CSS.
This is my recipe for having an acceptable quality design without a designer.
Good point Eugene!
Another thing I'd like to add to this in regards to the whole experience of a user with your product is that sometimes less is more. We tend to overdo things sometimes that could end up overwhelming the customers
Absolutely! More stuff, more chance for confusion which could result in failure for the user.
I love this! I've worked on greenfield projects in the past where I felt like a broken record reminding the team (other engineers, project managers, stake holders) to keep things simple. It's something that's easily forgotten when creating an M(inimal)VP.
Great post!
Absolutely Scott! Thanks for reading 🙏
the Color and Contrast should be included as well: Choose a visually pleasing color palette that reflects your brand and evokes the desired emotions. Use contrast to highlight important elements and improve readability. Be mindful of color accessibility and ensure that color choices accommodate users with different visual abilities.
For sure, thanks Hilary!
Great article! Do you think UI and UX will be one in the future?
I see so many UI designers calling themselves UX designers and vice versa.
Thanks for reading Michael! I'm honestly surprised people are still making the distinction in terms of when it comes to a job/role. When I worked at FB/Meta, I was a "product designer" which involved both UI and UX. We also hired for "product design" at Canny. I can't imagine ever hiring for just one because both are so intertwined.
This is really good, Sarah!
Thanks so much Atri!
Huge fan of you and the Canny team! Have been following since 2018.
Thanks for this deep dive!
Ahhh I appreciate that so much. Thank you Shaq!!
Thank you for sharing your expertise and providing actionable advice for non-designers. Cannot stress enough on learning to say "no" when necessary. Sometimes less really is more!
Absolutely! A good product is as much what you say "yes" to as what you say "no" to.
Excellent reminder, thanks for your work.
Thank you for reading!!
Before designing, do your research. Ask your users questions, look at data, and really ask yourself: Which functionality is absolutely crucial?
Really great article. Thanks for sharing Sarah
Thanks for reading Sandra!
cool
Thanks! :)
There can never be too many reminders of 'reduce friction'. In the era of 15-second videos and "I just want to checkout!", users are being taught that any sort of delay in achieving their goal means quitting. I don't agree this is a great direction for the world to be heading but from a CX perspective, we should always be thinking the user just wants to get the job done as quickly as possible. I always use great computer games such as Zelda as my example, where the tutorial happens as you play, you don't have to go through the tutorial to get to the play.
It's true, we just keep getting more impatient! Hah game "onboarding" is a neat comparison. Zelda is so goooood 🤩
I personally question whether designs are worthwhile for the MVP. Having decent UX is important, but UI? I feel like that should wait until after you've got a good number of paying customers to put any time/focus into that. Though I guess it depends on what niche your product serves.
Interested to hear your thoughts on when to make things pretty vs when to leave it rough @sarah.
Thanks for the question Lucy! In my mind, having a really simple, clean, UI is not significantly more work than having a rough one. At the end of the day, your design should "get out of the way" of the task at hand. If your UI is to the point that it's distracting and confusing, that affects the UX. For example, UI design can easily impact information hierarchy so that people can't find what they're looking for.
Practically, you can put a few guidelines in place for early UI:
You can also leverage component libraries like Radix, Headless UI, Evergreen, etc. that have already done a bunch of this thinking for you plus consider things like accessibility.
Hope that helps!
"Be helpful but not annoying" — that's a tough needle to thread! 😅 Solid advice though, thanks for sharing.
Hahah thanks for reading! It's always a good exercise to put yourself in the place of a user and consider where confusion can happen and how to best assist in that moment.