<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: UPDIVISION</title>
    <description>The latest articles on DEV Community by UPDIVISION (@updivision).</description>
    <link>https://dev.to/updivision</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F205117%2F180d1485-4e58-4de8-8c14-522192c010bc.jpg</url>
      <title>DEV Community: UPDIVISION</title>
      <link>https://dev.to/updivision</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/updivision"/>
    <language>en</language>
    <item>
      <title>[STRESS TESTING SERIES] The feedback formula. Getting useful feedback from your clients</title>
      <dc:creator>UPDIVISION</dc:creator>
      <pubDate>Mon, 31 Jan 2022 08:38:16 +0000</pubDate>
      <link>https://dev.to/updivision/stress-testing-series-the-feedback-formula-getting-useful-feedback-from-your-clients-l09</link>
      <guid>https://dev.to/updivision/stress-testing-series-the-feedback-formula-getting-useful-feedback-from-your-clients-l09</guid>
      <description>&lt;p&gt;&lt;em&gt;This article is part of the Stress Testing series of our UFOs UI/UX Framework. The framework is a tool we created based on our 10+ years of experience in building complex software and thousands of hours of design meetings and feedback. Developers, designers and entrepreneurs can use this framework to gain a better grasp of the UI/UX process and build awesome apps as a result. To learn more about the UOFs UI/UX Framework and each framework component, please go &lt;a href="https://dev.to/updivision/introducing-ufos-the-undeniable-proof-that-good-ux-is-out-here-1h4c"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;em&gt;This article is part of the “s” from UFOs, the framework component that talks about how to ask for and get useful feedback on your designs from stakeholders, including your end users.&lt;/em&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;If you`ve ever presented a UI design project to a client, this scenario might sound familiar. You go into the meeting prepared with a nice speech and mock-ups for the core features of the app. The meeting goes well, even better than expected. The client seems engaged and they appear to like your ideas. At the end of the meeting, they promise they'll send feedback after they review the screens in detail. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;A few days pass and you receive the feedback email, only to realize there is actually very little useful feedback. Rather than commenting on how your designs align with their business goals or on unaddressed requirements, the client seems to have missed the point entirely. The feedback revolves around colour choices, the size of the logo or even the copy when in fact you are still in the product discovery stage. This is the stage where you should be mapping out the core features and flows of the app. What went wrong?&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Rather than using the presentation meeting just as an opportunity to show off your work, you can turn it into a feedback guide for the app`s stakeholders. This means not only explicitly telling them what kind of feedback you need, but also providing them with enough context to understand what they should focus on. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;The following formula will guarantee you receive useful feedback, regardless of the stage your project is in.&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Feedback formula: (what/who + context/problem + stage + feedback instructions) x tools&lt;/strong&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Each element of the formula is detailed below.&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  WHAT type of app? WHO are you asking feedback from?
&lt;/h3&gt;

&lt;p&gt;The first thing you should consider is whether this is an internal application or a commercial app. Will the stakeholders be using the app themselves? The second thing is who are you presenting your work to. Are they business owners, marketing people, engineering people or even UX designers themselves? &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Keeping these two aspects in mind will help you ask for feedback appropriate to their expertise. Of course, the end goal stays the same (e.g. building an inventory management app), but you will be surprised to discover various business angles depending on who you are asking feedback from.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Particularly if you are building an internal app, make sure to ask your stakeholders questions about their workflow as you are presenting, even if it's just an educated guess. This might make them aware of things which would otherwise go unnoticed. It can also serve as a good starting point when it's their turn to comment on your work. It's important to encourage clients to approach the designs with a critical eye from the get-go, so issues don't surface later in the project.&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  What is the CONTEXT? What PROBLEM are you solving?
&lt;/h3&gt;

&lt;p&gt;If it's one of the first few meetings, remind the client of the overall context. For example, you might be working on a redesign project. The redesign project might consist in small touch-ups or in a restructuring of the entire app. Remind the client of either of these cases. This will help manage expectations and prevent scenarios where the feedback demands major changes when you previously agreed upon only on small, incremental improvements. Providing context for your work might also mean specifying the type of users who will be using the screens you are presenting. Or when in the user journey will the user be seeing these screens.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;After offering some context, move on to the actual problem your screens are addressing. What are you trying to achieve with these designs? What task should the user be able to accomplish using these screens? Make it clear that the feedback should refer only to that/those tasks.&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  What STAGE is the design in?
&lt;/h3&gt;

&lt;p&gt;Emphasize during the presentation the stage the project is in and how this reflects on the design and the type of feedback you are expecting. This will prevent comments like “put an icon on that button and move it to the left” when you are debating whether the entire section is actually needed or if it's in the right place (a common thing in redesign projects). If you are looking to solve structural issues, make that clear from the start. If the designs are in a more advanced stage and you want to dig deeper into the look &amp;amp; feel, CTAs or even headlines, make that clear as well.&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  What kind of FEEDBACK are you looking for explicitly?
&lt;/h3&gt;

&lt;p&gt;Now it's time to put everything together and explicitly ask for feedback. At the end of the meeting, summarize the points mentioned above and encourage your client to give you feedback (you can also point out what they should ignore; e.g. “please ignore the colors, because we haven`t settled on a color palette yet”). Include some example questions to serve as a starting point for your client.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;As an Operations Manager, could you please give us feedback on the e-commerce app we are redesigning? We agreed to keep the overall UI pretty much the same and focus on enhancing some key flows. So, please ignore colors, fonts or other aspects related to look &amp;amp; feel and focus exclusively on the new functionalities. Today we talked about Fulfilment and we introduced the possibility to track packaging tasks, particularly to see who packaged a specific order and how long it took. We also added the possibility of generating reports for managers to track employee productivity. We would appreciate feedback on these new Fulfilment features. Do you find the flow intuitive both for workers who need to log in their hours and for managers who need to track them? Are there any additional metrics you would like to track?&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;You can also specify a deadline for the feedback or the format in which you would like to receive it. Which brings us to our last point. &lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  What TOOLS should the client use to give you feedback?
&lt;/h3&gt;

&lt;p&gt;If you would like to receive feedback in a specific way, make sure to let your clients know. This can range from a bulleted email to comments provided directly in the design file (Figma has an in-built comments feature) or even dedicated apps for gathering user insight. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Stakeholders are your design and development partners, so getting useful feedback from them is essential. Plus, they can bring a unique perspective since they know the ins and outs of their business. Use the formula to get good feedback, understand the design problem space and develop solutions aligned with the business objectives.&lt;/p&gt;

</description>
      <category>design</category>
      <category>uiweekly</category>
      <category>ux</category>
    </item>
    <item>
      <title>Book Review - The Design of Everyday Things By Don Norman</title>
      <dc:creator>UPDIVISION</dc:creator>
      <pubDate>Fri, 21 Jan 2022 13:24:49 +0000</pubDate>
      <link>https://dev.to/updivision/book-review-the-design-of-everyday-things-by-don-norman-5hin</link>
      <guid>https://dev.to/updivision/book-review-the-design-of-everyday-things-by-don-norman-5hin</guid>
      <description>&lt;p&gt;Back in the ‘80s, Don Norman wrote “The Design of Everyday Things” &lt;a href="https://www.youtube.com/watch?v=yY96hTb8WgI&amp;amp;ab_channel=Vox"&gt;out of frustration&lt;/a&gt; from all the objects he had issues using when he travelled to the UK: faucets, light switches, and even doors. The edition I read is a lot more recent, but his key points still stand. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;This book is about the psychological aspect of design - the way objects should follow human needs and abilities. And most importantly, the way objects should be designed for proper use. Although the key subject is not web design, I believe this book is very helpful in learning the foundations of user experience design. After all, whether you’re building an app or a robot, people are still people. And they’re the ones you’re it building for.&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Chapter 1: The Psychopathology of Everyday Things
&lt;/h3&gt;

&lt;p&gt;Norman begins by talking about his notorious issues with doors. You must have, at least once, pulled a door that was supposed to be pushed, or pushed a door supposed to be pulled, right? This book’s author seems to make this mistake so often, this whole issue is named after him: “Norman doors”&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;The author’s key point here is that when you open a door wrong, it’s not your fault. It’s the design’s. Why? A proper design should signal whether a door needs to be pushed or pulled. And it shouldn’t require a written message on the glass to let you know.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Here is where Norman introduces 2 key concepts: discoverability and understanding. He says these are the two main characteristics of good design. With any product you must be able to figure out what you can do with it and how to use it.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Now, a major problem with many products is that the engineers who work on them don’t think about the end users enough: all they know and see is the logic behind it. People shouldn’t have trouble using a product if they carefully read a manual, they say. However, that type of thinking, says Norman, is a mistake: people aren’t as rational as engineers think.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;The solution here? Human-Centered Design. A way of putting human needs, emotions and even limitations first. The key here, says Norman, is understanding your products’ potential users through observation. What’s their everyday life like? How would they use the product? What kind of actions would they take with it? Where could they encounter problems?&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Discoverability is based on five concepts from psychology:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Affordances: the connection between an object’s properties and a person’s ability to figure out how to use it. For instance, a chair affords for support, therefore, sitting.&lt;/li&gt;
&lt;li&gt;Signifiers: any sort of signal that tells you how to use an object: a “pull” sign on a door is a type of signifier, as it tells you how to use it.&lt;/li&gt;
&lt;li&gt;Constraints: to make sure an object is used correctly, some actions are restricted, so you don’t ruin or accidentally do something.&lt;/li&gt;
&lt;li&gt;Mappings: the connection between a control and what results from interacting with it. Think light switches and the specific lights they control.&lt;/li&gt;
&lt;li&gt;Feedback: error sounds, text, you name it. This concept allows you to know if you’ve used an object right or not.
 &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Another key element Norman talks about is that of conceptual models; which he explains in the figure below:&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--a9ak2Itj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p7zduq2l8t91b55mz48z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--a9ak2Itj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p7zduq2l8t91b55mz48z.png" alt="The designer's model, the user's model and the system image" width="795" height="389"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Photo source: Norman, D. A. (2013). The design of everyday things. New York: Basic Books.&lt;/em&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Chapter 2: The Psychology of Everyday Actions
&lt;/h3&gt;

&lt;p&gt;As the chapter title says, the author gets into more detail about the psychological aspects of one’s everyday life, the decisions they make. So he introduces the following 2 concepts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Gulf of Execution, where people try to figure out how an object operates.&lt;/li&gt;
&lt;li&gt;The Gulf of Evaluation, where they try to figure out what happened after they used it.
 &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;How does this affect design? Product designers have to ensure these two gulfs are bridged. The key here is for the product to provide clear information about its state, in such a way that it matches the way the user thinks and it’s easy to interpret. For instance, if you can’t open a cabinet door, you should be able to tell if pulling it is not working so you can try another action.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;And it gets more specific: Norman also talks about the seven stages of action. These stages are each paired with a question that reflect the steps one takes when doing something:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Goal - “What do I want to accomplish?”&lt;/li&gt;
&lt;li&gt;Plan - “What are the alternatives?”&lt;/li&gt;
&lt;li&gt;Specify - “What can I do?”&lt;/li&gt;
&lt;li&gt;Perform - “How do I do it?”&lt;/li&gt;
&lt;li&gt;Perceive - “Is this okay?”&lt;/li&gt;
&lt;li&gt;Interpret - “What does it mean?”&lt;/li&gt;
&lt;li&gt;Compare - “What happened?”
 &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;But how do we apply these to design? When using a product, people have to be able to answer all these questions. To achieve that, the product’s design must give enough information, which resides in things like constraints, mappings or signifiers. Think of the earlier example of doors - the handle should clearly show how you’re supposed to act on it and not allow you to use it otherwise. Or when using a stove, you should be able to tell which burner corresponds to which control, so you light the right one.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Keeping in mind this sequence, Norman says, helps guide the design process. This way, it’s human-centered. Plus, it also helps with product enhancement, as it allows designers to find what’s not working and improve it.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;“We’re humans, so we know how humans think”, is an incorrect perception, Norman says. A lot of what the brain does is actually subconscious. Especially with things we know how to do very well and don’t need to pay too much attention to: walking, talking, reading. After we do something subconsciously, we explain it to ourselves consciously. In this regard, Norman presents 3 levels of thought processing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Visceral: your quick, basic human instincts. This lets you know if something is good, bad, cold, hot, and so on.&lt;/li&gt;
&lt;li&gt;Behavioral: largely subconscious, based on skills and patterns. Designers need to cater to this level by giving feedback.&lt;/li&gt;
&lt;li&gt;Reflective: where the highest level of conscious emotions go.
 &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Chapter 3: Knowledge in the Head and in the World
&lt;/h3&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;In this chapter, Norman gets into some detail about the human memory and knowledge systems. There’s knowledge in the world, which is readily available, easy to access, but it might take you some time to understand it. And then there’s knowledge in the head, which comes to you faster or slower, depending on your memory and the difficulty of what you’re thinking of. What you ate today might come to your mind faster, but what you ate a year ago today will take much longer to remember. This type of knowledge needs to be learned and it’s harder to use at first.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;How does this come into play with design? Human memory is a key element here. When showing important information, make sure it stays on screen long enough so the product users have time to remember it. The quicker you throw information at them and the more it is, the harder it’ll be for them. This will lead to errors, and we don’t want that. People can get distracted and miss an important signal. They can enter the right information in the wrong place. The role of design is to make sure that doesn’t happen.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;A key concept that shows the connection between knowledge in the head and in the world is that of mappings: When a product’s controls are properly mapped, whether you remember how to use it or not, it won’t be hard to figure it out. When it’s not, you’ll find yourself clueless, thinking you’re unable to complete a simple task. The example Norman gives here are stove controls and their burners, where proper mapping is key.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Here are the best ways to map products, says Norman:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mounting controls directly on the items they control&lt;/li&gt;
&lt;li&gt;Putting controls as close as possible&lt;/li&gt;
&lt;li&gt;Arranging controls in the same spatial configuration as their objects
 &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;His suggestion for customers is to always try products before buying them, or at least mimic using them. This is so they can see if they’re easy to use or not, if the controls are confusing, or if they’re comfortable to use.&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Chapter. 4: Knowing What to Do: Constraints, Discoverability, and Feedback
&lt;/h3&gt;

&lt;p&gt;After an entire chapter dedicated to knowledge in the head, this next chapter focuses on knowledge in the world. Specifically, how designers can point people in the right direction when they’re met with a new product, action, situation. To this effect, Norman tells us about the importance of constraints, discoverability and feedback.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;The author names 4 types of constraints:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Physical: if an object doesn’t fit somewhere no matter what you do, it’s most likely not supposed to go in there. Designers may put in such constraints so that people use products properly even when not paying attention.&lt;/li&gt;
&lt;li&gt;Cultural: every culture has a set of actions you can take in a particular situation. Norman says cultural issues are the root of problems with new inventions, as there are no use standards for them yet.&lt;/li&gt;
&lt;li&gt;Semantic: the meaning of things. Think motorcycle designs, there is only one obvious spot for the rider to hop on. Also, traffic lights. You know you have to stop at a red light, or go at a green light.&lt;/li&gt;
&lt;li&gt;Logical: Norman gives the example of a Lego police motorcycle toy, where a blue beacon usually remains last, so there is only one place where it can go. That’s what he calls a logical constraint.
 &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here is where we learn about the legacy problem: be it confusing batteries or USB cables, some products have obvious design faults that can be fixed. So why aren’t they? Norman tells us it’s because changing the design of often-used objects (such as batteries) is too difficult and expensive. Lots of other products would have to change. The author says this is a classic example of corporate thinking, and we’re not escaping it anytime soon.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Norman explains the importance of placing affordances, signifiers and constraints to everyday objects. He gives a handy example: when using a door, we first need to find which side opens and how to move it. That’s the affordance. Next, we expect to see a plate, an extension, something that we can touch, grasp, turn, and so on. That’s the signifier. Last, we need to figure out how it operates, which puts signifiers and constrains hand in hand. If you pull a door that’s supposed to be pushed, it won’t open due to its constraints. In the author’s opinion, the best design that fills all these requirements are car door handles. On the opposite side lay cabinet doors. The latter can become quite unusable due to an exclusive focus on aesthetics.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;A major design problem the author has faced, and which he uses to set an example, is that of light switches. He tells the story of how he demonstrates his ideas at talks by relying on how bad the light switches will be. It’s quite sad to think this is so frequent that he can always count on it, isn’t it? Lots of light switches, he says, don’t properly signal which lights they control. So what happens is people press everything until they get it right. Wash, rinse, repeat.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;The author introduces a useful concept based on this example: activity-centered controls. Aside from setting controls based on devices, he suggests making it based on actions. That means having specific controls for video presentations (where the lights will be dimmed and the projector turned on) or for lectures (brighter lights and projector on).&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;This is where we really see what the problem is: lack of communication between the people and companies making parts of a system. The proper way to design a product is by carefully observing how one would use it, the specific tasks they use it for. And then molding the product to those findings.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Norman also talks about constraints that force desired behavior. This is common in safety engineering and he names 3 types:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Interlocks, which force tasks to take place in a specific order&lt;/li&gt;
&lt;li&gt;Lock-ins, which prevent you from accidentally stopping a task too early. Think MS Word’s common “Do you want to save changes made to [your document]?”&lt;/li&gt;
&lt;li&gt;Lockouts, which prevent an action from occurring or keeps someone away from a place, for safety reasons.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Chapter 5: Human Error? No, Bad Design
&lt;/h3&gt;

&lt;p&gt;Many accidents are classified as human-error. However, Norman says there is no such thing. The issue is bad design.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;In this chapter, Don Norman gets into specifics about the idea mentioned in earlier chapters. He says many products are designed without keeping in mind mental limitations. People can’t always be fully alert, remember every step of an action or complete confusing tasks. They get sidetracked, interrupted. And many product manufacturers don’t think about that enough.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;The interesting thing we find out about here is that slips happen more often to skilled people. Since they’re experienced, they act subconsciously and might not pay full attention. But proper design should help them avoid mistakes.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Thus, for design, there are 4 types of relevant slips:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Capture slips: when instead of a desired activity, someone does something they did recently. Thus, in design Norman suggests avoiding procedures that have identical opening steps but then diverge.&lt;/li&gt;
&lt;li&gt;Description-similarity slips: here designers have to ensure controls and displays for different purposes are significantly different so you don’t mix them up.&lt;/li&gt;
&lt;li&gt;Memory-lapse slips: think using an ATM and forgetting to take your card after you receive your money. This used to happen so much that now you have to take the card out first. In design, you should minimize the number of steps to take to complete a task, or provide clear reminders of what’s left to do.&lt;/li&gt;
&lt;li&gt;Mode errors: this happens when a product’s controls do different things when it’s in different states. Such products are made to fit in a larger number of controls in a smaller space. But in good design, you should know for sure when your product is in a specific state.
 &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The design advice we get here is to always guide users so they know the current state of things in their objects (where needed). To have a proper conceptual model. To understand and keep in mind possible social pressures.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Machines, Norman says, aren’t intelligent enough to determine the meaning of our actions. So here are some tips on designing a product aware of possible errors:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Discover possible causes of error and design in such a way that they can be avoided.&lt;/li&gt;
&lt;li&gt;Check if actions on a product pass a common sense test.&lt;/li&gt;
&lt;li&gt;Give users an undo option.&lt;/li&gt;
&lt;li&gt;Make it easy for users to know if they’ve made an error and to correct it.&lt;/li&gt;
&lt;li&gt;Guide users to complete an action properly. Make it so interruptions or distractions don’t ruin an entire process.&lt;/li&gt;
&lt;li&gt;Ask users for confirmation so they avoid doing something they didn’t actually mean to do. Eventually, you can make the element they act upon more visible. This way they’ll be fully aware of what they’re controlling. &lt;/li&gt;
&lt;li&gt;Using sensibility checks. This applies to numerical values which can vary with different currencies and measuring systems.
 &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But what if people are really at fault? Norman says one way is to conduct resilience engineering. This implies designing systems, procedures and training so that people can respond to issues when they arise. This includes constant testing and improvement. Ensuring your products have constraints, natural mappings, and enough information on their usage.&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Chapter 6: Design Thinking
&lt;/h3&gt;

&lt;p&gt;Don Norman says one of his consulting rules is never solving the problem he’s asked to solve. Why? Usually the problem brought to him isn’t the real, root problem, but a “symptom”. He says it’s essential to look into the root issue, to ensure the right solution is taken. This is called design thinking, he says. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;We’re introduced to the double-diamond model of design. Here you start with an idea, investigate until you find the underlying issue, and then test out multiple solutions. This process is divided into 4 stages: discover, define, develop and deliver.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;The human-centered design process, on the other hand, is made up of its own 4 stages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Observation&lt;/li&gt;
&lt;li&gt;Idea generation&lt;/li&gt;
&lt;li&gt;Prototyping&lt;/li&gt;
&lt;li&gt;Testing
 &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Norman says it’s critical to properly observe your targeted users. This is so designers understand their interests, motives and needs, which they can then apply in their designs. This should also go hand in hand with market research, which is just as important. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;The author lists a series of steps we can take when generating solutions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Idea generation: also known as brainstorming. Norman tells us to come up with as many ideas as possible, to be creative without regard for constraints, and to question everything.&lt;/li&gt;
&lt;li&gt;Prototyping: Norman suggests building mock-ups of each potential solution. They don’t have to be complex - they just need to help you find out how the product might actually be used by real customers.&lt;/li&gt;
&lt;li&gt;Testing: gather a group of people as similar as possible to your target audience and have them use the product. Ask them about their thought processes in using it and see what you can find. &lt;/li&gt;
&lt;li&gt;Norman suggests doing this both during problem specification and after creating the new design.&lt;/li&gt;
&lt;li&gt;Iteration: keep on building by looking for errors and fixing them. The key here is action-centered design.
 &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Here is where Norman comes in and tells us not to mix up activities and tasks: an activity is made up of a series of tasks. And designers have to ensure that their products provide support for its central activity, as well as the tasks it takes to complete it. There is a three-level analysis that is said to help in analyzing someone’s user experience:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Be-goals: fundamental, long-lasting, they govern a person’s being and determine one’s self image&lt;/li&gt;
&lt;li&gt;Do-goals: the plans and actions to be performed for an activity&lt;/li&gt;
&lt;li&gt;Motor goals: how the actions are performed, tasks and operations taken
 &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, the sad reality is that product manufacturing doesn’t go like that. Features are added to match the competition or due to new technologies. And development is always behind schedule and above budget, Norman says. Product development involves a variety of disciplines, from engineering to marketing, and the key is for everyone to work together. But in reality, it’s quite messy. Plus, in some cases the end users aren’t taken into account - and designers must please their clients. &lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Chapter 7: Design in the World of Business
&lt;/h3&gt;

&lt;p&gt;In this last chapter, Norman tells us about the less ideal, real world, where product development doesn’t follow all the rules. There is a lot of pressure on companies to be fast and innovative, whilst worries about cost and competition might make things extra difficult. The author introduces 2 concepts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Featuritis: adding new features to a product because customers want more functions, competitors are adding new features, or the market is saturated.&lt;/li&gt;
&lt;li&gt;Creeping featurism: the tendency to constantly add features to a product, sometimes extending them beyond all reason.
 &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Next, Norman talks about the tricky field that new technologies bring. They can push companies to innovate, but some products might be ahead of their time and fail at first. This, however, is a great opportunity for learning. On the other hand, new technologies often take a long time to be adapted - the HDTV resolution was set up many years ago, but took a while to come to our TVs. Why? The inconvenience of broadcast stations and regular people changing their equipment. The author says the rule of thumb here is 20 years from the first product demonstrations and another 10 or 20 until a widespread adoption. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;He gives us the example of keyboards, where development took a very long time. They had to decide on the layout - circular, piano-like, in multiple rows; and letter order - alphabetical or not. The QWERTY format we know today was chosen after multiple experiments, all trying to avoid jamming of the levers connected to each letter. In fact, it’s said that this current layout was made so you can type “typewriter” using only the 1st row of keys. What this story tells us is the importance of testing and of identifying how a product will actually be used.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Norman tell us about 2 types of innovation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Incremental: makes things better&lt;/li&gt;
&lt;li&gt;Radical: changes lives and industries
 &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Lately, there’s been a push for constant upgrades, new features, new technologies. Norman says the design of everyday things is in danger of becoming the design of superfluous, overloaded, unnecessary things. For the designs to achieve success, products need to sell. And they need to fulfill various qualities: satisfy needs, be usable, deliver positive emotions. The product might need to be upgraded, and it shouldn’t be a burden on the environment.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;To wrap-up, Don Norman encourages designers to fight the battle for usability. To observe, to give feedback and encourage others to improve. He encourages users to support good designs and to give feedback to or boycott bad designs. It’s only together that we can improve the way products are made, and all it takes is getting to know ourselves and how we use them.&lt;/p&gt;

</description>
      <category>design</category>
      <category>uiweekly</category>
      <category>ux</category>
    </item>
    <item>
      <title>Dear UI/UX designers: here’s how to work with developers</title>
      <dc:creator>UPDIVISION</dc:creator>
      <pubDate>Wed, 19 Jan 2022 09:17:24 +0000</pubDate>
      <link>https://dev.to/updivision/dear-uiux-designers-heres-how-to-work-with-developers-2lc3</link>
      <guid>https://dev.to/updivision/dear-uiux-designers-heres-how-to-work-with-developers-2lc3</guid>
      <description>&lt;p&gt;UI/UX designers and software developers work together a lot. And a big part of good software development is making sure they do it right. To new designers, it might not be easy to do this: how can they know what the developers need from them? Can they only find out the hard way? Well, we’re here to give you some tips from our experience.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;So where does it go wrong? A lot of times, potential issues start at the beginning of the designing process. Designers make certain style choices that no framework or plugin can recreate, or which look good in concept but might be difficult to code and/or use. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Or, let’s say they make all the right choices in terms of design that can be coded: but when doing handover, designers might unintentionally leave out important information which will later lead to many messages from the development team.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;So how can we fix this?&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Set the record straight. From the beginning.
&lt;/h3&gt;

&lt;p&gt;Showing developers what you’re working on from the beginning can be of great help. Let’s say you’ve made one screen that shows the main layout and some key features. Send a screenshot or link to the development team (or just the team lead, as you see fit) and ask them if it’s all do-able. This way, you won’t have to re-do multiple screens if you continue on with the same base design and structure.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;And another advantage of doing this is that developers can prepare ahead of time, they can figure out which technologies and plugins they’ll need to use, and which team members are the best fit for the job. And most of all, they can point out what can’t be done and what needs to be changed.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Another thing you can do here is, when you’re designing a more abstract element that you came up with, show them to your development team to make sure they can code it. If they can’t, ask them to tell you how you can improve the design so it’s not painful for them to code. The key, in the end, is communication. And doing it properly (i.e. don’t hide things from them and give them all the info you can give).&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Make your design files less of a maze.
&lt;/h3&gt;

&lt;p&gt;Your design file will be the blueprint for the development team’s work. And blueprints have lots of data on them - after all, they’re used in architecture. You should treat your design files the same as an architect treats a blueprint: don’t make developers try to guess what the author meant. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;How do you do this? Use headlines, subtitles, arrows, whatever seems fit, and give info about the user flows in your design. Anything that isn’t entirely obvious can come with a little note. For instance, say you have a Delete button somewhere. Ideally, users should be asked if they’re sure they want to delete the selected item. If you didn’t make a separate screen for that, it won’t be obvious for the developer. So make note of it next to said screen. Similarly, when designing in-line edit features, either show each instance of said feature or tell the developers, through a text next to the screen, how it works.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;So far, we’ve written two entire articles about having organized design files (check them out here and here). This is another thing that can help you work more efficiently with developers. If they can’t manage to go through your design file, how can they properly understand what they need to code? So here are the main things you should keep in mind:&lt;br&gt;
 &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Name your design file pages accordingly: if you have an extra page containing screens that won’t go into the final app (either trial runs or older versions), signal that in the page’s title. As little as a red dot or X emoji should be enough.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Order things properly. A good way to divide app screens into design file pages is going by the app’s big menu items. But what you shouldn’t do is reverse that order: you might start with certain screens and end with the middle of the app. But when the design is done and ready for developer handover, put everything in a logical order. Begin with the authentication pages and continue with stuff like account management, user management, and then each menu item. Alternatively, you can ask the development team what kind of order is ideal for them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Arrange your screens in a tidy way. Don’t put things all over the place. Arrange your screens one below the other, in one column or more, depending on how many you have. Making the document messy will make things difficult for the development team.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sort the screens using big headlines. Think about the look of your design file pages when you’re fully zoomed out. Can you find a specific screen in less than 2 minutes? If not, use big headlines to sort the screens. Let’s say you have a series of user management screens and some user profile screens. Arrange them in separate horizontal rows, next to each other, and put big headlines above them to show what the screens contain. This way, when you’re zoomed out, you can see which screens are the user management ones and which are the user profile ones. &lt;br&gt;
 &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Help them navigate design software.
&lt;/h3&gt;

&lt;p&gt;Picture this: you spend extra time making a shadow for a certain design element. Weeks later, said page gets implemented and you get to see it. But the shadow looks completely different. So where did it go wrong? It’s simple. If you’re using Figma (though this probably applies to other programs too) you sometimes have several nested elements. To you it makes sense, and you know you have to click on something multiple times to get to the base layer or background, a.k.a the element with the custom shadow. But developers who don’t know much about Figma probably don’t know that. And they’ll try to eyeball it - but they’re not designers, and it won’t look the same.&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Here are 2 different ways you can approach this:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Setup color, typography and shadow styles (or presets) throughout the design process. Once you’ve done that, when someone selects a design element, even if it’s a group with several nested elements (let’s say, a pop-up with a headline, inputs and buttons), they’ll be able to see all the styles used.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Show the developers, in a meeting (so it’s all clear), how they can see all of these style elements. Most of all, show them how they can view their CSS version too (in Figma, it’s the Inspect tab on the right side panel).&lt;br&gt;
 &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But these are very specific elements. It would be useful, especially for new team members, to give them a walkthrough of the design software you use, so they know their way around. While you’re at it, you can also show them how you sorted screens so they won’t have troubles figuring that out.&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  It’s all talk - and action.
&lt;/h3&gt;

&lt;p&gt;This is less of a tip you can apply right away, but it’s always good to keep this in mind. Being transparent and open with your development team can help make sure your designs come to life the way you envisioned them. Even if you follow everything we’ve just said in this article, questions might still come up, and it’s essential that you’re available to answer them.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Make group chats with the whole team, make sure no details get left out or can be accessed only by some team members, and participate as much as possible in any team meetings. And most of all, make sure that if you decide something with one or two team members that affects the entire project, don’t keep it amongst yourselves only - share it to the group chat so everyone knows.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;If you also happen to test the app that is being built (and which you designed), be careful with the way you give the development team feedback. Don’t berate them, insult them, or tell them they’re not good enough. Sometimes they make honest mistakes. And if anything doesn’t look the way it should, simply point it out and tell them how it should actually look. Make sure to understand the limitations of code, and that not anything will look 100% the way you want it to. Maybe 99%.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;And there you have it, now you know a few more things about how to work efficiently with developers, as a UI/UX designer. Overall, we’re all people, and aside from a few technical things you can improve, the most important thing is interacting like peers, being nice to each other and not being afraid to communicate.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>uiweekly</category>
      <category>ux</category>
    </item>
    <item>
      <title>Build your apps in record time with Backpack and the Backpack Figma Template</title>
      <dc:creator>UPDIVISION</dc:creator>
      <pubDate>Fri, 14 Jan 2022 15:34:41 +0000</pubDate>
      <link>https://dev.to/updivision/build-your-apps-in-record-time-with-backpack-and-the-backpack-figma-template-5490</link>
      <guid>https://dev.to/updivision/build-your-apps-in-record-time-with-backpack-and-the-backpack-figma-template-5490</guid>
      <description>&lt;p&gt;A couple of months ago we began a new internal project: an IT dictionary, where non-technical people can find witty, well-explained definitions for tech terms. We called it Get IT Dictionary, and it recently came to life.&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Starting with the basis: the backend
&lt;/h3&gt;

&lt;p&gt;Development projects always start with a setup. Here, we began by installing the frameworks and packages we were going to use: Laravel, Livewire, Backpack for Laravel, Tailwind, Choices.js, Fingerprint.js.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Afterwards, we worked on the logic behind the functionalities to understand what our database and models should contain (attributes, foreign keys, relation type). We started off the backend portion by identifying the entities we’ll work with - such as words, definitions, categories or letters. We referred to the design to identify these elements, which made the process easier.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;After that, based on the functionalities, we added specific attributes or relations between them. For example, a word could have one or more definitions, or one or more categories. And of course, each word belonged to a letter.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Then, we dove deeper into the backend portion - starting with coding the types of operations admins can take to manage the website, like adding, editing and deleting words, definitions or categories.&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  A Backpack with just the right tools
&lt;/h3&gt;

&lt;p&gt;A big part of this project was Backpack for Laravel. Backpack gives the chance of customizing or adding buttons or features. Backpack’s main feature is that it helps in creating, editing, deleting and displaying your item. Besides that, we were able to add custom buttons for different operations like approving or disapproving submissions, or for making big imports work.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;The Backpack Figma Template helped guide us in terms of design and functionalities. Plus, having everything laid out with all the details really helped us understand the app’s logic. As for Backpack itself, it helped a lot with the CRUD operations - which, in turn, made the coding process easier&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Making it all click together
&lt;/h3&gt;

&lt;p&gt;The backend was done, which meant we were ready for the next stage - the frontend. This was coded using a CSS framework, Tailwind CSS. We started by applying Tailwind CSS classes to our page - and if we needed something more peculiar, we’d create custom responsive CSS classes for those tricky elements. This way, we managed to follow the design without sacrificing functionality.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Once this portion was complete, we used Livewire to make sure the frontend and backend match up. Livewire makes it pretty easy to create a connection between the two - and the testing round proved its efficiency.&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Bug fixing and trouble solving.
&lt;/h3&gt;

&lt;p&gt;As much as we wanted to celebrate the end of the coding portion, a big chunk of work was still ahead of us: bug fixing. This was the part that took the most time. Finding bugs was easy for the most part, since there were more people testing the staging branch. Fixing them was straightforward as well - we would identify the issue, discuss what caused it, and we’d figure out how to fix it.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Overall, we learned a lot from this project. Backpack and its Figma Template made the process so much smoother - the design was done in no time, the devs didn’t need extra design help, and planning the project took way less. Our website was up and running in no time.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Ready-to-code design: build your apps in record time with the Backpack Figma Template</title>
      <dc:creator>UPDIVISION</dc:creator>
      <pubDate>Mon, 10 Jan 2022 09:35:47 +0000</pubDate>
      <link>https://dev.to/updivision/ready-to-code-design-build-your-apps-in-record-time-with-the-backpack-figma-template-ke3</link>
      <guid>https://dev.to/updivision/ready-to-code-design-build-your-apps-in-record-time-with-the-backpack-figma-template-ke3</guid>
      <description>&lt;p&gt;We’re a software development company. And oftentimes, we use complex tech words with our clients. But some of them aren’t technical people. What does this lead to? Lots of confusion.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;So we had an idea: a dictionary that lets non-technical people understand even the most complex dev terms. The real question was: how do we make it happen?&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;We called it the “Get IT Dictionary”. Get it? We gathered a series of dev terms - think programming languages, computer terms, dev processes - and created witty, detailed yet accessible definitions for them. Think Urban Dictionary, but for tech.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;And we knew from the start what would be the fastest way to build it: using &lt;a href="https://backpackforlaravel.com/"&gt;Backpack for Laravel&lt;/a&gt;. This way, our devs didn’t have to spend weeks building CRUDs and adjacent features from scratch - and they could freely customize everything. Luckily, using the &lt;a href="https://backpackforlaravel.com/products/figma-template"&gt;Backpack Figma Template&lt;/a&gt;, devs don’t need to get creative: designers can use it to quickly build ready-to-code admin panels. &lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Putting the frontend pieces together - the custom design part
&lt;/h3&gt;

&lt;p&gt;This was a user-centered app, so we chose to make our own design, from scratch. No templates, no nothing. So we began by building the homepage: we created a big headline and a search box right at the top of the page, and then brought a tetris-like pattern around them, to add some color. Next, we made a section that would feature 2 words - a word of the day and a random word - so that users can get a preview of what they can learn from this website. Below that, we made the ‘Browse by category’ and ‘Browse by letter’ sections, to show users the ways they can browse definitions on the website.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WEv2MuFs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/shskdvc8yuqgakqp1zb8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WEv2MuFs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/shskdvc8yuqgakqp1zb8.png" alt="Get it Dictionary homepage" width="880" height="1365"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;All of these sections let us know what the main pages should be (aside from the homepage): &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A search results page, &lt;/li&gt;
&lt;li&gt;A browse by letter (for a specific one) page, &lt;/li&gt;
&lt;li&gt;A category page, and &lt;/li&gt;
&lt;li&gt;A word definition page (for one or more definitions)
 &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Plus, we added a few things into the header and footer - the header contained dropdowns to all the letters and categories, a Submit button and a newsletter button. Meanwhile, the footer contained legal things like a Privacy Policy and DMCA.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;When it came to the logo, we wanted to make something fun. We already had some color on our homepage, so why not use it? We went for a highlighter concept and gave each portion of the logo its own background color: “get IT” got a shade of yellow and “dictionary” got a white-based mint. We also added a “?!” on the front, for the fun of it. This one got a pastel coral background. To keep with the tech concept, we used Source Code Pro for the font.&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Tackling the nuts and bolts of the backend - the Backpack Figma Template
&lt;/h3&gt;

&lt;p&gt;People often think about an app’s frontend side first, leaving the backend as an afterthought. But for apps or web platforms that need content management, having an admin panel is a given. And we knew the Get IT Dictionary needed one too - and we wanted to build it as quickly as possible.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;The solution? Backpack for Laravel, plus its Figma template - a project we’d recently finished and which provided all the pages we needed to design CRUDs. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;What is Backpack for Laravel, you might ask? Backpack is a collection of admin panel packages. It uses Laravel, Bootstrap &amp;amp; jQuery and it comes with HTML building blocks, through which pages, dashboards or widgets can be built. In short, it’s a much faster way to build Laravel admin panels. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;The Figma template that we made for it helps both devs and designers: every page was recreated in Figma so designers can freely reuse them and edit them to match their projects. With this, the developers’ job is much easier: all these items are building blocks that are code-ready and easy to implement. Most of all, they’re fully responsive. In other words, designers can use it to quickly build screens, which can then be easily coded by the devs. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;So how did we use the Backpack Figma Template for the dictionary? Here’s the step-by-step process.&lt;br&gt;
 &lt;/p&gt;

&lt;h4&gt;
  
  
  1. Figure out what you need CRUDs for
&lt;/h4&gt;

&lt;p&gt;We’d already built the frontend to our dictionary website. So it was clear what we needed to include in the admin panel: words, categories, letters and ads. All of these needed their own CRUDs, which meant creating a list, create, and edit page for each of them. The delete option only prompts a pop-up, so we didn’t need multiples of it.&lt;br&gt;
 &lt;/p&gt;

&lt;h4&gt;
  
  
  2. Make the list page/table view of the elements you need to manage
&lt;/h4&gt;

&lt;p&gt;This one is a bit tougher - a lot of thinking goes into it. You have to know exactly what kind of info you need to see for each item. But once you’ve figured that out, the other pages (create and edit) will be done much quicker.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;So here’s what we did: we went onto the Example - Manage Articles page within the Backpack Figma Template. We grabbed the first page, which is the Articles list-type page, and copy-pasted it into our document. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;We then grouped every column (to make it easier to move them around) and got to renaming things. Since we began with the Word List page, we had a series of columns, such as definition, part of speech or category.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Vnpm9hfn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j59qsuwldy1dbhkit2vp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Vnpm9hfn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j59qsuwldy1dbhkit2vp.png" alt="Example of how we used an Articles list page to make our own new list page" width="829" height="915"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;h4&gt;
  
  
  3.Make the create and update pages
&lt;/h4&gt;

&lt;p&gt;The hardest part is done: once you know what goes into the list page, you know what goes into the create and update pages.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;We grabbed the Add Article screen from the Example - Manage Articles page and added it to our document. Then, we adapted the inputs to what we needed (basically, the columns on the list page). This one, technically, can get a bit more challenging. But to make your work easier, here are some tips:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Group the inputs and everything they include (the title, required asterisk, any dropdown arrows). This will make moving them around easier&lt;/li&gt;
&lt;li&gt;Lock the background of the inputs so you don’t accidentally move it around&lt;/li&gt;
&lt;li&gt;If you need other types of inputs that this page doesn’t already come with, go to Backpack Components, head to Fields - Normal Container and look for the type of input you need. Alternatively, use the Assets tab and just search for what you need. Make sure to grab the ones with ‘XL’ in their name, so it fits the container perfectly.
 &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Gza_vqBG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sngwta5nkzshffbtbxme.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Gza_vqBG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sngwta5nkzshffbtbxme.png" alt="How to find all the inputs in the Backpack Figma Template" width="433" height="913"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--R2GcG8oI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k1gktuq0h0tmlh16njxk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--R2GcG8oI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k1gktuq0h0tmlh16njxk.png" alt="How to find inputs through the Assets panel" width="493" height="527"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;What we did here wasn’t too complicated: the important part was knowing what kind of input each item was, and we either edited the existing ones, or added new ones from the Fields - Normal Container page within the template.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Gl9wPXZt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4uoofcjplro63mt1tj0s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Gl9wPXZt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4uoofcjplro63mt1tj0s.png" alt="Create page example" width="880" height="704"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yEw1pR9g--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pifwsrd519y1ihv2zg70.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yEw1pR9g--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pifwsrd519y1ihv2zg70.png" alt="Category Create page" width="880" height="447"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;The Update page is pretty much the same thing, except all the inputs are filed: so while you’re on the Backpack Components page, slide over to Field States (zoom out as far as possible if you can’t find it) and grab the filled-out versions of the inputs you used. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Alternatively, head back to Example - Manage Articles and use Edit Articles as a reference for text styles and positions.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tDbNkdgf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c9nzif34zzgkmf5ex7xb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tDbNkdgf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c9nzif34zzgkmf5ex7xb.png" alt="Update page example" width="880" height="592"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;What about the last step of a CRUD, the delete action? This will go through the actions section on the list page - which is already included in Articles (so feel free to take it as it is). And the only visual thing it needs is a pop-up, which you can freely take from, you guessed it, Example - Manage Articles.&lt;br&gt;
 &lt;/p&gt;

&lt;h4&gt;
  
  
  4.Refine and add instructions
&lt;/h4&gt;

&lt;p&gt;Your design is ready for the developer handover. So how can you make their work less difficult? Add notes where necessary - if you have dropdowns, tell them what goes into them. If you have some special features on the frontend side, let them know how they happen in the backend. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;For instance, in the Get IT Dictionary, we have a “word of the day” feature. Since Create Article already had a checkbox for “Featured item” we decided to leave that in and use it for the word of the day. Since the code for this feature already exists in Backpack, the devs can simply take it and add it into their code.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;There you have it: this is how we designed the backend portion of the Get IT Dictionary. Overall, using the Backpack Figma Template sped things up a lot, not just for the design but also for the code part. Our devs built it quick and easy - in fact, the frontend custom design took much longer to code.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Curious about the Backpack Figma Template? Check it out &lt;a href="https://backpackforlaravel.com/products/figma-template"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>design</category>
      <category>uiweekly</category>
    </item>
    <item>
      <title>Book Review: Refactoring UI by Adam Wathan &amp; Steve Schoger</title>
      <dc:creator>UPDIVISION</dc:creator>
      <pubDate>Mon, 03 Jan 2022 10:26:45 +0000</pubDate>
      <link>https://dev.to/updivision/book-review-refactoring-ui-by-adam-wathan-steve-schoger-2f7m</link>
      <guid>https://dev.to/updivision/book-review-refactoring-ui-by-adam-wathan-steve-schoger-2f7m</guid>
      <description>&lt;p&gt;Written by “a fullstack developer who used to suck at design” and a UI/UX Designer, “Refactoring UI” could have just as easily been called “Cheating at design”. And that's the great part about it. It gets talent out of the picture and focuses instead on practical, time-tested advice for making UIs look good. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;“Refactoring UI” is a great confidence booster for beginner designers or developers who are tired of Bootstrap, but fear experimenting with design. And, because it answers the whys in addition to the hows, you quickly get a sense of why an interface looks like a disaster and what you can do about it.&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;So, does your app look, feel and behave more like a “&lt;a href="https://userinyerface.com/"&gt;user inyourface&lt;/a&gt;” than a “user interface” ? Next time, ask yourself if the problem might be one or even all of the following:&lt;br&gt;
 &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Workflows&lt;/li&gt;
&lt;li&gt;Visual Hierarchy&lt;/li&gt;
&lt;li&gt;Layout &amp;amp; Spacing&lt;/li&gt;
&lt;li&gt;Typeface&lt;/li&gt;
&lt;li&gt;Color&lt;/li&gt;
&lt;li&gt;Depth&lt;/li&gt;
&lt;li&gt;Images&lt;/li&gt;
&lt;li&gt;The Small Touches&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Workflows
&lt;/h3&gt;

&lt;p&gt;There are things which can doom a project faster than you can say “sprint”. The first chapter summarizes some of the most common mistakes when starting out on a project. Unsurprisingly, most have to do with how you organize your work.&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Starting with the layout, instead of a feature.&lt;/strong&gt; Focusing too much on the layout is a sure way to get stuck. Instead of asking yourself “Should it have a top nav or a sidebar?”, “Should this item be on the left or right?” start with what the UI should do and let that guide you. If your users need to search for a flight, you already know you need a datepicker for departure and return date, an input field for departure and destination city and a search button. That`s 80% of work right there. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Going too in-depth straight away.&lt;/strong&gt; This could mean worrying over the color palette before even getting the features down, or adding in features which take forever to code and don`t bring much initial value. At the end of the day, a comment system without the possibility to attach documents is still a working comment system. In a similar manner, the authors suggest designing your first screens in grayscale and adding color later. This eliminates any distractions and the need to make color choices early on.&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Working without a system.&lt;/strong&gt; Design systems prevent decision fatigue by limiting your choices. It's like a gift for your indecisive/forgetful future self. And they also keep everything looking consistent throughout your screens. At a minimum, try to define in advance:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;font sizes and weight&lt;/li&gt;
&lt;li&gt;text color (primary, secondary, tertiary content) &lt;/li&gt;
&lt;li&gt;icon sizes&lt;/li&gt;
&lt;li&gt;button sizes and padding&lt;/li&gt;
&lt;li&gt;box shadows&lt;/li&gt;
&lt;li&gt;border radius&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Choosing the wrong personality for your design.&lt;/strong&gt; There are a lot of things which go  into how a page looks and feels, but the following are some of the most important. Getting these wrong will most likely make your design feel inadequate. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;font choice. A serif typeface spells “classic” and “elegant”, while rounded sans serif feels more playful. Choose wisely.
&lt;/li&gt;
&lt;li&gt;color. Imagine a pink corporate banking app. &lt;/li&gt;
&lt;li&gt;border radius. Might seem like a small detail but it can have a cumulative effect, especially when you work with cards. A small border radius is pretty neutral, while an increasingly larger border radius starts to feel more playful.
 &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TxmOFYUe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7ehmhbbaodrr6p1r3saj.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TxmOFYUe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7ehmhbbaodrr6p1r3saj.jpeg" alt="Photo of 2 messages on paper, 1st says &amp;quot;PLEASE KEEP THE DOOR CLOSED!!! THANK YOU!!!&amp;quot; in Comic Sans, 2nd says not to use Comic Sans because they're a Fortune 500 company" width="500" height="667"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Visual Hierarchy
&lt;/h3&gt;

&lt;p&gt;Do your users have a hard time finding important information fast? Does identifying the “Add” button feel more like finding Waldo? Or reading content off a card more like being met with a block of text straight in the face? Then your interface might be missing visual hierarchy cues. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;As the book points out, not all elements of an interface are created equal (sorry, hundreds of years of democracy). To help users figure out how to navigate an app, UI designers emphasize or de-emphasize elements using one or more of the following. Ultimately, this is what gives your app a “designed” look &amp;amp; feel, instead of it just being a random accumulation of elements. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Size:&lt;/strong&gt; this is an obvious one. You signal the importance of an element by increasing or decreasing its size. But, as the authors repeatedly mention, don't overdo it. Not even for section titles. Just because it makes sense semantically for something to be a h1, it doesn't mean you have to fall in the trap of making titles bigger than they need to be. The content, not the title, should be the focus of the page.&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Weight:&lt;/strong&gt; be it fonts or icons, weight is a great alternative to size for making things stand out or be barely noticeable. If increasing the size looks weird or creates too big of a difference between primary and secondary content, keep it the same size and make it bold. Just like bold text, solid icons cover a lot more surface area and hence look heavier on the eye. However, unlike text, there's no way to decrease the “weight” of an icon (unless you choose a different icon style). Which leads us to the third point. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Color &amp;amp; contrast:&lt;/strong&gt; when weight doesn't do the trick, you can adjust visual balance through color and contrast. For example, when you put an icon next to some text, the icon tends to automatically feel emphasized. A simple way to create balance is to lower the contrast of the icon by giving it a softer color. Reducing contrast makes heavy elements feel lighter, even though the weight hasn't changed.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TZ2avQSS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e3i17590grd1z9sciwze.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TZ2avQSS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e3i17590grd1z9sciwze.png" alt="How to differentiate icons and text, negative example" width="624" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--M8_K3Ii7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ibtvslok7swl7qj9phc2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--M8_K3Ii7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ibtvslok7swl7qj9phc2.png" alt="How to differentiate icons and text, positive example" width="630" height="339"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;You can also apply this to text. Greys work great for secondary text on a white background. For a colored background, instead of greys, choose a text color close to the background color and adjust the saturation and lightness. This will de-emphasize secondary text without making it look washed out.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Color is a great way to create hierarchy for text because you don't need to sacrifice readability by making the font smaller:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A dark color for primary content (like the headline of an article)&lt;/li&gt;
&lt;li&gt;A grey for secondary content (like the date an article was published)&lt;/li&gt;
&lt;li&gt;A lighter grey for tertiary content (maybe the copyright notice in a footer)
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Placement:&lt;/strong&gt; is secondary content competing for attention with your primary content? Simply place the secondary content directly on the page background. Sometimes, all you need in order to emphasize an element is to de-emphasize the surrounding ones.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7ryS8wdj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1ggjti2y1tn5skw3mtq1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7ryS8wdj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1ggjti2y1tn5skw3mtq1.png" alt="Example of setting apart elements by removing backgrounds" width="642" height="385"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Ultimately, what visual hierarchy does is to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Make interfaces less noisy and chaotic&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Improve navigability by allowing you to signal what the main content or action on the page is.&lt;/strong&gt; Most pages only have one true primary action, a couple secondary actions and few seldom used tertiary actions. This should be made clear through button design.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--K3DwU_uP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/61xqn8w7vtubn8njfm7k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--K3DwU_uP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/61xqn8w7vtubn8njfm7k.png" alt="Example of visual hierarchy in buttons" width="636" height="342"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;(Pro tip from the authors: if a destructive action isn't the primary action on the page, don't emphasize it. You can use a confirmation modal and let the destructive action be the primary action there).&lt;/em&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Improve readability by relying less on labels.&lt;/strong&gt; Emphasizing identifying information through font weight, color or size allows you to present data without labels, especially when the data format is intuitive (e.g. phone number, email address). This also makes it easier for humans to read your content, as opposed to robots (or developers) who are much more accustomed to the label: value format :)
 &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9IQaiqEl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/54v52p1jozelirubsr01.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9IQaiqEl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/54v52p1jozelirubsr01.png" alt="Visual hierarchy through different font sizes - negative example" width="612" height="224"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AOcvt-3a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cb7vmw6hrvmayvkw0rpu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AOcvt-3a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cb7vmw6hrvmayvkw0rpu.png" alt="Visual hierarchy through different font sizes - positive example" width="615" height="229"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Layout &amp;amp; Spacing
&lt;/h3&gt;

&lt;p&gt;Similar to visual hierarchy, this is another important factor in making something look “designed”. Chapter two highlights several guiding principles for working with layout and spacing. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Leave space for your design to breathe.&lt;/strong&gt; One of the fastest ways to clean up a design is to give it more room to breathe. However, rather than adding padding to a design which feels crammed, the authors suggest starting the other way around. Leave a bit more white space than needed when you design and then adjust accordingly. To make something look great, you will often need more whitespace than you initially thought.&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Establish a spacing and sizing system.&lt;/strong&gt; However, keep in mind that size is relative rather than absolute. At the small end of the scale (like the size of an icon, or the padding inside a button), a couple of pixels can make a big difference. Whereas, at the large end of the scale (like the width of a card) a couple of pixels make virtually no difference. So, when defining a sizing and spacing system, the authors suggest starting with a base value and then building a scale using factors and multiples of that value. Here is how a scale using 16 (the default font size in every major web browser) as a base value looks like: &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lJEu5BqT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s3mu081ipd1n25j9tryg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lJEu5BqT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s3mu081ipd1n25j9tryg.png" alt="Sizing system example" width="629" height="525"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Don't force it.&lt;/strong&gt; Not every decision you make needs to be based on a system. Sometimes, trying to force everything to follow the same rules leads to monotonous or downright bad design. For example, making something full-width just because you have the space for it might make your design harder to follow (like the cart in the screenshot below). Or making something full width (e.g. login card) just because another element on the page is full-width (e.g. navbar).&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;In a similar manner, not all elements should be fluid. Outsourcing all layout decisions to a grid can do more harm than good. There are situations where it makes more sense for an element to have a fixed width instead of a relative, grid-based width. For example, if the sidebar menu of an admin dashboard scales, it will get increasingly wider, taking up space that could’ve been put to better use by the main content area.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OMTjh-K---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2999y5gwyfanya7q192i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OMTjh-K---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2999y5gwyfanya7q192i.png" alt="How to make better use of space when placing elements on a page, negative example" width="646" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_H7sdFCQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/up6fl7hr9l063jgz4tj0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_H7sdFCQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/up6fl7hr9l063jgz4tj0.png" alt="How to make better use of space when placing elements on a page, positive example" width="624" height="375"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Avoid ambiguous spacing between elements. When groups of elements are not separated by a border or through background color, things can get confusing. Users might even end up accidentally filling in data in the wrong field. In these cases, the UI should make it very clear which element belongs to which group by properly spacing labels and inputs.
 &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Look at the screenshot below and pretend it's Black Friday. You have 5.5 seconds to place your order or some fast-fingered little punk will end up with the latest Nintendo Switch at half the price (and he's not even paying for that! he's still in middle-school). Where would you fill in the City?&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_v8Spp87--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cy5mnbo9x0q0v77narpo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_v8Spp87--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cy5mnbo9x0q0v77narpo.png" alt="Spacing on a form - negative example where the space between inputs and input titles and inputs are the same" width="630" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qhrV1JLu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ym1g6cifvkdi5ufdkwag.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qhrV1JLu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ym1g6cifvkdi5ufdkwag.png" alt="Spacing on a form - positive example where the space between inputs is bigger and the one between input titles and inputs is smaller" width="635" height="368"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Typeface
&lt;/h3&gt;

&lt;p&gt;We've already seen font choice plays a big part in a design's overall personality. So, before you even consider using Comic Sans, make sure you browse chapter four, dedicated entirely to working with text.&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Once again, define a system.&lt;/strong&gt; Most interfaces use too many font sizes. A font scale needs to have enough options to cover anything from large headlines to copyright notices, but not so many that it defies the purpose of a system. The authors recommend a scale of 11 font sizes, with smaller jumps between sizes at the bottom of the scale (2px) and increasingly larger jumps between sizes as you go up (up to 12px). Again, size is relative. At a larger scale, a one-pixel increase or decrease will likely go unnoticed, as opposed to a smaller scale. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;So, the scale would look something like this: &lt;/p&gt;

&lt;p&gt;12px (teeny-tiny disclaimer “By agreeing to these terms &amp;amp; conditions you are hereby renouncing your soul”) &lt;/p&gt;

&lt;p&gt;14px&lt;/p&gt;

&lt;p&gt;16px&lt;/p&gt;

&lt;p&gt;18px&lt;/p&gt;

&lt;p&gt;20px&lt;/p&gt;

&lt;p&gt;24px&lt;/p&gt;

&lt;p&gt;30px&lt;/p&gt;

&lt;p&gt;36px&lt;/p&gt;

&lt;p&gt;48px&lt;/p&gt;

&lt;p&gt;60px&lt;/p&gt;

&lt;p&gt;72px (really large headline)&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. This might seem obvious, but...use good fonts.&lt;/strong&gt; This means both fonts vetted by time and use and fonts adequate for the job. Typefaces that come in a lot of different weights tend to be crafted with more care and attention to detail than typefaces with fewer weights. The authors recommend not using typefaces with less than five weights. Also, font families are usually designed for a specific purpose. Sometimes using a good font means using the best font for the job. Fonts which work great for headlines have tighter letter-spacing and shorter lowercase letters (e.g. &lt;a href="https://fonts.adobe.com/fonts/futura-pt#fonts-section"&gt;Futura PT&lt;/a&gt;). Fonts meant for smaller sizes have a wider letter-spacing and taller lowercase letters (e.g. &lt;a href="https://fonts.adobe.com/fonts/proxima-nova"&gt;Proxima Nova&lt;/a&gt;).&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Figure out the proper alignment.&lt;/strong&gt; Aligning text can be tricky, especially when images are involved or multiple font sizes (something you often find on cards). The best way to align multiple font sizes is by their baseline - the imaginary line letters sit on. This takes advantage of a point of reference that your eyes already unconsciously perceive. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Also, what works for headlines and short text, usually doesn't work for long paragraphs. Headlines and short text look good center aligned, while anything longer than two or three lines will always look better left-aligned. Sometimes, the only way to fix alignment issues is by rewriting content to make it shorter, so don't be afraid to put your editor cap on. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;When it comes to numbers and tables, right-aligning numbers makes them easier to compare at a glance, because the decimal will always be in the same place.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--H65mA-v---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/duw8ui2luti7z4bmo0p5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--H65mA-v---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/duw8ui2luti7z4bmo0p5.png" alt="How to align numbers in a table" width="621" height="296"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Keep readability in mind.&lt;/strong&gt; Line length, line height and font size play a big role in how easy it is to read text.&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Line length - lines that are too long make text harder to read. This usually happens when you try to fit text to the layout, instead of focusing on the reading experience. The book's recommendation is to keep paragraphs around 45 and 75 characters per line. You should limit paragraph width even when the overall content area is larger, like in the example below.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1Of_BM-I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sof54z47j6ylbiiyjdt6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1Of_BM-I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sof54z47j6ylbiiyjdt6.png" alt="Making paragraphs more narrow for readability, negative example" width="642" height="263"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tNy85utC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pdfdtt3ftz6rqh1dd4gx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tNy85utC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pdfdtt3ftz6rqh1dd4gx.png" alt="Making paragraphs more narrow for readability, positive example" width="638" height="279"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Line height - determines how easy it is for the reader to find the next line when the text wraps. If there isn't enough space between lines of text, you'll most likely end up reading the same thing twice. Things get even worse when the lines of text are long, because your eyes need to make a bigger jump to get to the next line. This means, line length and line height need to be proportional. Narrow content manages with a shorter line height, while longer lines of text need a taller line height.&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Font size - On the other hand, font size and line height are inversely proportional. Small text needs additional line spacing to help readers find the next line. Larger text needs less space between lines, a line height of 1 usually being perfectly fine. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;(Pro tip from the authors: for busy UIs where almost everything is a link, like a news portal, you can improve readability by tweaking the link design. Emphasize links in a more subtle manner, like using a heavier font weight or a darker color. Alternatively, consider adding an underline or changing the color only on hover).&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Color
&lt;/h3&gt;

&lt;p&gt;If you've ever wondered how you're supposed to use one of those online color palette generators, the short answer is you're not. Or at least, not like this:&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zaTw5brF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3enmhqxj1bjffobdtlnk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zaTw5brF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3enmhqxj1bjffobdtlnk.png" alt="How not to use color palettes - primary colors are where simple colors like white should be" width="598" height="374"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;The fifth chapter explores tips &amp;amp; tricks for people who can't do color, like myself. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. You need more colors than a color palette generator leads you to believe.&lt;/strong&gt; You can't build anything using only five hex codes or only solid, high contrast colors. What you really need for a color palette is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;one, maximum two primary colors with 5-10 shades for each [used in pure form for primary actions, active navigation elements etc. This primary color is usually the brand color&lt;/li&gt;
&lt;li&gt;8-10 shades of grey [used for text, backgrounds, panels, forms etc.]&lt;/li&gt;
&lt;li&gt;around three, four accent colors with several shades for each [used for various semantic states like new items, destructive actions, warnings, positive trends] &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DaLw1MVd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nsvoqj1yl49tf3rjwxq6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DaLw1MVd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nsvoqj1yl49tf3rjwxq6.png" alt="Example of an ideal color palette" width="634" height="312"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Defining each palette: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;start with the color in the middle that your lighter and darker shades are based on. In the case of primary and accent colors, pick as the base color something that would work well as a button background.&lt;/li&gt;
&lt;li&gt;pick your darkest shade and your lightest shade. Start with a color that matches the hue of your base color and adjust saturation and lightness to make it darker, respectively lighter. To see the colors at work, maybe create a component like an alert using your darkest color as text and your lightest as background.&lt;/li&gt;
&lt;li&gt;fill in the gaps between the base color and the extremes. For most projects, six additional shades will pretty much do it.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;(Pro tip from the authors: greys don't have to be grey. Give your greys a cool feel by saturating them with a bit of blue. To give your greys a warmer feel, saturate them with a bit of yellow or orange. To maintain a consistent temperature, don’t forget to increase the saturation for the lighter and darker shades.)&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Accessible doesn't have to mean ugly.&lt;/strong&gt; To meet the recommended accessibility contrast ratio, the background color needs to be quite dark, especially when working with white text. This can create a hierarchy problem if that element isn't the focus of the page, as dark colored backgrounds tend to grab the user's attention. And it doesn't look great either. You can solve this problem by flipping the contrast and having dark colored text on a light colored background. In a similar manner, when working with white text on a colored background, you don't want your primary and secondary content to look the same. Instead of a washed out, unreadable grey for your secondary content, you can rotate the hue towards a brighter color and use that. This way you'll still be keeping the recommended contrast ratio. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Don't rely on color alone.&lt;/strong&gt; Always use color to support something that your design is already saying, never use it as the only means of communication. Make sure to add + and - signs for trends, instead of relying on color alone. Or use contrast between different shades of the same color for charts instead of using completely different colors. In both cases this makes it much easier for color-blind people to read your design.&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Depth
&lt;/h3&gt;

&lt;p&gt;Part of what makes &lt;a href="https://material.io/design"&gt;Material Design&lt;/a&gt; such a popular design language is the way it handles depth. In fact, the entire Material Design philosophy is inspired by the physical world and its textures (hence “material”), including how it reflects light and casts shadows. This is also the focus of the sixth chapter which deals with simulating light sources in user interfaces and how that can boost a plain-looking design. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Use shadows to convey depth and interactivity cues.&lt;/strong&gt; As in real life, the smaller and less blurry the shadow is, the closer to the background that element appears to be. Larger and blurrier shadows make elements feel more elevated and closer to the user. Small shadows are used for buttons, while large shadows work great for modals, where you want the user's full focus.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1bleCH76--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qj8by5ur9qdhzda2l3yn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1bleCH76--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qj8by5ur9qdhzda2l3yn.png" alt="How to use shadows to convey depth" width="629" height="237"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Besides creating a sense of depth, shadows can also be used to indicate an interactive element. For example, adding a shadow to a row item when a user clicks it makes that row pop out and it also makes it clear to the user that she can drag that element. Similarly, you can make a button feel “pressed” by switching to a smaller shadow or even removing the shadow altogether.&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Use two shadows for better control.&lt;/strong&gt; Using two shadows for an element gives you a lot more control than a single shadow. The first shadow is larger and softer and accounts for the light cast behind an object by a direct light source. The second shadow is smaller and darker and accounts for the area underneath an object, barely touched by light. This second shadow is most distinct when elements are very close to the background and grows increasingly invisible as elements become elevated. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Flat design can have depth too.&lt;/strong&gt; By definition, flat design is scarce on shadows. However, this doesn't mean it can't convey depth. It just does it in a different way. Flat design can convey depth through color and solid shadows. Especially with shades of the same color, lighter objects tend to feel more elevated, while darker objects feel closer to the background. The second method is to use short, vertically offset shadows with no blur at all. This allows you to use shadows without sacrificing the flat design look.&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Overlap elements to create layers.&lt;/strong&gt; One of the easiest ways to create depth is to  overlap different elements to make it feel like a design has multiple layers. The most common example is a card which crosses between two different backgrounds. You can also overlap images by giving them an invisible border, so there's a small gap between them.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TVk8OS2P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q8k52r2l3mw98nzgsi14.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TVk8OS2P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q8k52r2l3mw98nzgsi14.png" alt="Using overlapped elements to create layers, example" width="559" height="309"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Images
&lt;/h3&gt;

&lt;p&gt;An image speaks a thousand words, but only if used properly. Otherwise, it can ruin a perfectly good design, as shown in chapter seven.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Text needs consistent contrast in order to be readable.&lt;/strong&gt; Nine times out of ten, adding text over an image renders the text unreadable. This is because text needs consistent contrast, while images usually have varying dark and light areas. Dark text looks great in light areas, but becomes unreadable in light areas and the other way around. To make images better backgrounds for text you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;add a semi-transparent overlay&lt;/li&gt;
&lt;li&gt;lower the image contrast (and maybe combine this with some text shadow)&lt;/li&gt;
&lt;li&gt;colorize the image with a single color&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Everything has an intended size.&lt;/strong&gt; Even if they don't lose in quality, scaling icons meant for a different size can end up looking unprofessional. Icons that were drawn at 16–24px are never going to look very good when you double or triple their size, because they lack detail and they will always feel disproportionately “chunky”. Alternatively, downsizing a detailed icon to favicon size will turn it into a mess as the browser tries to render that level of detail in a tiny square.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;If you want to include full-size screenshots of the app in your design (for a presentation page), don't shrink the screenshot to make it fit. It will look like you`re trying to fit everything but the kitchen sink in a single image and visitors will end up squinting. Instead, consider using a partial screenshot, which highlights a certain feature. If you really need to fit a whole-app screenshot, use a simplified version of the UI with details removed and small text replaced with simple lines.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--a28EPJcF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rospradv9q3dtcfdsm43.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--a28EPJcF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rospradv9q3dtcfdsm43.png" alt="How to include screenshots of your app in presentation pages, example 1 - shows all details" width="602" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Jw2BjY4e--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5bbtw65hx1axqsrci3di.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Jw2BjY4e--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5bbtw65hx1axqsrci3di.png" alt="How to include screenshots of your app in presentation pages, example 2 - highlights important part of the screenshot" width="598" height="263"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5yM82ZOG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7um1h9no1woapkykdimh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5yM82ZOG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7um1h9no1woapkykdimh.png" alt="How to include screenshots of your app in presentation pages, example 3 - blurred content" width="602" height="268"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Beware of user-uploaded content.&lt;/strong&gt; That is content which you can`t control in terms of styling. However, there are some things you can do to make sure uploaded content doesn't completely ruin the design. You can control the shape and size of uploaded content through fixed containers or prevent background bleed (when someone uploads something with a similar color to your UI's background) by using a subtle inner box shadow.&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  The Small Touches
&lt;/h3&gt;

&lt;p&gt;Sometimes an app doesn't need a full-blown redesign to really shine. Small adjustments and tweaks can make a big difference, as the last chapter demonstrates.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Add a more visual twist to what's already there.&lt;/strong&gt; This can mean either replacing bullets in a list with icons or turning quotation marks into visual elements by increasing their size and changing their color. You can also style links by giving them a different color than the boring blue associated with hyperlinks or a different weight. If you're working on a form, using custom checkboxes and radio buttons in the brand color is an easy way to liven the page up.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Add some personality with accent borders.&lt;/strong&gt; A simple trick to add flair to a design is including colorful accent borders to parts of your interface (such as the top of a card, along the side of an alert message or even across the top of your entire layout).&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ldQMjV1H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6rujvtk7ijrdn1w150bc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ldQMjV1H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6rujvtk7ijrdn1w150bc.png" alt="Setting elements apart using borders" width="602" height="451"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Don't be afraid to decorate backgrounds.&lt;/strong&gt; Sometimes, no matter what you do, a design will still look plain. Add some excitement by changing the background color, using a slight gradient or even a subtle repeatable pattern or a background shape. It doesn't have to be across the entire background, often repeating a pattern alongside a single edge can look awesome. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Use fewer borders.&lt;/strong&gt; Resist the temptation of separating elements by using borders. What you can do instead is use box shadows, use different background colors or add extra spacing. Shadows, color and spacing are the best ways to create a distinction between elements without making the interface look busy or cluttered.&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;From relying only on size to create hierarchy to using borders for everything, “Refactoring UI” has seen it all. But it doesn't judge. And, for something which has often been compared to a joke (if you have to explain an interface, the UI is probably not that good), the book does a really good job explaining UI.   &lt;/p&gt;

</description>
      <category>design</category>
      <category>uiweekly</category>
    </item>
    <item>
      <title>How to keep track of all your design project edits</title>
      <dc:creator>UPDIVISION</dc:creator>
      <pubDate>Tue, 14 Dec 2021 12:47:04 +0000</pubDate>
      <link>https://dev.to/updivision/how-to-keep-track-of-all-your-design-project-edits-4lke</link>
      <guid>https://dev.to/updivision/how-to-keep-track-of-all-your-design-project-edits-4lke</guid>
      <description>&lt;p&gt;Designing an app is not easy. And sometimes we focus so much on what we’re creating, that design files become very disorganized. After all, you're getting the job done, right? Why would we need to put time into getting the design organized? Well, as you might have discovered (the hard way), having a messy design file makes it very difficult to find things when you really need them.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;We’ve previously talked about &lt;a href="https://updivision.com/blog/post/design-workflows-getting-your-s-t-together-in-figma"&gt;being organized in Figma&lt;/a&gt;, and the best workflows in terms of design file tidiness. In this article, we wanted to address a more specific issue in UI/UX design: what happens when you make several different versions to a design, whilst keeping every single screen? Chaos. But that’s what we’re trying to avoid.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;A lot of times, we make minor changes to a design that need to be applied to multiple screens. The original screens are kept in case the clients change their minds and want to go back to the original design. But oftentimes we end up having 5 slightly different versions of the same screens.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;So how do we navigate that?&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  It’s all in the naming.
&lt;/h3&gt;

&lt;p&gt;The easiest and most basic thing to do is giving each page iteration a different name. It can be as simple as a “V1, V2” -type thing. This, of course, means keeping all the different iterations of your screens in separate pages. And make sure everything in one iteration’s page actually belongs there - if it’s centered around a specific design modification, make sure all the screens in said page have that element.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Now, just adding a V1 or V2 to a page name might not be enough. So here comes another suggestion: add big headlines in your design document to explain what sets that page apart from others. It doesn’t have to be complicated: just a paragraph of text should be enough. Think of it as a post-it you’re putting next to a specific item as a reminder - “These pages contain a different color scheme than Ver. 2” or “An alternate version of the header across all screens”.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;This doesn’t only apply to document page names. It’s also good practice to name your screens accordingly: if you used a different color scheme on some screens, put them next to the original ones (for comparison sake) and include “alternate colors” (or anything that makes sense to you) in the screen’s title. Don’t leave the same title on multiple screens, and definitely don’t just call them “v2”, “v3” and so on - it’s too unspecific and is bound to create confusion when you return to these screens.&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Keep a separate page for non-final designs
&lt;/h3&gt;

&lt;p&gt;Let’s first discuss a more basic part of UI/UX design file organization: what’s the best way to sort screens into design document pages? We’ve come to discover that it’s best to keep all the screens in one page - that is, unless the app you’re designing has A LOT of screens (in which case it’s best to divide them by subject or menu items). And when you do this, you get a lot of room to sort “non-final” designs, or “trial runs”, if you may. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;What we do is keep a separate page called ‘Archive’ for old screens that won’t go into the final app but which we decided to keep, just in case. We also create another page called “Trial and error”, where we keep screens that we’re making new versions of - and which aren’t final or “good enough” to go into the main design file page. By doing this, there’s no confusion about which screens can head into development and which ones are just ideas.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;A simple way to divide these pages visually is by using emojis: a checkmark for approved screens and a hand holding a pen for pages in progress can go a long way.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2C65GdIs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g8spt7z7qi64noiqnh6m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2C65GdIs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g8spt7z7qi64noiqnh6m.png" alt="Example of using emojis to divide pages in a design" width="880" height="577"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Photo source: &lt;a href="https://www.smashingmagazine.com/2019/08/figma-tips-kick-start-design-workflow/"&gt;Smashing Magazine&lt;/a&gt;&lt;/em&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;In short, make sure you divide screens that are final or approved from screens that are still in progress. And we know what you’re thinking - the word “final” has lost its meaning in design. Nothing is ever final. But what we mean is: separate the designs that have been approved from the ones that haven’t.&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  It’s about the small things
&lt;/h3&gt;

&lt;p&gt;You don’t have to switch up your entire design framework in order to keep better track of project edits. There are a couple of small things you can do to avoid getting lost in your own design files:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Don’t make a different file for each design iteration. Keep everything under the same file, but on separate pages.&lt;/li&gt;
&lt;li&gt;When making a new version of an existing screen, or editing a thing or two about it, don’t do it on the same one frame - make copies of said screen and don’t be shy to make as many as you need. You never know when you might want to return to the old version.&lt;/li&gt;
&lt;li&gt;When screens have been approved, make sure to keep pages like “Archive” or “Trial and error” at the bottom of the list. This way, when your development team or your client uses the design document, they won’t accidentally go on those pages.&lt;/li&gt;
&lt;li&gt;When making an alternate version of multiple screens, keep them on a separate page and add an emoji to the title. Our suggestion is to use number emojis - 1️⃣ for the original version and 2️⃣ for the additional one. &lt;/li&gt;
&lt;li&gt;Use colored circle emojis (examples: 🔴 🟠 🟡 🟢 🔵) in page titles to show what state they’re in. For instance, if the screens in a given page are still in progress but close to being done, use the yellow circle emoji. Since these colors are pretty suggestive on their own, it’ll be easy for your clients as well - they (hopefully) won’t get lost in your design document.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There you have it - now you know how to keep better track of design project edits. Naming, dividing screens, instructions from you to you: they’re small things, but they go a long way. After all, making a well organized design file is not only helpful to you, but also to your clients and development team.&lt;/p&gt;

</description>
      <category>design</category>
      <category>uiweekly</category>
    </item>
    <item>
      <title>Best Practices for Code Review and Pull Requests. Insights from Developers</title>
      <dc:creator>UPDIVISION</dc:creator>
      <pubDate>Wed, 08 Dec 2021 10:29:24 +0000</pubDate>
      <link>https://dev.to/updivision/best-practices-for-code-review-and-pull-requests-insights-from-developers-1kfk</link>
      <guid>https://dev.to/updivision/best-practices-for-code-review-and-pull-requests-insights-from-developers-1kfk</guid>
      <description>&lt;p&gt;One of our clients asked how we do the code review at UPDIVISION and if we can provide some examples of best practices. This looked like an awesome opportunity to discuss with developers and collect some fresh insights. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;If I had to sum up all the remarks received in only one phrase, I would say that code review is about teamwork. And it somehow defines team health as much as code health. Sometimes we forget that it involves two parties: the coder and the reviewer. So in order to make it work, we need a set of principles to guide both. Most of the teams have their unique tacit consent (gained with the previous experience) upon their standards, so this article is an effort to put them in writing.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Code reviews improve throughout a project’s sprints, as team members get to know each other. If it gives an opportunity for growing, self-improvement and solving conflicts, it’s a sign that it’s working.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;But what are some examples of best practices and standards to be followed?&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let’s see what the UPDIVISION developers say:&lt;/strong&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;h4&gt;
  
  
  For Coders:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;“The pull request should bring all updates/improvements that were specified in the task, not partially. In case there is a blocking issue, it should be discussed at that moment.” (Ovidiu) &lt;/li&gt;
&lt;li&gt;“Double-check and mark all subtasks within the task.” (Mada)&lt;/li&gt;
&lt;li&gt;“In general, for a pull request, it would be great to make sure its final version is testable and stable.” (Ovidiu) 
Always test your code, take pride in not leaving bugs for the testers to find&lt;/li&gt;
&lt;li&gt;“Coder must &lt;strong&gt;make sure there are enough explanatory comments&lt;/strong&gt; in long functions/files.” (Marian)&lt;/li&gt;
&lt;li&gt;"Explanatory comments are great. They’re not necessary for long functions, but for complex functions that need more clarification. I think developers must try to choose self-explanatory function names if possible, if not, write a comment!" (Ahmad)&lt;/li&gt;
&lt;li&gt;“I always make sure to &lt;strong&gt;compare differences before sending&lt;/strong&gt; a pull request, double-check if all aspects are taken into account and if there is nothing that is not needed anymore in the code.” (Ovidiu)&lt;/li&gt;
&lt;li&gt;“When a new feature or bug fixes are ready, it would be great to make sure this is the best code version by doing some refactoring at the end.” (Ovidiu) &lt;/li&gt;
&lt;li&gt;“The commits in the PR should describe exactly what happened (fix, feat, refactor etc).” (Ovidiu) &lt;/li&gt;
&lt;li&gt;“Coders need to make sure they &lt;strong&gt;merge the develop branch&lt;/strong&gt; before submitting the PR, so we can avoid conflicts.” (Marian)&lt;/li&gt;
&lt;li&gt;“I think we all agree that &lt;strong&gt;using check boxes&lt;/strong&gt; is useful.” (we use these when submitting pull requests too). This is nothing too fancy, but increases efficiency a lot. There can be a very simple template that works for your team and it may sound like this: 1. Tested links 2. Double checked X 3. Ran automated tests etc. &lt;/li&gt;
&lt;li&gt;“To find the context easier, PR names should have the same name as the task names in the project management tool we use (comma separated) associated with the name and follow the agreed naming convention: CU-{task_id} followed by &lt;strong&gt;a short description&lt;/strong&gt; of the PR.” (Marian)&lt;/li&gt;
&lt;li&gt;“Coders should &lt;strong&gt;double-check the target branch&lt;/strong&gt;.” &lt;/li&gt;
&lt;li&gt;“&lt;strong&gt;Deprecated/Unused&lt;/strong&gt; code must be &lt;strong&gt;removed&lt;/strong&gt;.” (Marian)&lt;/li&gt;
&lt;li&gt;“&lt;strong&gt;Make sure no console.logs are deployed to staging/production&lt;/strong&gt;, unless there's a debugging session on that environment.” (Marian)&lt;/li&gt;
&lt;li&gt;“Fixes regarding other parts of the code can go in the same PR, but this is something that should be discussed within the team.” (Ovidiu) 
 &lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  For Reviewers:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;“From my point of view and what I have experienced: If a PR is kind of blocking and the coder's next tasks depend on it, the reviewer should try to prioritize it if possible. Maybe it is better to create a PR based on features, not based on tasks, even when it makes the PR very big. Feature-based PRs are less dependent on other tasks, so less blocking. On the other hand, they can be fully tested as a feature and understandable by the reviewer as a whole, thus saving some time.” (Ahmad)&lt;/li&gt;
&lt;li&gt;“Reviewers should look if there are ways to &lt;strong&gt;simplify/improve&lt;/strong&gt; code for easier reusability/maintenance. It may increase the time of the code review, but in the long-term, you may actually save a lot of time.”  (Marian)&lt;/li&gt;
&lt;li&gt;“If we have multiple reviewers assigned to a PR, I think that PR should be merged only once all reviewers have approved the code.” (Ahmad)&lt;/li&gt;
&lt;li&gt;“Reviewers should keep a &lt;strong&gt;review diary&lt;/strong&gt; or keep some notes for later conclusions.“&lt;/li&gt;
&lt;li&gt;“Reviewers should make sure the &lt;strong&gt;naming of variables/files&lt;/strong&gt; is intuitive and easy to read, should some new developer ever need to edit/maintain the code.” (Marian)&lt;/li&gt;
&lt;li&gt;“When I do or I get a code review, I like to receive detailed notes/insights, not only “not ok”, “why did you do this?” without any recommendations. An ideal scenario is when the reviewer is explaining during a call or a quick chat how I can improve the logic or the code formatting. It is great, if the reviewer has enough time to spend some on identifying the weaknesses of the code.” (Ovidiu) &lt;/li&gt;
&lt;li&gt;“Everybody learns from it, including the reviewer. Both the coder and the reviewer should show responsibility when coding/reviewing code so we can avoid mistakes or pushing undesirable code to production. When solving a task, there are more solutions and all of them are reliable. The reviewer should not push this solution subjectively, if the coder has chosen another option.” (Ovidiu) &lt;/li&gt;
&lt;li&gt;“It's a good practice to run automated tests in front and back once developers make changes or fix bugs on features that have automatic tests implemented. And if any of the tests fail because of the changes, update them or fix related bugs if any. Briefly, PRs should not be merged when there are failing tests.” (Ahmad)
 &lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  For Both:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;“Both coders and reviewers should &lt;strong&gt;run the automated tests&lt;/strong&gt;.” &lt;/li&gt;
&lt;li&gt;“Both coders and reviewers should make sure they &lt;strong&gt;tested project links&lt;/strong&gt; before submitting a PR.”&lt;/li&gt;
&lt;li&gt;“If you have a PR that is for the frontend, for example, and that &lt;strong&gt;can't be tested functionality-wise&lt;/strong&gt; - it shouldn’t be merged even though the error is not frontend related.” (Marian)&lt;/li&gt;
&lt;li&gt;“On complex/large pages or functionalities, coders and reviewers should also try to &lt;strong&gt;optimize for performance and to minimize the UI/UX impact.&lt;/strong&gt;” (Marian)
 &lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Questions I ask myself as a developer or reviewer, when doing code review:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Is it easy to follow a reviewer? (as developer)&lt;/li&gt;
&lt;li&gt;Is there any additional information I can share with the developer, to help improve the process? (as reviewer)&lt;/li&gt;
&lt;li&gt;Do I understand what the code does? (for both of us)&lt;/li&gt;
&lt;li&gt;Does the code function as expected by the user? (for both of us)&lt;/li&gt;
&lt;li&gt;Is this following the definition of Done? (for both of us)&lt;/li&gt;
&lt;li&gt;Can this be simplified? (for both of us)
 &lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  General mindset:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Share feedback and discuss repetitive situations.&lt;/li&gt;
&lt;li&gt;Improve our process continuously.&lt;/li&gt;
&lt;li&gt;Always look for ways to automate.&lt;/li&gt;
&lt;li&gt;Help and understand each other.&lt;/li&gt;
&lt;li&gt;It’s the team work leading to excellence and high-end products that really matter.
 &lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  What NOT to do:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Never self-approve a PR. We need team power. &lt;/li&gt;
&lt;li&gt;If there are timeline or budget constraints, don’t waste more than half an hour on solving UI/UX problems. Ask for help from designers. &lt;/li&gt;
&lt;li&gt;This happens very rarely, but do not overtest if not needed. Leave some work to do for the tester. &lt;/li&gt;
&lt;li&gt;Don’t forget the global context (timeline, budget constraints, end-user, final goals, business logic behind it).&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>codereview</category>
      <category>webdev</category>
      <category>codequality</category>
    </item>
    <item>
      <title>[STRESS TESTING SERIES] Break it before you make it. 3 ways to test your UI design before coding it</title>
      <dc:creator>UPDIVISION</dc:creator>
      <pubDate>Fri, 03 Dec 2021 11:16:17 +0000</pubDate>
      <link>https://dev.to/updivision/stress-testing-series-break-it-before-you-make-it-3-ways-to-test-your-ui-design-before-coding-it-1j1</link>
      <guid>https://dev.to/updivision/stress-testing-series-break-it-before-you-make-it-3-ways-to-test-your-ui-design-before-coding-it-1j1</guid>
      <description>&lt;p&gt;&lt;em&gt;This article is part of the Stress Testing series of our UFOs UI/UX Framework. The framework is a tool we created based on our 10+ years of experience in building complex software and thousands of hours of design meetings and feedback. Developers, designers and entrepreneurs can use this framework to gain a better grasp of the UI/UX process and build awesome apps as a result. To learn more about the UOFs UI/UX Framework and each framework component, please go &lt;a href="https://dev.to/updivision/introducing-ufos-the-undeniable-proof-that-good-ux-is-out-here-1h4c"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This article is part of the “s” from UFOs, the framework component that talks about how to ask for and get useful feedback on your designs from stakeholders, including your end users.&lt;/em&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;People usually think of testing as something which happens after the app is coded. But testing your UI design before implementing it can save a lot of development time. And we're not talking just about getting the look &amp;amp; feel right. &lt;/p&gt;

&lt;p&gt;In fact, it can cost you 10 times more to fix something later in development than early in the design phase. Below are the three key elements you'll want to get feedback on once you have your first design drafts. And the three key people to ask.&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Stakeholders. Testing design alignment with business objectives
&lt;/h3&gt;

&lt;p&gt;Stakeholder feedback interviews are often overlooked as a testing method, but they're a great way to get feedback from people who really know the business. Stakeholders are your design and development partners and reaching consensus is essential for the success of the project.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Getting feedback from your stakeholders can help answer questions such as:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How could the current design potentially impact business results?&lt;/li&gt;
&lt;li&gt;Are there any requirements left unaddressed by the current design? &lt;/li&gt;
&lt;li&gt;Are there any limitations or restrictions we were unaware of when designing the screens?&lt;/li&gt;
&lt;li&gt;If it's an MVP, have we reached an agreement on the first iteration - number of features and their extent
 &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In order to get healthy feedback from your stakeholders, make sure to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Set the context for your designs - where are you at with the project, what features are you presenting and user types. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Clearly state the type of feedback you are looking for. This prevents stakeholders from giving you feedback which is not appropriate to the current stage the project is in, i.e. focusing on the fine touches when you are still defining core features.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ask stakeholders questions as you are presenting and walk them through your thought-process. This will encourage them to think about the design as well.&lt;br&gt;
 &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  End users. Testing design usability
&lt;/h3&gt;

&lt;p&gt;Think of prototyping as usability testing before end users can actually test your app. The goal is for users to interact with the design (literally) before a single line of code is written. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Most design tools such as Sketch, Figma or Adobe XD allow you to turn static pages into interactive prototypes by specifying triggers (on click, on hover etc.) and relations between screens. This way, users can select things from dropdowns, navigate through menus, click buttons and load new screens. Because it mimics the real thing, you can get early feedback and identify any key issues in navigation and functionality before committing to the final solution.&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;However, running tests on interactive prototypes requires a slightly different approach than testing coded software. These are some of the things to keep in mind when testing interactive prototypes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;prototypes, no matter how high the fidelity, are never going to be as comprehensive as the coded app. That's why the presence of a moderator is crucial to answer users' questions about what you want them to do or how. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;don't forget to account for relevant limitations. A “lorem ipsum” placeholder text or a rough colour scheme may make some elements less intuitive or interfere with some users' navigation abilities. Take that into consideration when evaluating the overall success of your designs.&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Developers. Testing design ease of implementation
&lt;/h3&gt;

&lt;p&gt;You don't have to wait for the handoff in order to show your design to developers. Developer feedback meetings can help identify those parts that are trickier to code, if there are any good alternatives and if your screens follow the required design patterns (e.g. when using a certain UI library life Vuetify). &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;In fact, gathering feedback from developers on your design before it gets implemented can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;uncover more straightforward solutions to technically challenging designs&lt;/li&gt;
&lt;li&gt;give you a good sense of the timeline and development effort needed to code the designs&lt;/li&gt;
&lt;li&gt;close any existing gaps between teams and make the handoff easier when the time comes &lt;/li&gt;
&lt;li&gt;leverage any unexpected issues that could be more time-consuming than anticipated
 &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Testing your designs and getting feedback early is crucial in making sure you`re building the right thing at the right time. And it can save a lot of development time and costs. Getting feedback early in the design process from key people such as stakeholders, end users and developers can drive the project forward with fewer hurdles down the line.&lt;/p&gt;

</description>
      <category>uiweekly</category>
      <category>design</category>
    </item>
    <item>
      <title>[Foundation Series] The anatomy of a UI Kit. What it is and how to use it in Figma</title>
      <dc:creator>UPDIVISION</dc:creator>
      <pubDate>Mon, 22 Nov 2021 13:51:13 +0000</pubDate>
      <link>https://dev.to/updivision/foundation-series-the-anatomy-of-a-ui-kit-what-it-is-and-how-to-use-it-in-figma-2k17</link>
      <guid>https://dev.to/updivision/foundation-series-the-anatomy-of-a-ui-kit-what-it-is-and-how-to-use-it-in-figma-2k17</guid>
      <description>&lt;p&gt;&lt;em&gt;This article is part of the Foundation series of our UFOs UI/UX Framework. The framework is a tool we created based on our 10+ years of experience in building complex software and thousands of hours of design meetings and feedback. Developers, designers and entrepreneurs can use this framework to gain a better grasp of the UI/UX process and build awesome apps as a result. To learn more about the UOFs UI/UX Framework and each framework component, please go &lt;a href="https://dev.to/updivision/introducing-ufos-the-undeniable-proof-that-good-ux-is-out-here-1h4c"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This article is part of the “F” from UFOs, the framework component that talks about the backbone of UI/UX design, the elements almost every design relies on.&lt;/em&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;If you`ve heard of UI kits, you probably know they're great for speeding the design process and for helping developers implement designs easier. However, UI kits are also a great tool for understanding the UI/UX design process. By reverse-engineering UI kits created by professional designers, you can get a fairly good idea of what UI/UX is literally made of. &lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  The anatomy of a UI Kit
&lt;/h3&gt;

&lt;p&gt;At its most basic, a UI Kit is a collection of frequently used UI components and some fundamental design style guides. Good UI Kits usually follow a design system. Here are a few examples of several free to use UI Kits: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://demos.creative-tim.com/material-kit/index.html"&gt;Material Kit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.creative-tim.com/product/now-ui-kit"&gt;Now UI Kit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://demos.creative-tim.com/soft-ui-design-system/index.html"&gt;Soft UI Kit&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;In general, if you download a UI Kit, there's a big chance it will come with some of the elements listed below.&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  UI components
&lt;/h3&gt;

&lt;p&gt;Depending on the kit, it can include anywhere from dozens to hundreds of UI components. These can vary in complexity, from the most basic building blocks such as buttons and input fields to more advanced elements like tables.UI components may come in different:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;sizes:&lt;/em&gt; most UI Kits define standard sizes (small, normal, large) at least for basic elements such as buttons, input fields or dropdowns.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;styles:&lt;/em&gt; again, most UI Kits come with at least two or three styles of buttons: rounded buttons, square buttons, outline buttons, buttons with icons etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;states:&lt;/em&gt; this is a big time-saver since you can have various states of the same element already designed (enabled, disabled, on hover, clicked etc.)&lt;br&gt;
 &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kFTIqNke--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zte4uckdl2f392vwh9ss.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kFTIqNke--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zte4uckdl2f392vwh9ss.png" alt="Example of different button sizes in a UI kit" width="641" height="275"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8_ufl1Vi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0s9d0swtl6kaz2n1w61n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8_ufl1Vi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0s9d0swtl6kaz2n1w61n.png" alt="Different types of buttons in a UI Kit" width="880" height="597"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Example pages
&lt;/h3&gt;

&lt;p&gt;Even the most imaginative people would have a hard time picturing how all these UI components fit together. This is what example pages are for. Most UI Kits include example pages as a way to demonstrate what you can build with the kit and how it might look. Some of the most frequent example pages include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Dashboards:&lt;/em&gt; since they are generally complex and include a lot of elements, dashboards are a good way to see what the UI Kit can do. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Tables:&lt;/em&gt; most admin panels include a lot of tables, so example pages usually feature a table page with CRUD operations. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Login and register pages:&lt;/em&gt; one of the first things users will see, so most UI Kits include these as example pages&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;User profile:&lt;/em&gt; another feature commonly found in most apps and in most example pages&lt;br&gt;
 &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Typography
&lt;/h3&gt;

&lt;p&gt;UI Kits usually come with typography rules which are meant to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;define text sizes: headlines (usually h1 through h6) and body &lt;/li&gt;
&lt;li&gt;define text styles: primary text, muted text, success text, warning text, captions etc.
 &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--N7giwFG0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5qux7jtk2ggcz4pgfavr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--N7giwFG0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5qux7jtk2ggcz4pgfavr.png" alt="Example of typography in a UI kit" width="880" height="418"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Colours
&lt;/h3&gt;

&lt;p&gt;UI Kits usually include a color scheme which is applied throughout and can be broken down into various categories, depending on how the kit is organized:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Primary colors (one or two)&lt;/em&gt; - used in pure form for primary actions, active navigation elements etc. The primary color is usually the theme colour, what you think of when you think of that UI Kit. Of course, you can have various shades for each primary color.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Background colors&lt;/em&gt; - usually neutral, a lot of gray tones&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Accent colors&lt;/em&gt; - all the yellows and greens and reds for signaling various states. Can also include other colors.&lt;br&gt;
 &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zCaJwWhe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mhpfscvuyvte8nt9rrsh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zCaJwWhe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mhpfscvuyvte8nt9rrsh.png" alt="Example of colors in a UI kit" width="821" height="716"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Icons
&lt;/h3&gt;

&lt;p&gt;Some UI Kits also include the icon packs that were used throughout the designs or a link to the icon pack plug-in. In Figma, for example, you can install the plug-in and import the icons directly. &lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Elevation###
&lt;/h3&gt;

&lt;p&gt;Some UI Kits define elevation rules for the components. Essentially, these are shadow styles, so that, based on how big the drop shadow is, you can have elements which appear closer or further away from the background.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2pFxUeeT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2g2s5ib0mi180g8ilhaw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2pFxUeeT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2g2s5ib0mi180g8ilhaw.png" alt="Example of shadows in a UI kit" width="575" height="710"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Grids###
&lt;/h3&gt;

&lt;p&gt;Sometimes UI Kits also come with grids for various container sizes, from small to wide. Usually, these follow 12 column &lt;a href="https://getbootstrap.com/docs/4.0/layout/grid/"&gt;Bootstrap grid options&lt;/a&gt;.&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Using a UI Kit in Figma
&lt;/h3&gt;

&lt;p&gt;As comprehensive as a UI Kit can be, there's a big chance you`ll need some basic tailoring to make it your own. And to design an app that stands out. The following section deals both with how to use an UI Kit in Figma and how to customize some basic presets.&lt;/p&gt;

&lt;p&gt;If you want to see a UI Kit at work, check out our &lt;a href="https://updivision.com/blog/post/ready-to-code-design-build-your-apps-in-record-time-with-the-backpack-figma-template"&gt;case study&lt;/a&gt; on how we used the &lt;a href="https://backpackforlaravel.com/products/figma-template"&gt;Backpack Figma Template&lt;/a&gt; to design the administration for a tech dictionary.&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Getting started
&lt;/h3&gt;

&lt;p&gt;If your UI Kit comes as a .fig file, upload it in Figma either by dragging and dropping it or by clicking the New &amp;gt; Import button and selecting the file. &lt;/p&gt;

&lt;p&gt;Alternatively, you can go to the &lt;a href="https://www.figma.com/community"&gt;Community&lt;/a&gt; section in Figma and search for a UI Kit. By duplicating a file from the Community (click on Duplicate), the file becomes editable in your own Figma account and you can use it as you like.&lt;/p&gt;

&lt;p&gt;Select the frame size you`ll be working with - Figma comes with predefined sizes for phone, tablet, desktop, which you can see on the right-hand side when you create a frame. If your UI Kit comes with predefined grids, you can activate the grid option from the Layout Grid menu.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kgL-uHk2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xrglnsozwxqowh3bwnwa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kgL-uHk2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xrglnsozwxqowh3bwnwa.png" alt="List of grid styles" width="234" height="275"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Copying components
&lt;/h3&gt;

&lt;p&gt;Copy the ready-made UI components and start using them in your design. You can do this in several ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;select an element and use the regular CTRL-C CTRL-V commands&lt;/li&gt;
&lt;li&gt;select an element, hold ALT and drag. This will create a copy of that element.&lt;/li&gt;
&lt;li&gt;use the Assets menu to identify the needed component and then simply drag it in your workspace
 &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jU1gDTF0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v7q4me74mh148vijfbwv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jU1gDTF0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v7q4me74mh148vijfbwv.png" alt="Example of components in Figma" width="393" height="484"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;The copies you create are children of the parent component. This means that whatever changes you do to the parent, they will also be applied to the child components. Parent components are represented through a diamond symbol, while the children are symbolized through an outline. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eFFDw2jX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qcphgvhj62ggpn4fkn9o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eFFDw2jX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qcphgvhj62ggpn4fkn9o.png" alt="Components and instances in Figma" width="233" height="158"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Overriding presets
&lt;/h3&gt;

&lt;p&gt;Most of the things mentioned in the UI Kit Anatomy section, such as colors, typography, elevation and grids come as predefined styles in Figma with your UI Kit. You can see them under Text Styles, Color Styles, Effect Styles and Grid Styles. You can edit them by clicking the Edit Style button.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VA6PB6PJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0gy4j2raj0qy0wj5mnco.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VA6PB6PJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0gy4j2raj0qy0wj5mnco.png" alt="Example of pre-defined styles" width="233" height="317"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;When you edit a style, all components which have that style applied to them will be edited. &lt;/p&gt;

&lt;p&gt;Of course, you can also detach a component from its predefined style. This will allow you, for example, to edit the colour of that component only and maybe define a new color style based on that. To do that, select the new color and click the + button in the Color Styles widget and give the new color style a name.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3ojs4rHs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n371cd95ksuae8nq87r3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3ojs4rHs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n371cd95ksuae8nq87r3.png" alt="Example of detash style" width="238" height="117"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OEom0Roc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/joao5wxgjxe5ze1qbmje.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OEom0Roc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/joao5wxgjxe5ze1qbmje.png" alt="Create a color style in Figma" width="259" height="188"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UHyvR3Fg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hmmuk0k2v7der85u9krp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UHyvR3Fg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hmmuk0k2v7der85u9krp.png" alt="Create a color style in Figma, last step" width="395" height="177"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;In a similar manner to styles, you can detach child components from their parent components. Child components can be edited separately from their parent component, but that's available only for stylistic changes (like changing the colour). If you want to resize a child component, you need to detach it from its parent first, resize it and recreate it as a parent component itself. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;To detach a child component, simply right click it and select “Detach instance”. To create a parent component, click the diamond symbol in the upper menu.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UNpaCOM_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n8nhv5brs4nlxmui5tz0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UNpaCOM_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n8nhv5brs4nlxmui5tz0.png" alt="Create component function in Figma" width="342" height="92"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Finding things easier###
&lt;/h3&gt;

&lt;p&gt;UI Kits can feel huge and overwhelming. To find things easier you can search directly in the Assets menu for the component you need. This will show you thumbnails of the existing components for that keyword.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Q7mwiPMv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yroidfowwaraxlf5hi63.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Q7mwiPMv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yroidfowwaraxlf5hi63.png" alt="Assets menu in Figma" width="380" height="347"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JiilD9MK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p5vbwtyogomzk7ski1ef.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JiilD9MK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p5vbwtyogomzk7ski1ef.png" alt="Go to main component function" width="238" height="102"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Some UI Kits even have Variants put in place, so you can find versions of the same component easier. In Figma, Variants are used to quickly switch between different styles or states (active, inactive, pressed, on hover) of the same component. If your UI Kit comes with Variants, select a component and you will see in the right-hand panel dropdowns and toggles allowing you to change between various options for that component.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ltaYE8uk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7b5pm6i5vu8jbmboget0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ltaYE8uk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7b5pm6i5vu8jbmboget0.png" alt="Variants under a specific component" width="236" height="211"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Now imagine doing all this from scratch. Sounds kind of time-consuming and a hassle to organize. That's why UI Kits are a great starting point for design and development projects. And also a great way to gain a more structured understanding of the UI/UX fundamentals.  &lt;/p&gt;

</description>
      <category>design</category>
      <category>uiweekly</category>
    </item>
    <item>
      <title>It's no tall tale. Automate your entire setup process with this TALL Stack package</title>
      <dc:creator>UPDIVISION</dc:creator>
      <pubDate>Wed, 17 Nov 2021 09:15:42 +0000</pubDate>
      <link>https://dev.to/updivision/its-no-tall-tale-automate-your-entire-setup-process-with-this-tall-stack-package-479n</link>
      <guid>https://dev.to/updivision/its-no-tall-tale-automate-your-entire-setup-process-with-this-tall-stack-package-479n</guid>
      <description>&lt;p&gt;What if we told you setting up your TALL Stack development project could take less than cleaning your desk? Bet you won't procrastinate starting that project now.  &lt;/p&gt;

&lt;p&gt;Setting up your dev environment can be pretty tedious, especially if you've been doing it for a while. So, one of our developers, Andrei Decuseara, came up with a solution to automate all the setup steps for our TALL Stack (Tailwind, Alpine.js, Laravel, Livewire) development projects. Including file structure and optimizations. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;We've been working with TALL Stack a lot for the past year. Based on our estimations, this package helped us save around 30 hours of setup time for each project. To put it differently, that's 30 hours spent actually doing development. Our developers and our clients were both very happy. Each for their own reasons :)&lt;/p&gt;

&lt;p&gt;You can check out the package on &lt;a href="https://github.com/AndreiDecuseara/tallstack-pack"&gt;Github&lt;/a&gt; and tell us what you think. You can even give it a star if it helped you in your own work.&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;
&lt;h3&gt;
  
  
  Who's the package for?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Busy developers (aren't they all?!) who need to start writing code as fast as possible&lt;/li&gt;
&lt;li&gt;Technical Team Leads who need to onboard new members on TALL Stack projects&lt;/li&gt;
&lt;li&gt;Developers new to TALL Stack who need to set up their first project and get started with these technologies
 &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  What does the package do?
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Setup and create new project&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Install TALL Stack and jQuery&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create optimizations and install webmix; run all npm commands&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create optimized file structure ready to be used in a new TALL Stack app&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create Livewire example, instead of Laravel&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create new TALL Stack start page with all required resources&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use your latest Node version, changed automatically from script&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Automatically create everything you need for auth (login, reset, register) &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Auto-open browser on your new TALL Stack project when setup is complete&lt;br&gt;
 &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  Running it on Linux is as simple as “tallstack.sh”
&lt;/h3&gt;

&lt;p&gt;You can easily run it as a script on your Linux distribution. Just type in “tallstack.sh” and go grab a coffee while it's installing and configuring everything for you. The script also allows you to choose whether you want to install Backpack for Laravel, one of the most popular admin panel builders in the Laravel community. You can also choose whether you want out of the box auth. &lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://player.vimeo.com/video/640460953" width="710" height="399"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  Set your project up for success. Literally
&lt;/h3&gt;

&lt;p&gt;A good setup will always reflect on the project`s overall performance. That's why it's important to get it right from the get-go. Below is the performance score of one of our projects which we set up using the TALL Stack package. We ran a Lighthouse audit on key metrics related to page load speed:&lt;br&gt;
 &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First contentful paint (FCP) - marks the time at which the first text or image is rendered&lt;/li&gt;
&lt;li&gt;Speed index - how quickly the contents of a page are visibly populated&lt;/li&gt;
&lt;li&gt;Largest contentful paint - the time at which the largest text or image is rendered&lt;/li&gt;
&lt;li&gt;Time to interactive - the amount of time it takes for the page to become fully interactive&lt;/li&gt;
&lt;li&gt;Total blocking time - sum of all time periods between FCP and Time to interactive, when task length exceeds 50ms.&lt;/li&gt;
&lt;li&gt;Cumulative layout shift - measures the movement of visible elements within the viewport.
 &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The project returned a perfect score.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--M-YcrEm6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/abp2bghlhf8g23s8jaxg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--M-YcrEm6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/abp2bghlhf8g23s8jaxg.png" alt="Tallstack score" width="880" height="539"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  What's next?
&lt;/h3&gt;

&lt;p&gt;As we continue to use the package in our projects, new ideas keep coming up. Going further, we plan to add more granularity to what you can install through the package. We plan to make it possible to choose a template on install and select various ready-made components. We are currently working on a script for Windows, similar to the one for Linux. As for the Linux script, we are planning to get it reviewed and officially accepted into the Linux distribution as an installable package. So, stay tuned!&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Check out the package on &lt;a href="https://github.com/AndreiDecuseara/tallstack-pack"&gt;Github&lt;/a&gt; and let us know your thoughts. Maybe even give it a star if it helped you save some precious development time.   &lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>functional</category>
    </item>
    <item>
      <title>[Understanding Series] How to talk the walk. Understand the app you need to build through preliminary interviews</title>
      <dc:creator>UPDIVISION</dc:creator>
      <pubDate>Wed, 10 Nov 2021 10:13:13 +0000</pubDate>
      <link>https://dev.to/updivision/understanding-series-how-to-talk-the-walk-understand-the-app-you-need-to-build-through-preliminary-interviews-19nc</link>
      <guid>https://dev.to/updivision/understanding-series-how-to-talk-the-walk-understand-the-app-you-need-to-build-through-preliminary-interviews-19nc</guid>
      <description>&lt;p&gt;&lt;em&gt;This article is part of the Understanding series of our UFOs UI/UX Framework. The framework is a tool we created based on our 10+ years of experience in building complex software and thousands of hours of design meetings and feedback. Developers, designers and entrepreneurs can use this framework to gain a better grasp of the UI/UX process and build awesome apps as a result. To learn more about the UOFs UI/UX Framework and each framework component, please go &lt;a href="https://dev.to/updivision/introducing-ufos-the-undeniable-proof-that-good-ux-is-out-here-1h4c"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;em&gt;This article is part of the “U” from UFOs, the framework component that strives to help you understand the business needs of your clients and an app's main stakeholders.&lt;/em&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Imagine your team just landed a software development project for an app you know nothing about. At the moment you are reading this, there are no written specifications, no user flow diagrams and no project board with pending tasks. Soon you`ll need to start working on the first draft screens. Where do you actually start?&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;UI/UX design is all about problem solving. To succeed, an app needs to serve a business goal for a stakeholder, solve a problem for a user and bring something to the industry. Understanding these three aspects is the first step in understanding the app you are designing and ultimately building.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Before we can even talk about specifications, technical requirements, user journeys or personas, there is important groundwork to be done. And this consists of preliminary interviews with people directly involved in building the app and people who will be using the app. Interviews shouldn't just happen as part of prototype testing or after-launch monitoring. They should be a primary tool in product discovery and the initial stages of UI/UX design.&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;With this in mind, preliminary interviews are aimed at answering two questions: “Who?” and “What?”. These two questions form the basis of all future iterations and can be revisited throughout the design and development lifecycle. They are also a fast and easy way of getting to know the industry, in addition to any additional research you might conduct (e.g. reading white papers and reports on the industry, watching demos of similar apps). &lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  WHO?
&lt;/h3&gt;

&lt;p&gt;The people you interview in these initial stages will help you get an idea of the full spectrum of your stakeholders. This can also serve as a basis for future user persona profiling. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WHO are the makers?&lt;/strong&gt; - in addition to the actual team developing the app (UI/UX designers, developers, testers), you can also have client-side makers. These are primary stakeholders, like co-founders or investors, who are directly involved in the design and development process and have the most decision-power. They are the ones who often invested money in building the app or who are the most interested in the business success of the app. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Mandatory makers to interview:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Product owners&lt;/strong&gt; - for start-ups they might be the co-founders themselves, while for bigger companies you might have a dedicated person acting as a product owner. They're in charge of the vision and direction of the app and understand the requirements in detail.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Client-side product owners (as opposed to internal product owners) have the advantage of understanding the product AND having an already established relationship with the wider stakeholders. This allows you to also interview the CEO, CTO, board members or marketing team members who can give you a multifaceted perspective on what they want to build. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WHO are the users?&lt;/strong&gt; - unlike makers, users have less decision-power regarding app design or features, but they're the ones most impacted by these. This sometimes leads to a contradiction, where people who won't actually be using the app build it for people who will. Needless to say, the makers' vision for the app doesn't always go with what the users actually need or want. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;That's why it's important to not restrict requirements to a list of features handed down by the product owner. Preliminary interviews with users are also a big part of this understanding phase. This works best for internal apps, where the user base more or less coincides with the company's employees (you can be put in contact with them through the product owner or other stakeholders). However, even when the end user is exclusively “out there”, you can still work with the stakeholders to identify potential candidates.&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;At a minimum, users can be divided into admins and regular users. Further segmentations may include:&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Company employees: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;managers: from team leads to division managers, they can offer you the bigger picture in terms of workflows and processes.
&lt;/li&gt;
&lt;li&gt;power users: these are people with a lot of work and industry experience. They can help you identify edge cases and features they would very much like to use in their daily job, but failed to find in similar apps.
&lt;/li&gt;
&lt;li&gt;regular users: they are the people whose job the app needs to make easier. At a minimum, the app should allow regular users to perform their daily tasks. 
 &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Company clients:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;end users: these are the users whose activity is supported through the app and who are served by the employees using the app. &lt;/li&gt;
&lt;li&gt;other businesses: final recipients of B2B software
partners - this includes suppliers or any third-party vendors.
 &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  WHAT?
&lt;/h3&gt;

&lt;p&gt;What people want from the app very much depends on who they are. If the app was a pie, makers and users would all want a piece of it, but of various flavors. Below are some examples: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;product owners -  their goal is to create products that stand out. They're the ones most interested in the app's look &amp;amp; feel.
&lt;/li&gt;
&lt;li&gt;managers - their goal is mostly instrumental: optimize processes, reduce cost etc. They're less interested in what makes the app stand out. They use dashboards a lot and need ways to analyze data and assess performance. &lt;/li&gt;
&lt;li&gt;power users - they want to be able to do things previous software they used didn`t allow them to. This might imply highly customized design and features. &lt;/li&gt;
&lt;li&gt;regular users - their goal is to do less manual work. This might mean automating tasks or integrating in the app data previously tracked offline manually.
&lt;/li&gt;
&lt;li&gt;clients - need to have easy access to important information (business accounts, stats &amp;amp; reports) and ways to communicate easily with a support team.
 &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To complicate things even further, one person can have multiple roles and therefore conflicting wants or needs depending on the role they put forward. In sociology this is known as “role conflict”, an example being when a parent coaches a team that includes that parent's son. The role of the parent can conflict with the role of the coach which requires a higher degree of objectivity. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Similarly, exploratory roles (like that of a product owner) might conflict with more instrumental roles (like that of a board member). A person might want to build the most advanced fleet management software on the market. All the while admitting that, as a board member, if they were responsible for the financial decision of buying such software, they would choose the cheapest or the medium-priced option.&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;h2&gt;
  
  
  Preparing for the interview
&lt;/h2&gt;

&lt;p&gt;Whether in person or remote, preparing ahead for these preliminary interviews can save you a lot of time down the road. Below are some tips &amp;amp; tricks for a smoother experience on both ends. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Make sure you have a way to record the meeting&lt;/strong&gt; - taking notes might sometimes distract you from the actual interview. Try recording the meeting instead, so you can review it later if needed. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Identify patterns early on&lt;/strong&gt; - if you do decide to take notes, write them down as statements directly in an Excel spreadsheet (you can also include supporting quotes). You can then identify patterns by coloring in the participants who adhere to that statement. Works great especially for redesign projects, where you can easily identify recurring pain points users have with the existing app. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RiVAo_lA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8uh9x4so5u68k6kfaowe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RiVAo_lA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8uh9x4so5u68k6kfaowe.png" alt="Example of taking notes about what's not working well in an app" width="608" height="350"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Source: &lt;a href="https://www.userinterviews.com/blog/tools-for-remote-user-interviews"&gt;https://www.userinterviews.com/blog/tools-for-remote-user-interviews&lt;/a&gt;&lt;/em&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ask open-ended questions&lt;/strong&gt; - might sound trivial, but it encourages users to tell a story rather than confirm or rule out your own assumptions. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keep the “what ifs” for the makers, not the users&lt;/strong&gt; -  ask users only factual questions. Interviews should stick to concrete examination of what users do and how they feel. They should not try to get the user to create their ideal product. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Start building a list of contacts&lt;/strong&gt; - this is particularly useful when working on an app for a bigger company. During interviews people tend to reference other colleagues who they feel might have a better grasp on certain aspects. Write those contacts down and start building a list of team members, departments and responsibilities.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Group questions into topic categories and subcategories&lt;/strong&gt; - you probably won't be able to think of all the questions straight away, but having some broad categories to map them to really helps. Below is a concrete example of organizing your questions.&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;h2&gt;
  
  
  35 example questions to kick start a productive discussion about complex software
&lt;/h2&gt;

&lt;p&gt;You have been contacted by a relatively large company to design and build an app which covers the seed-to-sale life cycle of bonsai trees. This includes tending to and growing the trees, but it should also provide supporting features for the sales team, the inventory management team and the company's clients (flower shops distributing the bonsai trees, other growers) and partners (e.g. fertilizer and pesticide suppliers).&lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Questions for the makers:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;App structure and architecture&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;1.) Will this be a single app or a suite of apps, given the number of features?&lt;/p&gt;

&lt;p&gt;2.) If this is a suite of apps, how will the onboarding and sign in happen? (e.g. single sign-on through a portal allowing users to sign in with the same email address across apps)&lt;/p&gt;

&lt;p&gt;3.) Will this app/suite be used only internally or will it be sold as a seed-to-sale software solution for other growers?&lt;/p&gt;

&lt;p&gt;4.) If this is a SaaS, how many users do you expect to have?&lt;/p&gt;

&lt;p&gt;5.) What is the overall entity hierarchy and what are the restrictions that come with this? For example, the company is the highest-level entity. Each company needs a bonsai grower license in order to sign up for the app. Can a company have more than one license and if so, how do they switch between licenses? How many levels down does the hierarchy go? For each company you might have several brands (luxury bonsai trees, pocket-sized bonsai trees etc.). Each brand may have their own teams with various roles within the team. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Industry and competitors&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;6.) Who are your biggest competitors and what is your main differentiator? A huge value proposition might be the fact that you offer an integrated suite. Alternatively, there might be multiple CRM solutions out there, but none tailored for the bonsai industry specifically.&lt;/p&gt;

&lt;p&gt;7.) What are some industry trends which you have identified and could directly impact the design and development of the app? For example, more and more clients move towards a vendor managed inventory model. Instead of simply selling bonsai trees to flower shops, you could monitor their inventory thresholds to make sure they never run out of bonsai trees. Or you could even order bonsai trees for them and offer inventory management as a service through your app.     &lt;/p&gt;

&lt;p&gt;8.) What are the most common billing models in the industry and how do you plan to approach billing (one-time payment versus subscription, payment plan per number of API calls, per number of team members etc.) &lt;/p&gt;

&lt;p&gt;9.) What are the main business goals you set for your app and what is the estimated time span to reach these thresholds?&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Clients&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;10.) What type of clients do you have? For a bonsai grower, this might range from flower shops where they sell their ready-made products to other growers to whom they sell seeds and other growing materials.&lt;/p&gt;

&lt;p&gt;11.) What is the average size of your clients` business?  &lt;/p&gt;

&lt;p&gt;12.) What type of services do you offer to your clients? For example, this might range from retail selling through an e-commerce to vendor managed inventory services.&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;App look &amp;amp; feel&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;13.) Could you please give us some examples of app designs you like?&lt;/p&gt;

&lt;p&gt;14.) Do you plan on using a UI kit or an entirely custom design?&lt;/p&gt;

&lt;p&gt;15.) Are there any industry rules regarding look &amp;amp; feel, color scheme etc.? For example,   in the bonsai growing industry one would expect to see earth tones and a lot of green. &lt;br&gt;
 &lt;/p&gt;

&lt;h3&gt;
  
  
  Questions for the users
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Getting to know the user&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;16.) [For employees] What is your role and how long have you been with the company?&lt;/p&gt;

&lt;p&gt;17.) [For managers] How many people do you have on your team?&lt;/p&gt;

&lt;p&gt;18.) What apps do you use in your daily work? Which ones do you use the most? &lt;/p&gt;

&lt;p&gt;19.) If you would describe your job with one adjective, what would it be? &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Daily workflow&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;20.) Could you please walk me through what a typical work day looks like for you?&lt;/p&gt;

&lt;p&gt;21.) What task takes up the most time out of your day? For example, the Growing team might spend a lot of time manually tracking bonsai trees based on their plant tag. A significant time-saver for them might be the ability to scan the tree tags and automatically get the code. &lt;/p&gt;

&lt;p&gt;22.) What is the easiest task to accomplish? What is the hardest task to accomplish?&lt;/p&gt;

&lt;p&gt;23.) Do you use any hardware in your daily work? (e.g. thermal printers, scanners etc.)&lt;/p&gt;

&lt;p&gt;24.) How many other departments do you interact with on a daily basis?&lt;/p&gt;

&lt;p&gt;25.) How is your work evaluated and what are the metrics, if any? (e.g. planted trees per hour, number of correct versus incorrect orders etc.)&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;‍&lt;strong&gt;Pain points&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;26.) What are the blockers you most often encounter in your daily work? For example, several members of the Fulfilment team might pull from the same bonsai inventory lot to fulfil orders. Slow loading time might lead to inaccurate inventory. When the system refreshes, the user might realize that, in fact, there is nothing left to pull from.&lt;/p&gt;

&lt;p&gt;27.) What options do you currently have to address the blockers?&lt;/p&gt;

&lt;p&gt;28.) What are your main issues with the software you are currently using for your work?&lt;/p&gt;

&lt;p&gt;29.) Who are the people/departments most affected by this pain point?&lt;/p&gt;

&lt;p&gt;30.) What has stood in the way of addressing this pain point so far?&lt;br&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Client-related questions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;31.) Are you in direct contact with your clients? If yes, how do you keep in contact with them? &lt;/p&gt;

&lt;p&gt;32.) What is good customer service as related to your job?&lt;/p&gt;

&lt;p&gt;33.) What are the most frequent complaints you receive from clients?&lt;/p&gt;

&lt;p&gt;34.) I want to do a certain action as a client (e.g. place an order). Can you walk me through the steps of accomplishing this?&lt;/p&gt;

&lt;p&gt;35.) An issue has been raised by a client (e.g. incomplete order). Could you please walk me through the steps of raising an issue and resolving it within your department. &lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;You can hold preliminary interviews with makers and users before you even have a design to inform any future personas, journey maps or requirements for the app you are building. These preliminary interviews will help you understand the app a lot better and the business needs it answers. It's like an onboarding process before you even start mapping an onboarding flow. &lt;/p&gt;

</description>
      <category>ux</category>
      <category>uiweekly</category>
      <category>design</category>
    </item>
  </channel>
</rss>
