62
50 Comments

Design guidelines for non-designers: Make your product stand out

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!

What it means to have a well-designed product

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.

Before you do any design work

Sometimes, you just want to jump in and start designing. Try to fight that urge and start here instead.

Define your target audience

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.

Consider alternative approaches

Any given problem can have many potential solutions. Do early due diligence to think through and refine your approach. Ask yourself:

  • Is the problem a byproduct of another issue?
  • Is there a workaround solution?

Learn to say “no”

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.

Design guidelines

Now that we’ve done some due diligence, let’s get into some guidelines.

Understand use cases to define the scope

Effort is required to fully understand the underlying problem you’re solving. Try the following:

  • Collect user feedback
  • Ask your users questions (through surveys, interviews, etc)
  • Gather data and look for patterns

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:

  1. Does this have to be this complicated? Can we simplify for now?
  2. How are most people going to use this feature? Can we design only for that use case?
  3. What are alternative solutions and what are the tradeoffs between them?
  4. Where is the potential for user confusion/error?
  5. How would the design change if we removed/added X functionality?

💡 Tip
Consider the Pareto Principle: How can you solve 80% of the problems with 20% of the work.

Here’s our own example

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.

Define the scope and build an MVP

Here’s how you can apply this to your design projects

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!

Don't reinvent the wheel

“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.

Here’s how we keep the design simple at Canny:

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:

  • A logo always sits in the top left corner and goes to the home page when users click on it
  • The main navigation is at the top or left side of the screen
  • Important elements are above the fold

Keep design simple

Here’s how you can apply this guideline:

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.

Get rid of any friction

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:

  • Try tools like FullStory that show you what users are doing. Is there any unnecessary friction? Free tools like Google Analytics can also help uncover friction points.
  • Can you reduce the number of clicks?
  • Can you eliminate distractions?
  • Can you A/B test various parts to optimize even more?
  • Can you conduct a usability test to find issues?

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.

Be prescriptive

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.

Here’s an example of what we did at Canny:

Initially, we had a set of default statuses available. The majority of customers were satisfied with these and it kept the experience simple.

Reduce complexity - default statuses only

Custom statuses

It wasn’t until years later that we started supporting custom statuses which involved:

  • Building a status management feature for admins
  • Looking at how statuses appear in different views
  • Updating integrations that involved using statuses

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.

Here’s how you can apply this to your workflow.

When building new features:

  1. Think about your core persona and the goal they’re trying to reach. What’s the most optimal/most obvious path to that goal?
  2. When engineering, consider building things so that you can easily expand functionality down the line.
    Remember: It’s much simpler to add functionality later than to strip things down

Optimize for most common actions

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:

  • Navigation is very common and should be available on every screen.
  • Settings aren’t typically configured very often. Tuck them away in a predictable place.

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.

Canny example: Two of our top-level pages in Canny are the feedback and users pages.

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).

Optimize for common actions

How can you apply this?

  1. Make a list of tasks that your users need to complete
  2. Rank the tasks by how often they need to be performed
  3. Think of navigation as a separate feature
  • Which navigation should always be accessible?
  • Which navigation only needs to appear on certain pages?
  1. Group similar functionality together
  • When a user is doing a task, what other options should be available to them?
  • Divide pages into larger sections made up of those groups (for example, a set of filters)

Be helpful but not annoying

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.

Here’s how we do it at Canny

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.

Onboarding checklist

From there, we show helpful tips throughout the product (but only where it makes sense).

Offer tips

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.

Helpful emails

Want to try this yourself?

Here’s how you can do it.

  1. Break down your customer journey into phases
  2. Align features across each phase. Ask yourself: when do ‌customers need to know about a feature? Right away? After a certain action? Only if…?
  3. In-product education is great when the timing is right. For instance:
  • Surface tips that make sense on the page the user is on. Near the relevant feature is usually a good option.
  • Don't leave null states completely blank. Use them as an opportunity to educate or point people in the right direction.

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.

NUX - New User Experiences
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.

Design’s not about you

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.

posted to
Design and UX
on June 15, 2023
  1. 5

    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.

    1. 1

      Ahh I appreciate that so much, thank you!!

  2. 3

    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

  3. 2

    Very impressive sum-up.  Excellent work, Sarah!

    1. 1

      Thanks for reading Antoni!

  4. 2

    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.

    1. 2

      Exactly Tori! Thanks for reading 🙏

  5. 2

    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 :)

    1. 1

      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!

  6. 2

    Thanks for this article! It really helps out people like mee who are just starting out in this field :D

    1. 1

      I'm so glad to hear that!! Thanks so much for reading 🙏

  7. 2

    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. 👏🔥

    1. 2

      I'm so happy to hear that Peter! Like a lot of things, design takes practice. You can build your sense over time :)

  8. 2

    Shane Braddick here, thanks for the tips to make my posts stand out, Im always trying to improve my posts, so thank you!

    1. 1

      Thanks for reading Shane!

  9. 1

    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!

  10. 1

    Sarah, your article resonates with my experience. Simple, thoughtful designs do make a difference. Thanks for the valuable tips!

    1. 1

      Glad to hear it! Thanks for reading :)

  11. 1

    What are some effective ways to collect user feedback during the design phase, especially if the user base is not large?

    1. 1

      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.

  12. 1

    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:

    • think less about CSS styling,
    • develop faster,
    • get consistent coloring and typography,
    • get more intuitive UI
    • and more.

    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.

    1. 1

      Good point Eugene!

  13. 1

    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

    1. 1

      Absolutely! More stuff, more chance for confusion which could result in failure for the user.

  14. 1

    Remember: You can always add more flexibility to your product in the future. Avoid complicating it right off the bat.

    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!

    1. 2

      Absolutely Scott! Thanks for reading 🙏

  15. 1

    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.

    1. 1

      For sure, thanks Hilary!

  16. 1

    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.

    1. 1

      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.

  17. 1

    This is really good, Sarah!

    1. 1

      Thanks so much Atri!

  18. 1

    Huge fan of you and the Canny team! Have been following since 2018.

    Thanks for this deep dive!

    1. 1

      Ahhh I appreciate that so much. Thank you Shaq!!

  19. 1

    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!

    1. 2

      Absolutely! A good product is as much what you say "yes" to as what you say "no" to.

  20. 1

    Excellent reminder, thanks for your work.

    1. 1

      Thank you for reading!!

  21. 1

    Before designing, do your research. Ask your users questions, look at data, and really ask yourself: Which functionality is absolutely crucial?

  22. 1

    Really great article. Thanks for sharing Sarah

    1. 1

      Thanks for reading Sandra!

  23. 1

    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.

    1. 1

      It's true, we just keep getting more impatient! Hah game "onboarding" is a neat comparison. Zelda is so goooood 🤩

  24. 1

    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.

    1. 3

      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:

      • Use a limited colour palette
      • Use 1 font
      • Use a small set of font styles (weight, size, colour)

      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!

  25. 1

    "Be helpful but not annoying" — that's a tough needle to thread! 😅 Solid advice though, thanks for sharing.

    1. 1

      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.

Trending on Indie Hackers
I've built a 2300$ a month SaaS out of a simple problem. 19 comments 🔥 Roast My Landing Page 12 comments Where can I buy newsletter ad promos? 11 comments How would you monetize my project colorsandfonts? 7 comments Key takeaways growing MRR from $6.5k to $20k for my design studio 6 comments How I built my SaaS in 2 weeks using NextJS and Supabase 5 comments