<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Owen Schoppe on Medium]]></title>
        <description><![CDATA[Stories by Owen Schoppe on Medium]]></description>
        <link>https://medium.com/@owen.schoppe?source=rss-74a0871f5351------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/2*QyhnwnkR8m370CdlkcZ08g.jpeg</url>
            <title>Stories by Owen Schoppe on Medium</title>
            <link>https://medium.com/@owen.schoppe?source=rss-74a0871f5351------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Mon, 25 May 2026 22:39:25 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@owen.schoppe/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Design Stories and Truth]]></title>
            <link>https://medium.com/salesforce-ux/design-stories-and-truth-e4983eded41a?source=rss-74a0871f5351------2</link>
            <guid isPermaLink="false">https://medium.com/p/e4983eded41a</guid>
            <category><![CDATA[design-relationships]]></category>
            <category><![CDATA[salesforce-design]]></category>
            <category><![CDATA[ux-design]]></category>
            <category><![CDATA[design-strategy]]></category>
            <dc:creator><![CDATA[Owen Schoppe]]></dc:creator>
            <pubDate>Wed, 13 Oct 2021 17:57:55 GMT</pubDate>
            <atom:updated>2021-10-13T17:57:55.636Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="A group of people telling stories around a campfire." src="https://cdn-images-1.medium.com/max/1024/0*1xW-OSR_fRyu3813" /><figcaption>Photo by<a href="https://unsplash.com/@kjerdvig?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"> Kevin Erdvig</a> on<a href="https://unsplash.com/photos/k7fUP9RQj3Y"> Unsplash</a></figcaption></figure><p>In design, storytelling has become a fashionable trend over the past decade with many speakers, writers, and <a href="https://storytelling.design/resources.html">websites</a> professing the importance of storytelling to design. While storytelling can be useful, it also runs the risk of misleading teams if not done conscientiously. In this article I’ll discuss the role of storytelling in design and how to use it wisely.</p><p>In my experience, storytelling is used for three primary purposes in the design profession:</p><ol><li><strong>Real stories of people who might use the product or service.</strong> <br>As Whitney Quesenbery describes in “<a href="https://rosenfeldmedia.com/books/storytelling-for-user-experience/">Storytelling for User Experience</a>”, these stories, as captured and retold through user research, build empathy and understanding for other people’s experiences to help ground and inspire the team.</li><li><strong>Stories embedded into products and services.</strong> <br>The idea here is that great design should tell a story to the user. This idea is often <a href="https://uxdesign.cc/https-medium-com-babarsuleman-the-role-of-storytelling-in-design-separating-fact-from-fiction-6e43a42161a7">criticized</a>, because the majority of cited examples, like a website using photography or a roller coaster ride, seem to lack narrative development.</li><li><strong>Stories that describe how the experience could be.</strong> <br>These are <a href="https://www.invisionapp.com/inside-design/speculative-design/">speculative stories</a> about possible futures. When used casually they can allow teams to rapidly explore possible solutions in an empathetic way. When formalized they can help align groups of stakeholders around a vision. There are many nuanced forms of stories in this category including “scenarios” and “<a href="https://medium.com/digital-experience-design/design-fiction-32094e035cd7">design fiction</a>”.</li></ol><p>This article focuses primarily on this <strong>third</strong> kind of storytelling.</p><h3>Recognize the power of narrative</h3><p>Speculative storytelling plays a central role when organizations make decisions about what to build next. It helps teams consider the question: “What vision should we pursue?” Design strategy is about identifying opportunities and framing solutions at a high level to get the commitment to design and build them at a low level. It’s common practice, in my experience, to wrap arguments about what to build within a story to give them emotional weight. While I can’t deny the effectiveness of this approach, I’ve long harbored a queasiness about focusing on the craft of storytelling.</p><p>Everyone loves to call out misleading statistics, but misleading stories are even more pernicious. The problem, as I’ve come to realize, is how to tell when a story is misleading? Unlike statistics and other scientific data, I don’t have a robust set of tools to see through the smoke and mirrors.</p><p>Stories, good stories, have a power that is gripping. They dive deep into our psyches and prove convincing even when they are complete fiction. While some of our most beloved stories are intentionally fiction, I wonder how to distinguish misleading tales from those that contain an essential truth.</p><h3>Question the future</h3><p>Within design, the stories we tell are about the future. They’re about how people will use and love some product, and how that product will result in increased profits. These stories are fictions, necessarily, since they take place in the future. They are also seen as one of the best ways to convey the vision for a product because they capture the human experience. They engage the audiences’ empathy for the protagonists. Yet, one runs the risk of telling a compelling tale that leads the group off of a cliff. Just because I can tell a compelling story about a future product doesn’t mean we should actually build that product. So how can we distinguish helpful stories from misleading ones?</p><p>When considering a story within the context of design strategy, I suggest the following starting points for evaluation:</p><ol><li><strong>Is the end user of the product portrayed realistically?</strong><br>Is the actual user or person who will be impacted accounted for? Do they have realistic motivations? Are there <a href="https://medium.com/@vick_onrails/what-is-storytelling-and-why-should-designers-care-36645998e038">quotes from real people</a> to support the story? It’s too easy to tell stories of profit and power when the only players are abstract business units or users who love the product. When you are forced to include the actual humans in the story you are forced to address humanity and all its complexity. Take a story about mobility for example. Volkswagen <a href="https://newsroom.vw.com/vehicles/volkswagen-reveals-why-americans-love-suvs-and-why-theyre-the-future/">surveyed</a> American SUV drivers and found that 87% of them plan to stick with SUVs for life. They concluded that “our current portfolio of SUVs aligns with what consumers are prioritizing”. Unfortunately, this simplistic conclusion detracts from the actual needs they found, “comfortable seating” and “safety”. Richly describing what these mean to people would uncover opportunities to invent new forms of transportation as Tesla and others have done. The survey alone is equivalent to focusing on the proverbial faster horse, when cars are just around the corner.</li><li><strong>Are all the characters in the story accounted for? </strong><br>Has the story accounted for partners, employees, regulators, and competitors? Even user-centric stories often skip important characters and gloss over the potential pitfalls. As <a href="https://www.isc.hbs.edu/strategy/business-strategy/Pages/the-five-forces.aspx">Porter</a> has shown, competitors have plans of their own; ignore them at your own risk. Returning to our mobility story, as companies consider the shift to electric cars it’s important to factor in all the different stakeholders. For example, how might employees of car companies be impacted? <a href="https://news.bloomberglaw.com/daily-labor-report/automakers-shift-to-electric-vehicles-puts-union-jobs-on-line">Bloomberg Law</a> reported, “One-quarter of auto assembly workers could be displaced if U.S. consumers embrace electric cars, according to the Congressional Research Service, given that electric models are simpler to put together than their gas-guzzling predecessors.”</li><li><strong>What are the larger societal trends surrounding this narrative?</strong><br>Much like with statistics, context is key to understanding a story. Be skeptical of any story that doesn’t account for the larger societal trends surrounding the topic. For example, has our mobility story accounted for the chronic debt crisis? Some have speculated that car loan defaults could be the <a href="https://www.bloomberg.com/news/articles/2017-02-21/the-next-financial-crisis-might-be-in-your-driveway">next financial crisis</a>. Has the narrative accounted for <a href="https://www.weforum.org/agenda/2018/08/we-must-get-it-right-with-electric-vehicles-for-the-sake-of-our-planet/">the need to electrify</a> our entire transportation sector and power it with renewable electricity? Has it accounted for the role of public transportation?</li><li><strong>What are alternative narratives?</strong><br>While it’s best for authors to provide some alternative narratives of their own, savvy consumers should consider alternatives to the alternatives. As Peter Schwartz explains in <a href="https://www.penguinrandomhouse.com/books/162919/the-art-of-the-long-view-by-peter-schwartz/">“The Art of the Long View”</a>, it’s impossible to predict the future, but if you can identify a strategy that works in a variety of future scenarios, then you have a solid plan. You’ll still have to make course adjustments, but you have also effectively hedged your bets. In this model, one good counter-narrative can change everything. For example, even in a future where all vehicles are powered by renewable electricity, the marketplace could be radically different depending on whether utility scale generation or micro-grids dominate. The likely answer is a bit of both.</li><li><strong>How does this story fit your own agenda?</strong><br><a href="https://www.imdb.com/title/tt11994750/">Con artists</a> will tell you that the best of them tell their victims what they wanted to hear. Does the story sound perfect? Is it everything you ever wanted? How would you feel if it turned out to be false? Especially in cases where you would be disappointed if the story turned out to be untrue, tread cautiously. Your own emotions may be misleading you to believe this story when you shouldn’t. With mobility, are you invested in oil companies or electric vehicle companies? Are you sentimental about cars? Are you feeling any strong emotions about electric cars?</li><li><strong>Does the story include a range of consequences?<br></strong>As they say, “there is no free lunch”. There will always be a range of negative and positive consequences to any product. And there will be a range of uses by both good and bad actors. A realistic story about the future should account for this range. One technique that can help you develop an understanding of what consequences to look for is <a href="https://medium.com/salesforce-ux/how-to-run-a-consequence-scanning-workshop-4b14792ea987">“consequence scanning”</a>. Even in a future where all vehicles are powered by renewable energy, there will still be a range of consequences. According to the <a href="https://afdc.energy.gov/vehicles/electric_maintenance.html">US Department of Energy</a>, “EVs typically require less maintenance than conventional vehicles.” Will this hurt the job prospects for mechanics?</li></ol><p>This is not a complete list by any means, and I would love to hear if you have methods, frameworks, or ideas for how to detect misleading stories.</p><h3>Prioritize real human connection</h3><p>Designers who talk about storytelling love to emphasize that stories are emotional. It is precisely this emotional power that worries me about stories. When we are feeling intense emotions, we are also least able to make rational decisions. We are least able to discern truth from fiction. By framing the problem around creating stories, there is a risk that we allow the best story to win, when in fact we should let the most accurate and truthful story win.</p><p>I can’t deny that humans love stories and that stories are a powerful method of communication, but I can warn against emphasizing stories and the quality of their telling. As Yowei Shaw of <a href="https://podcasts.apple.com/us/podcast/invisibilia/id953290300?i=1000522475341">Invisibilia</a> says, people are “weaponizing narrative” to advance their agendas precisely because “people feel defenseless against narrative”. In a sort of narrative cold war, “it’s like whoever is the best narrative master will win. Nothing we can do except do it better?”, says Shaw. Telling better stories does not lead to better designs and better outcomes. Better design leads to better outcomes.</p><p>This is why I appreciate the emphasis that <a href="https://trailhead.salesforce.com/en/content/learn/trails/get-to-know-relationship-design">Relationship Design</a> puts on real people. It correctly focuses on these real people rather than on any one particular design methodology and techniques for being more compelling. The goal is to build great products that enhance the relationships between real people who stand at the center of the design process.</p><p>As designers, our role is not to tell stories but to use stories as one method of communication in the process of creating great products and services that bring those people together. By focusing on the experiences of these people, Relationship Design can help ensure that the stories we tell each other remain grounded in reality. And hopefully by thinking critically about those stories we can establish a common truth that leads to great outcomes.</p><p>Stories are powerful tools to convey ideas and create alignment. When told truthfully and with great humility they can be a force for good. Just as easily they can be twisted and tailored to suit any need. Be skeptical when someone starts spinning a yarn and remember to ask questions. Whether it’s in design or real life, we need to develop our skills for how to see through false narratives.</p><h3>Learn More</h3><p><a href="https://medium.com/salesforce-ux/thinking-like-the-machine-using-metrics-to-generate-and-quantify-ux-design-92989ca383b">Thinking Like the Machine: Using Metrics to Generate and Quantify UX Design</a></p><p><a href="https://medium.com/salesforce-ux/the-role-of-design-in-machine-learning-ae968ea90aac">The Role of Design in Machine Learning</a></p><p><a href="https://medium.com/salesforce-ux/ux-prototyping-for-ai-32cd6a72365f">UX Prototyping for AI</a></p><p><a href="https://trailhead.salesforce.com/en/users/salesforceexperience/trailmixes/salesforce-design-strategist-career">Design Strategist Trailmix</a></p><h3>Thanks</h3><p><em>Follow us at</em><a href="http://twitter.com/salesforceux"><em> @SalesforceUX</em></a></p><p><em>Learn more at </em><a href="https://www.salesforce.com/design/overview/"><em>design.salesforce.com</em></a></p><h3>Additional Resources Regarding Stories and Truth</h3><p><a href="https://www.youtube.com/watch?v=Iuven0crywo">Lex Friedman podcast with Ronald Sullivan, “#170 The Ideal of Justice”</a></p><p><a href="https://www.youtube.com/watch?v=ih511T3txGQ">Tim Harford’s “The Data Detective” at The Cato Institute</a></p><p><a href="https://www.wnycstudios.org/podcasts/radiolab/episodes/91612-deception">Radiolab podcast “Deception”</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e4983eded41a" width="1" height="1" alt=""><hr><p><a href="https://medium.com/salesforce-ux/design-stories-and-truth-e4983eded41a">Design Stories and Truth</a> was originally published in <a href="https://medium.com/salesforce-ux">Salesforce Designer</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[UX Prototyping for AI]]></title>
            <link>https://medium.com/salesforce-ux/ux-prototyping-for-ai-32cd6a72365f?source=rss-74a0871f5351------2</link>
            <guid isPermaLink="false">https://medium.com/p/32cd6a72365f</guid>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[salesforce-einstein]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[prototyping]]></category>
            <category><![CDATA[ux-design]]></category>
            <dc:creator><![CDATA[Owen Schoppe]]></dc:creator>
            <pubDate>Mon, 09 Aug 2021 17:00:25 GMT</pubDate>
            <atom:updated>2021-08-09T17:00:25.091Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*FI_xGbUvGBhFPVLS" /></figure><p>In human-centered design and agile software development, it’s hard to overstate the importance of prototyping. Prototypes are incredible, low-investment tools for learning and validation. These preliminary experiences are necessary when it comes to AI given its enormous overhead (e.g. data collection, model building, reliability testing and maintenance). So it makes a lot of sense to prototype the product ahead of time.</p><p>But how can UX teams prototype AI-powered experiences?</p><p>That’s exactly what our team asked while creating <a href="https://medium.com/salesforce-ux/einstein-designer-ai-powered-personalized-design-at-scale-367d71b85a3d">Einstein Designer</a>. Unlike traditional software tools that can be tested with a linear click-prototype, AI tools are frequently open ended. For example: While a file-upload is either uploaded or not, a chat bot or voice assistant needs flexible response options.</p><p>In this article, I’ll discuss six different prototyping methods we employed.</p><h3>AI Prototyping Phases</h3><p>In any AI project there are two major phases (which could happen concurrently): product vision and model development. For each of these two phases there are two broad categories of prototypes: value prototypes and interaction prototypes.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*cZ8eF0eARVNEy6Ho" /><figcaption>Image showing a prototyping framework</figcaption></figure><p>In the product vision phase, prototypes help answer the questions: what product should we make, and how should humans interact with the AI? Prototypes don’t directly help answer this question, but they do help you test your hypotheses. As discussed above, prototypes provide a cheaper alternative to building the full product, allowing your team to explore multiple options and get feedback from stakeholders and users about the potential of each. Answering these questions for the model itself is very similar but more granular. Of all the things a system can do, not all of them will be predictions. Model value prototypes can help you identify the key areas where you need AI vs where a heuristic or a human would be better.</p><p>When it comes to interaction, prototypes can help you understand the possible inputs and how people want to provide them. You can learn how the system should work. The challenge with AI is that how it should work isn’t always the same as how it can work. It’s so easy to design for magic, but some prototypes can help keep our imaginations grounded in reality.</p><h3>Types of AI Prototypes</h3><p>Some are automated such as Input/Output prototypes or Heuristic Systems. Others, like what I call Wizard of Oz or Humans as AI, involve human support. Then there are niche prototypes — including Data Visualization/Storytelling and Constrained Scenarios, which are for specific project needs. Let’s review them all and how our team engaged with each.</p><h4>Input and Output</h4><p>This is one of the most unique prototypes to AI projects. It is also one of the cheapest. In this kind of prototyping, you create samples of inputs and outputs as a means of testing the value of this service.</p><p>Our team did this when we drew samples of design versions we hoped Einstein Designer would generate given an input of some text and an image. To execute this, we simply put them on a slide like the one below and asked customers to give us feedback on how useful they were. This simple method allowed us to learn about how customers consumed, evaluated and compared designs.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*L4qR-pwmCquuCQsu" /><figcaption>Image of design slide prototype showing user feedback</figcaption></figure><h4>Humans as AI</h4><p>The wonderful thing about AI is that each of us is already in possession of the most powerful AI we know of: the human mind. Sure, we can’t do everything machines can (mainly due to scale and throughput issues). However, we can still use our own minds to simulate the output of a machine learning model. If we humans can’t make heads or tails of some inputs, then there is a pretty good chance that you’re going to have a hard time creating a prediction from the data. This allows you to validate whether or not a prediction is valuable if it were possible. Hopefully, you can find patterns and then codify those patterns in a model. This is, after all, what data scientists do every day.</p><p>We tapped humans as AI when we were exploring different ways of predicting font choices from a website. To rapidly experiment with which features were important, we put some sample data in <a href="https://www.sketch.com/">Sketch</a> (below) and asked team members what decisions would each make given the provided inputs. This allowed us to recognize very quickly that absolute font size and relative font scales are both very poor predictors. Instead, we learned we needed to predict some landmarks such as the baseline font size of the brand’s design system.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*IDyF98AH3wnJ7rer" /><figcaption>Image of NYTimes font prediction sketch file showing how different rules lead to different designs</figcaption></figure><h4>Wizard of Oz</h4><p>This prototyping method is similar to the previous one in that humans are used to simulate an AI model. The difference is that companies typically use this either to demo a vision of an experience or to do live user testing of the interactions. The key is that the humans are working live behind a curtain in order to create a responsive experience that appears to be fully functional. Imagine the scene in “Seinfeld” when Kramer pretends to be Moviefone. Other examples would include a remote human operator for either an automated car or automated chat bot.</p><p>On our project, we did some of this by building a code prototype using Chrome extensions. Then we pre-populated it with hand-curated results. The app seen below was used extensively internally to illustrate how the product would work before creating a model.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*jKQvjWakmy6bSbMk" /><figcaption>Image of chrome extension showing how the AI can provide alternative designs that are previewed in the UI</figcaption></figure><h4>Data Visualization and Storytelling</h4><p>While not strictly a prototyping method, these techniques do have a place in the AI prototyping tool kit. Just look at the breadth of sci-fi literature and media. While writers don’t actually build the futuristic robots, they are able to transport us to those futures and help us to explore what is possible, desirable and maybe even likely. A little closer to home is the work of <a href="https://www.hellofosta.com/">Nick Foster</a> with Design Fiction — ”a way to facilitate reliably productive conversations about possible products, services and experiences which yield more habitable near futures.” This can involve films, objects, websites, books or sketches.</p><p>Within our own project, we utilized the power of data visualization and storytelling to help explain the concept of Einstein Designer and how it works. This interactive data visualization — built in collaboration with the data viz wizard <a href="https://truth-and-beauty.net/">Moritz Stefaner</a> — was used at the main Dreamforce keynote to <a href="https://www.youtube.com/watch?v=msNCdAjCaYs&amp;t=4172s">announce</a> Einstein Designer.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*uG7JDYS8wqcrmSmC" /><figcaption>Image of particle animation at Dreamforce ‘19</figcaption></figure><h4>Heuristic Systems</h4><p>Heuristic systems are perhaps the closest thing to what you might normally imagine as a software prototype. They are also on the more expensive side of prototypes to make. These prototypes are built in code. However, instead of employing models, they use a set of heuristic rules that approximate the model output.</p><p>We used these extensively while building Einstein Designer. We built a series of design generators like the one below that tried out various rule-based methods for predicting font styles, layout and even placement. This allowed us to test our UX in a very realistic fashion where users were allowed to upload any image and enter arbitrary text. Through this process, we learned that some of our design-exploration interactions were very hard for users to understand. In later versions we focused more on presenting good alternatives out of the gate and less on having the user navigate the space of designs.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*msSnn0NaR-X_5rZP" /><figcaption>Image of Chrome extension showing heuristic based generation based on slider input</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*c_zVaShi37WhRhWX" /><figcaption>Image of app using heuristic design generation</figcaption></figure><h4>Constrained Scenarios</h4><p>Lastly, I wanted to mention a technique I learned about at a talk by some of the designers behind the “smart-compose” feature in Gmail (below). This technique is closely related to heuristic systems but helps limit the complexity. In their case, they wanted to prototype what it would be like for the user to have real phrases suggested and to try different keyboard interactions. To do this, they needed a real code prototype but obviously couldn’t build the whole model just yet. So they selected a very narrow scenario: the birthday email. This allowed them to solve the problem with brute force. A long list was created of all the possible birthday sentences and phrases a user might enter and they did a simple text comparison to suggest the right response.</p><p>While I didn’t get to use this prototype, what I love about it is the clever way the team constrained the problem so that they could rapidly prototype a solution.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*XMPBKSPTK80LVtK4" /><figcaption>Google smart compose</figcaption></figure><h3>Challenges of AI Prototypes</h3><p>As these different methods illustrate, UX prototyping for AI presents some unique challenges that aren’t present in traditional software and services. I mentioned upfront how the fundamental open-ended format of AI is difficult because it requires handling many possible user inputs with an equally vast number of outputs. I also want to highlight additional bias-related challenge areas that shouldn’t be overlooked.</p><h4>Predictions</h4><p>How do you know how the system will actually respond? It’s not like a classic software product where you might create some sample data for your prototype. Instead, an AI system needs to generate plausible predictions. On the surface, this might seem easy. In fact, it can be so easy that you create predictions that aren’t actually representative of the model output. For this reason, it’s crucial to develop the prototype in tandem with engineers who can help guide the scenario in plausible directions.</p><p>For example, when drawing the prototype-generated designs, we were careful to highlight which properties were modified in Sketch. We took the fonts, font-sizes, colors, and kerning etc directly from the brand’s site. We then worked only with layout and alignment to create the designs. While we could have taken all kinds of liberties that are easy for humans to do, we didn’t because it was important to explore what the likely model output would be.</p><h4>Ethics</h4><p>Finally, we can’t forget to think about ethics. Prototypes don’t have the model’s biases, so we need to explicitly have conversations about model bias and unintended consequences of a product. Prototypes also don’t explicitly reveal the potential negative consequences of a product. However, they can help shape the conversation about negative consequences. Storytelling can be a useful tool to directly explore these consequences. Try having team members write, draw or describe possible scenarios.</p><p>Prototypes are also great for setting context and aligning participants in workshops around an idea. Having been primed, using a workshop methodology like <a href="https://medium.com/salesforce-ux/how-to-run-a-consequence-scanning-workshop-4b14792ea987">consequence scanning</a> can be a great way to talk about ethics. Be sure to include activities that help people consider a wide range of possible outcomes. After all, no one expected <a href="https://en.wikipedia.org/wiki/AlphaGo_versus_Lee_Sedol">Alpha Go to win against Lee Sedol</a> in 2016 but it did. The future has a tendency to sneak up on us.</p><p><a href="https://trailhead.salesforce.com/content/learn/modules/ethics-by-design">Ethics by Design</a></p><p>Now you know more than a few ways that UX teams can prototype AI-powered experiences.</p><p>See what works best for your project and what fidelity meets your needs. Choose from automated or human-supported types, including Input and Output; Humans as AI; Wizard of Oz; Data Visualization and Storytelling; Heuristic Systems; and Constrained Scenarios. If you have alternatives that have worked for you, share in the comments. A little sharing can go a long way.</p><h3>Learn More</h3><p><a href="https://medium.com/salesforce-ux/how-to-build-ethics-into-ai-part-i-bf35494cce9">How to Build Ethics into AI — Part I</a></p><p><a href="https://medium.com/salesforce-ux/how-to-build-ethics-into-ai-part-ii-a563f3372447">How to Build Ethics into AI — Part II</a></p><p><a href="https://medium.com/salesforce-ux/three-fundamentals-of-human-centered-design-in-the-age-of-ai-and-machine-learning-523d9223d44d">Three Fundamentals of Human-Centered Design in the Age of AI and Machine Learning</a></p><p><a href="https://medium.com/salesforce-ux/einstein-designer-ai-powered-personalized-design-at-scale-367d71b85a3d">Einstein Designer — AI-Powered, Personalized Design at Scale</a></p><h3>Thanks</h3><p><a href="https://medium.com/@soenkerohde"><em>Sönke Rohde</em></a><em>, </em><a href="https://medium.com/u/f7c40e693645?source=post_page-----367d71b85a3d----------------------"><em>Jessica Lundin</em></a><em>, </em><a href="https://medium.com/u/a9ed8f22aabb?source=post_page-----367d71b85a3d----------------------"><em>Michael Sollami</em></a><em>, </em><a href="https://medium.com/u/a6216d682b46?source=post_page-----367d71b85a3d----------------------"><em>Alan Ross</em></a><em>, </em><a href="https://medium.com/u/a3129fead82b?source=post_page-----367d71b85a3d----------------------"><em>Brian Lonsdorf</em></a><em>, David Woodward</em></p><p><em>Learn more about Salesforce Design at </em><a href="http://www.salesforce.com/design"><em>www.salesforce.com/design</em></a></p><p><em>Follow us at</em><a href="http://twitter.com/salesforceux"><em> @SalesforceUX</em></a><em>.</em></p><p><em>Check out the </em><a href="http://getslds.com/"><em>Salesforce Lightning Design System</em></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=32cd6a72365f" width="1" height="1" alt=""><hr><p><a href="https://medium.com/salesforce-ux/ux-prototyping-for-ai-32cd6a72365f">UX Prototyping for AI</a> was originally published in <a href="https://medium.com/salesforce-ux">Salesforce Designer</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Machine Learning: Redrawing the Innovation Roadmap]]></title>
            <link>https://medium.com/salesforce-ux/machine-learning-redrawing-the-innovation-roadmap-2f5411c6836a?source=rss-74a0871f5351------2</link>
            <guid isPermaLink="false">https://medium.com/p/2f5411c6836a</guid>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[ux]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[innovation]]></category>
            <category><![CDATA[design]]></category>
            <dc:creator><![CDATA[Owen Schoppe]]></dc:creator>
            <pubDate>Mon, 02 Aug 2021 16:22:14 GMT</pubDate>
            <atom:updated>2021-08-12T16:06:59.517Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*sh84ohImdak2bgMMPr7YzQ.png" /></figure><h3><strong>Sample Machine Learning: Redrawing the Innovation Roadmap</strong></h3><p>Machine learning (ML) technology has the possibility of fundamentally changing how we approach innovation.</p><p>Instead of the traditional moonshot approach (iteratively building/improving features toward a lofty goal), our team has had success using a data-first approach* to meet monumental benchmarks. We honed this direction while helping create <a href="https://medium.com/salesforce-ux/einstein-designer-ai-powered-personalized-design-at-scale-367d71b85a3d">Einstein Designer</a>, an AI-augmented experience for a variety of design tasks.</p><p>There are a few reasons to take a data-first approach: First, it avoids the inefficient rebuilds that the moonshot approach tends to result in. It also acknowledges that ML projects are inherently for experiences with underlying statistical patterns and that those patterns are uncovered through data.</p><p><strong>What does a data-first approach to machine learning look like?</strong></p><p>It starts with collecting and labeling data so you have a minimum viable dataset (MVD) that informs a model. <em>Read on for specifics on how to do both. </em>Then you can build a minimum viable product (MVP) from that.</p><p>Using this method will help your team learn about the problem space, identify canonical edge cases, and even codify some basic rules about the problem. But, most importantly, you’ll exit the process with a valuable dataset that you can use to bootstrap your ML project.</p><p>First, ask: “What data do we already have?”</p><p>Perhaps you have raw data that just isn’t labeled. In that case, you’re in good shape. But what happens when you don’t already have data? How can you bootstrap your project to get it started and build toward a functioning machine learning system? That’s when it’s time to get creative.</p><p>Here, I’ll share how we tackled the two steps in our data-first approach..</p><h3><strong>Step 1: Collect Data</strong></h3><p>We’ve found three broad approaches for collecting data: Public (from available datasets), Harvested (from the environment), and Generated (from users).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*1g7IEcK30aWhX10C" /><figcaption><em>The benefits of varied data-collection techniques for machine learning innovation projects: Public, Harvest, Generate</em></figcaption></figure><h4><strong>Public Data</strong></h4><p>Public datasets form the basis for a ton of the ML projects today. For instance, <a href="https://www.kaggle.com/competitions">Kaggle competitions</a> are famous for providing datasets. In another famous example, many projects have used the Enron <a href="https://qz.com/work/1546565/the-emails-that-brought-down-enron-still-shape-our-daily-lives/">emails</a>, released as part of the court battle in 2002. The sources are endless. A good place to start is by reading research papers related to your subject area to learn what data sources they are using.</p><p>In our project creating Einstein Designer, we found that papers often provide links to the datasets they used. This can be a great starting point as those datasets are typically high quality. For example we found the <a href="http://interactionmining.org/rico">Rico</a> dataset which has extensive data about mobile UIs.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*8nWpOU9he7Si9TQ5" /><figcaption>Image of the rico dataset from <a href="https://interactionmining.org/rico">https://interactionmining.org/rico</a></figcaption></figure><h4><strong>Harvest Data</strong></h4><p>In other cases, the data you need might exist in the environment. That’s when you need to harvest it. Google Maps <a href="https://www.google.com/streetview/explore/">Streetview cars</a> are a good example of this. All the location data exists in the real world. They just need to get it into a machine readable format.</p><p>In our case, we recognized that there is a ton of design data on the web, we just needed to build a crawler to go and collect it. This approach can generate a lot of really excellent data but you also have to contend with the grit and grime of the real world. Even when crawling the web we had to overcome many technical hurdles to find consistent ways of ingesting and labeling this data.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*mLQ6LfqQF1hkUryc" /><figcaption>Screenshot of scraping tool showing how data was collected from websites</figcaption></figure><h4><strong>Generate Data</strong></h4><p>Lastly, there are times when the data needs to be created in the first place. In these cases, you’ll need to employ humans to get to work and help you out. For example, most websites and apps today collect a lot of user data. Every image you upload to social media adds to a giant body of images that those companies can use to <a href="https://medium.com/@thenextcorner/you-are-helping-google-ai-image-recognition-b24d89372b7e">train models</a>. To make this approach work, you typically need a lot of active users.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/844/0*MdaSUl3P7a_7CjZk" /><figcaption>Image of a recaptcha from <a href="https://medium.com/@thenextcorner/you-are-helping-google-ai-image-recognition-b24d89372b7e">https://medium.com/@thenextcorner/you-are-helping-google-ai-image-recognition-b24d89372b7e</a></figcaption></figure><p>We didn’t have access to tons of users we could employ to create data for us but we did use two related approaches to generating data: <a href="https://www.mturk.com/">mechanical turks</a>, and <a href="https://medium.com/salesforce-ux/how-to-generate-synthetic-data-with-sketch-c11a9d6d2531">synthetic data</a>.</p><p>Once you have some raw data, the next move is labeling it. This is both a challenge and an incredible opportunity to set a project up for success.</p><h3><strong>Step 2: Labeling Data</strong></h3><p>Machine learning isn’t magic. It requires labeling the data so that the models can encode the patterns within it. It’s important to have collected your data ahead of time before starting this process to ensure you’re labeling a consistent data set. There are many different ways of labeling data that can help lead to a successful ML model.</p><p>These are perhaps the three most common: Manual (with a mechanical turk), Heuristic (for raw datasets) and Synthetic (for created data).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*KnqtWwkwFi54YI2M" /><figcaption>Image of a comparison table between labeling techniques.</figcaption></figure><h4><strong>Manual</strong></h4><p>The most obvious way to label data is to have humans do it by hand. This has the advantage of letting you leverage human intelligence. You can ask some pretty nuanced questions and still get back labels. While any one human might get things wrong, if you use enough people to label the data then you can either calculate the right answer. At the minimum, you can measure the subjectivity within your data. The team behind <a href="https://hci.stanford.edu/cstr/reports/2010-04.pdf">Bricolage</a> used this technique to have human labelers specify what comparable components are across two different pages. Using this, they were able to discover that the labelers agreed ~78% of the time. The advantage of this is that it also established a benchmark to compare the model performance against. This is great because it can help measure and limit the inherent bias in the dataset. The downsides of this approach are the expense and varying data quality. Using platforms like Amazon Mechanical Turk, you can pay people to do your task or find colleagues to help out.</p><p>We did both — partly relying on in-house expert designers to label data for us. You’ll also need a tool that these labelers use to label the data. While there are off-the-shelf tools that can be very powerful like <a href="https://www.robots.ox.ac.uk/~vgg/software/via/">VGG</a>, we also found value in building our own labeling tools optimized for specific tasks.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*YF8vgwHFVU0ykdTa" /><figcaption>Screenshot of tool showing an image being annotated with a copyspace.</figcaption></figure><h4><strong>Heuristic</strong></h4><p>In some cases, you may be able to automatically label your data instead of hiring humans. This has the obvious advantage of being cheaper. The challenge here is to create a set of rules that can accurately label the data. If it was easy, then you probably wouldn’t need an ML model in the first place. So through this process, it’s recommended to focus on identifying true positives and true negatives. Since we don’t know what false positives and false negatives are, it’s better to filter ambiguous data out of the training set. Or at least label it as ambiguous to prevent introducing noise into your data.</p><p>For our project, we wanted to sort through thousands of web pages and label the parts that were product tiles. To do this, we created a set of rules that correctly identified only product tiles. Though it did miss a few along the way, this wasn’t important because we still collected a lot of good data.</p><p>Be careful though that your rules don’t accidentally introduce additional bias into your training data. One way to help prevent bias is to manually label a small but representative subset of examples. Using this manual data, you can write tests to verify that your rules work as expected. This is just test-driven development but used for the purposes of data gathering and labeling. When labeling product tiles, we took this approach and identified approximately 30 sites. For example: We found a site with a product image that was only 30px square. By writing a test for this case, we could see that our rules were too restrictive and then fixed this issue in our labeling code. In our case, we only labeled true positives but the tests enabled us to have greater confidence. Always follow up this process by inspecting the data to find new false positives and write more tests.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*DTUAcEFCT2_x-d1u" /><figcaption>Image of our test suites</figcaption></figure><h4><strong>Synthetic</strong></h4><p>In the last approach, you both create the data and label it in one step. This has the advantage of being relatively easy to accomplish since you don’t have to deal with the messiness of the real world. The clear disadvantage is that synthetic data runs the risk of having the most bias since it wasn’t derived from real data. You’ll need to pay particular attention to crafting this data set to avoid bias or at least be aware of it.</p><p>To see how we created ours, check out my other <a href="https://medium.com/salesforce-ux/how-to-generate-synthetic-data-with-sketch-c11a9d6d2531">article</a> on creating synthetic data to learn more.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*oGb9eP1tEc_pyhBH" /><figcaption>Tool for generating synthetic banner designs.</figcaption></figure><p>When your data is collected and labeled, it’s time to train your first iteration of the model and make your MVP.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*K1cS449P67hJyEnb" /><figcaption>Diagram: What to build? -&gt; (Collect data -&gt; Create model) -&gt; Build MVP -&gt; Iterate</figcaption></figure><h3><strong>Closing</strong></h3><p>Machine learning technology has the possibility of fundamentally changing how we do innovation. Maybe instead of the moon-shot metaphor, we could think of innovation using machine learning as being more like training a puppy. Unlike building a spaceship in which you might start by building half the systems, with a puppy you don’t start with half a puppy. Instead, you start with a small and slightly unruly version of a complete dog (model). Using this metaphor, your job is not to tightly engineer all of the puppies’ behaviors but to create experiences in which the puppy (model) can collect experiences (data) to learn to become a well-behaved dog. You bring the dog on walks to teach them about cars. You go to the dog park to learn about dogs. You visit friends to help them learn about people. And through it all you reinforce positive behaviors (labeling) so that the puppy will grow into a sociable, friendly, and obedient adult.</p><p>With machine learning we are training our innovations to perform tasks we desire of them. So we need to collect a wide array of unbiased data that has been labeled to reinforce the behaviors we want. And we need to continue to guide our models even after they’re built by maintaining and continuing to train them. Models, unlike traditional algorithms, are never done. There is always room to add more data, more labels, to increase the models performance and reliability.</p><p>In this version of innovation, it all starts with the data.</p><p>**<em>Note: Prior to executing this approach, it’s a good idea to explore the product idea using cheap prototyping methods. Prototyping predictive systems can be a real challenge but using the traditional toolkit of rapid prototyping designers can test out various aspects of the experience and collect data about what products are likely to succeed in the marketplace. Then you’re ready to start.</em></p><h3>Learn More</h3><p><a href="https://medium.com/salesforce-ux/how-to-generate-synthetic-data-with-sketch-c11a9d6d2531">How to Generate Synthetic Data with Sketch</a></p><p><a href="https://medium.com/salesforce-ux/how-to-generate-synthetic-data-with-sketch-c11a9d6d2531">Thinking Like the Machine: Using Metrics to Generate and Quantify UX Design</a></p><p><a href="https://medium.com/salesforce-ux/thinking-like-the-machine-using-metrics-to-generate-and-quantify-ux-design-92989ca383b">The Role of Design in Machine Learning</a></p><h3>Thanks</h3><p><a href="https://medium.com/@soenkerohde"><em>Sönke Rohde</em></a><em>, </em><a href="https://medium.com/u/f7c40e693645?source=post_page-----367d71b85a3d----------------------"><em>Jessica Lundin</em></a><em>, </em><a href="https://medium.com/u/a9ed8f22aabb?source=post_page-----367d71b85a3d----------------------"><em>Michael Sollami</em></a><em>, </em><a href="https://medium.com/u/a6216d682b46?source=post_page-----367d71b85a3d----------------------"><em>Alan Ross</em></a><em>, </em><a href="https://medium.com/u/a3129fead82b?source=post_page-----367d71b85a3d----------------------"><em>Brian Lonsdorf</em></a><em>, David Woodward</em></p><p><em>Learn more at </em><a href="http://www.salesforce.com/design"><em>www.salesforce.com/design</em></a></p><p><em>Follow us at</em><a href="http://twitter.com/salesforceux"><em> @SalesforceUX</em></a><em>.</em></p><p><em>Check out the </em><a href="http://getslds.com/"><em>Salesforce Lightning Design System</em></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=2f5411c6836a" width="1" height="1" alt=""><hr><p><a href="https://medium.com/salesforce-ux/machine-learning-redrawing-the-innovation-roadmap-2f5411c6836a">Machine Learning: Redrawing the Innovation Roadmap</a> was originally published in <a href="https://medium.com/salesforce-ux">Salesforce Designer</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How to Generate Synthetic Data with Sketch]]></title>
            <link>https://medium.com/salesforce-ux/how-to-generate-synthetic-data-with-sketch-c11a9d6d2531?source=rss-74a0871f5351------2</link>
            <guid isPermaLink="false">https://medium.com/p/c11a9d6d2531</guid>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[sketchapp]]></category>
            <category><![CDATA[ux]]></category>
            <category><![CDATA[machine-learning]]></category>
            <dc:creator><![CDATA[Owen Schoppe]]></dc:creator>
            <pubDate>Tue, 18 Aug 2020 18:36:35 GMT</pubDate>
            <atom:updated>2021-08-25T05:29:06.213Z</atom:updated>
            <content:encoded><![CDATA[<p>Excited about synthetic data? Maybe you’ve read my <a href="https://medium.com/salesforce-ux/the-role-of-design-in-machine-learning-ae968ea90aac">article</a> about how design fits into the machine learning process, and the power of synthetic data. When you don’t have access to a clean public dataset, generating synthetic data can be a powerful way to bootstrap your models. And synthetic data has its advantages. You spend much less time on data cleaning and can reduce bias during data generation by including a balanced number of examples. And Sketch randomly distributes images and text values to avoid bias.</p><p>Want to create some synthetic data of your own? This tutorial shows you how to create synthetic data to train a classifier that can answer that age-old question, “what is good design?” by predicting whether a design is good or bad. You can then extend these techniques to any UI component — for example, training a model to classify component types, or classify components by state. The possibilities are endless.</p><p>As an example, let’s generate a sample dataset of product tiles.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/461/0*ku0DWjTCfpQe-DbG" /><figcaption><em>Example of good and bad tiles</em></figcaption></figure><h3>Setup</h3><p>This tutorial relies on <a href="https://www.sketch.com/">Sketch</a> from Bohemian Coding; I recommend installing the latest version (≥63), along with two plugins that can make this process more efficient:</p><ul><li><a href="https://www.invisionapp.com/craft">Craft</a> by Invision</li><li><a href="https://rodi01.github.io/RenameIt/">Rename It</a> by Rodrigo Soares</li></ul><h3>Add Sketch Data</h3><p>Now we need to collect the input data we’ll use to create our synthetic data. We’re creating product tiles, so we need product names, prices, and product images. To quote the Sketch <a href="https://www.sketch.com/docs/data/">documentation</a>, “To create your own text Data source, create a plain text (.txt) file with each data value on a new line. For a new image Data source … create a folder with all the different images you want to use inside and add it via the Data tab in Preferences.”</p><p>To start, create a folder next to your Sketch file called Project Data. Create two plain-text files in TextEdit, named product_names.txt and product_prices.txt. Add ~25 entries in each, and save them in the Project Data folder.</p><p>To avoid introducing bias, make sure the values you create express a full range of data. For example. if all of your prices are under $100, or all in one currency, your model won’t perform well if it faces data that exceeds these limits.</p><p>Next, add 25 product images to a folder called product_images inside the Project Data folder.</p><p>To add these files as Sketch data sources, open Preferences and click the Data tab, then the Add Data button. Select the two text files and the folder. Click Done, and voilà!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*C38AaIbUv0QXQpSU" /><figcaption><em>Adding Sketch data sources</em></figcaption></figure><h3>Create “Good” Tiles</h3><p>Down to business. In your Sketch file, create a variety of product tiles. Each one should use the same data, but vary in design, while still adhering to your definition of good design. If you have a well-defined brand standard, stick to its rules. Don’t worry, you’ll get an opportunity to break the rules soon.</p><p>We aren’t using nested symbols here, but I recommend them if you want to incorporate sublayouts, such as inline list price and original prices. Don’t use an artboard for each product tile — it’s easier if they are regular groups. As you build your tiles, be consistent in naming product image, product name, and price layers. Layer names become labels in the synthetic data you’ll use to train your model.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*_ZVLLJCbotPVPS0u" /><figcaption><em>Basic product tile with layer names</em></figcaption></figure><p>Let’s start by drawing a single tile. Remember to bind each text layer to Sketch data — when you add a text element for the name, use the Data menu to fill the layer with a product_name from your text file.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*EJ7OfrKN-WlkzgMm" /><figcaption><em>Sketch Data menu</em></figcaption></figure><p>To create an image, draw a rectangle, then use the Data menu to select a product_image data source. This fills the background with an image, and crops it to fit the rectangle — making it easier to handle images of different sizes. Make sure to group your layers.</p><p>We want to use Sketch’s resizing and <a href="https://www.sketch.com/features/smart-layout">smart layout</a> properties to ensure that each tile scales gracefully for every text value in your datasets. Use these properties with any nested symbols as well. Carefully consider edge cases — any bugs will reduce the accuracy of your model.</p><p>To create each new tile, duplicate this first tile — your layers will be named correctly and your data attached properly. Make as many tiles as you can; 50 is a solid start.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1008/0*Uj1LozpHqUWlglw9" /><figcaption><em>Giving tiles unique names</em></figcaption></figure><p>Now it’s time to organize and name your tiles. Select all tiles, select Align Left, then Tidy. Set vertical spacing to 50px. This should give you a neat single column of tiles. Reselect all tiles and select RenameIt, then enter <strong>Product%NNNN</strong> to give each of your tiles a unique name. Add enough Ns to ensure a unique name for each tile.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*CZIo_FXLZ5Vnq0hE" /><figcaption><em>Layer names</em></figcaption></figure><h3>Create “Bad” Tiles</h3><p>The data to train your classifier should have as many bad tiles as good ones. These are product tile designs that don’t meet your design standards. Got well-defined brand standards for fonts and colors? This is your opportunity to break the rules.</p><p>Start by selecting all the good tiles. Duplicate them into a new column below the original one, far enough away that the divide is clear.</p><p>With all the good tiles selected, click RenameIt and enter <strong>%*-Good</strong>. This appends <em>-Good</em> to your original names. Do the same for the bad tiles, this time with <strong>%*-Bad</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1008/0*Mspt40auDP8C1N4R" /><figcaption><em>Tagging bad tiles</em></figcaption></figure><p>Now comes the fun part. For each bad tile, break the rules in a new way. Make the text overlap, or mess up the alignment. Get creative! As you do this, keep track of how you “break” each tile, and add that data to its name — for example, <em>Product0001-Bad-misaligned</em>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*t30uzL4HTdFXD0YD" /><figcaption><em>Stacked columns and layer names</em></figcaption></figure><p>As with the good tiles, do your best to support the range of data in your text files. If you overlap text, for example, make sure it will still overlap even if a shorter value is used. All the bad tiles must be bad!</p><h3>Duplicate</h3><p>Time for your hard work to pay off! Select all your tiles, then in the Craft plugin, select Duplicate. Since we’ve been organizing into a single column, use the horizontal checkbox and set the number to match your number or images and product names.</p><p>Next, delete the layers and groups that Craft added. Select the whole matrix of tiles you’ve made, and click Ungroup twice. Then delete the Duplicate Control layer.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*e5-IXFhbHLb29RuX" /><figcaption><em>Duplicate menu</em></figcaption></figure><p>Now select all the tiles again. In the Data menu, select Refresh Data.</p><p>Magic! You should now have a massive wall of 2500 unique product tiles.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*LmO1P3dXMfT90Vki" /><figcaption><em>Sketch Data menu — Refresh Data</em></figcaption></figure><h3>Export Images</h3><p>Ok, let’s save these tiles so you can start training models.</p><p>First, let’s use RenameIt to give each tile a unique name, so it saves properly. Select all tiles, click <strong>RenameIt</strong>, and enter <em>%NNNNNN-%*</em>. This prepends a unique ID to each tile, while preserving the template name and other labels.</p><p>In the properties panel, mark all tiles as exportable. In Sketch, you can choose export resolution; here I recommend 1x.</p><p>Click <strong>Export Selected</strong> and watch the data flow.</p><p>Later, when processing these images, you can parse the final file name, using “-” as a delimiter to get the unique ID, template ID, quality label, and reasons why a tile is bad.</p><h3>JSON Data</h3><p>In machine learning, images are great, but structured data is super useful. Thankfully, Sketch files are all JSON under the hood. The trick is to unzip the file. (If you’re using any symbols in your Sketch file, now is the time to detach them. The simplest way is to duplicate your file and delete the Symbols page to flatten the whole file.)</p><p>On a Mac, pop open your Terminal. Type <em>unzip</em> and a space. Drag your flattened Sketch file onto the terminal window, and press Enter. You should see the contents of your Sketch file in the same folder you’ve been working in.</p><p>Inside the new Pages folder, you should see a .json file with a long name, which contains all the JSON describing your tiles in a property called <em>layers</em> — including layer names showing which properties belong to which layers. (For more on file schemas, see the Sketch <a href="https://developer.sketch.com/file-format/">documentation</a>.)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*vuH4Bp0iPtIwdw5Q" /><figcaption><em>File system with JSON data</em></figcaption></figure><p>And that’s it. You’re now the proud owner of several thousand rows of synthetic training data. As you can see, it’s relatively easy to add more rows or more data — so grow your dataset to your heart’s content.</p><p>Happy modeling!</p><h3>Thanks</h3><p><a href="https://medium.com/@soenkerohde"><em>Sönke Rohde</em></a><em>, </em><a href="https://medium.com/u/f7c40e693645?source=post_page-----367d71b85a3d----------------------"><em>Jessica Lundin</em></a><em>, </em><a href="https://medium.com/u/a9ed8f22aabb?source=post_page-----367d71b85a3d----------------------"><em>Michael Sollami</em></a><em>, </em><a href="https://medium.com/u/a6216d682b46?source=post_page-----367d71b85a3d----------------------"><em>Alan Ross</em></a><em>, </em><a href="https://medium.com/u/a3129fead82b?source=post_page-----367d71b85a3d----------------------"><em>Brian Lonsdorf</em></a><em>, David Woodward</em></p><p><em>Follow us at</em><a href="http://twitter.com/salesforceux"><em> @SalesforceUX</em></a><em>.</em></p><p><em>Want to work with us? Contact us at </em><a href="mailto:uxcareers@salesforce.com"><em>uxcareers@salesforce.com</em></a><em>.</em></p><p><em>Check out the </em><a href="http://getslds.com/"><em>Salesforce Lightning Design System</em></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c11a9d6d2531" width="1" height="1" alt=""><hr><p><a href="https://medium.com/salesforce-ux/how-to-generate-synthetic-data-with-sketch-c11a9d6d2531">How to Generate Synthetic Data with Sketch</a> was originally published in <a href="https://medium.com/salesforce-ux">Salesforce Designer</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The Role of Design in Machine Learning]]></title>
            <link>https://medium.com/salesforce-ux/the-role-of-design-in-machine-learning-ae968ea90aac?source=rss-74a0871f5351------2</link>
            <guid isPermaLink="false">https://medium.com/p/ae968ea90aac</guid>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[ux]]></category>
            <category><![CDATA[design-process]]></category>
            <dc:creator><![CDATA[Owen Schoppe]]></dc:creator>
            <pubDate>Tue, 04 Aug 2020 16:24:19 GMT</pubDate>
            <atom:updated>2020-09-09T16:20:53.483Z</atom:updated>
            <content:encoded><![CDATA[<p>Today, machine learning (ML) is a component of practically all new software products. For designers there is sometimes a question, “what is the role of design in machine learning?” How can designers engage in the process of creating a machine learning powered product? We’ve been working on Salesforce’s new <a href="https://www.youtube.com/watch?v=msNCdAjCaYs&amp;t=1h9m32s">Einstein Designer</a> tool, which automatically generates design variations to improve UX. While this project was specifically focused on ML for design, what we learned is more broadly applicable. During the Einstein Designer project our team of hybrid designers/developers/data scientists discovered new ways of incorporating design techniques into ML projects.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*Ed2uSoiCUsJJ_-6R" /><figcaption><em>Overview of the machine learning development process</em></figcaption></figure><p>When you’re working with machine learning, the traditional functions of design — crafting a product vision and communicating with stakeholders — apply, but ML also brings new factors to the table. This article explores how design techniques can be applied in ML development At base, it’s all about data — getting it (a lot of it!), cleaning it, understanding it, and ultimately building software on top of it. The process goes something like this:</p><ol><li>Collecting data</li><li>Visualizing and cleaning that data</li><li>Creating models and algorithms</li><li>Evaluating those models and algorithms</li></ol><h3>Collecting Data</h3><p>Design can contribute to data collection in several ways; the most direct is designing data collection tools. Think of this as a subset of product design, with a few key distinctions. Data collection tools are usually internal-facing, with the product team as the user. Productivity is key, and the tool needs to evolve along with the team. Data collection is also part of the discovery process. Labels and visualizations have a huge impact on team conversations and direction, and clear and effective UIs are crucial.</p><p>While in an ideal world, development teams have access to large, clean, public datasets, we often need to collect our own data. This part of the process is rarely published or discussed; most teams create their own solutions, which add time and cost. Sometimes you’ll have to log data over a period of time. Other times, the raw bytes exist but must be gathered into a unified dataset — making collection tools extremely valuable.</p><p>To figure out what features you need in a collection tool, view the problem through a product-design lens. For Einstein Designer, for example, we built a tool that reads a webpage, takes a screenshot, and uses the information in it to create a high-level preview of the site’s design system. We’ve run this process on many sites, and repeat it as we learn more about what information is important, so a tool that makes it more efficient was critical.</p><p>Some design contributions are more elemental. Take button and section labels, which often include critical terminology. Making them clear and consistent helps clarify design problems. In our data collection tool, we labeled one of the matrices and the list of individual text styles “palette,” which helped team members understand the scope of that term and differentiated it from other key concepts.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*0NDqD2ju0hKY5lAV" /><figcaption><em>Applying clear, consistent labels to tool elements</em></figcaption></figure><p>Data collected for machine learning is often unlabeled, lacking descriptors telling how to categorize it. For example, we might have a pile of images, but no descriptors about what they contain — e.g., cats or dogs. Often, humans must label the data.</p><p>To expedite this process for Einstein Designer, we built a game-like experience in which human users were challenged to classify product tile designs as good or bad, using keyboard arrow keys. Design quality was then defined by an image’s aggregate score. As designers, we contributed to this process by creating a a clear, functional UI and making the evaluation process as seamless as possible. The simpler the interaction, the more images users could evaluate. In this case, speed also forced users to make intuitive judgments. Since consumer users will also be making split-second decisions, this helped create analogous data.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*w2lMrzYjrSJ6wyXP8c_LpA.png" /><figcaption><em>Product tile classification training game</em></figcaption></figure><p>Another exciting area of machine learning is <strong>synthetic data</strong>. Constructed to reflect expectations for real data, it’s used to bootstrap ML models before you have access to a large real dataset. For Einstein Designer, where we’re training models to understand design, we’re lucky to have <a href="https://www.sketch.com/">Sketch</a>, a powerful tool for generating new designs that can provide both an image of the generated design and a JSON representation that closely mirrors collected web data. We first train models on synthetic Sketch data, then later augment those same models with real data from the web.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*LIS0BI8xMunXy8UY" /><figcaption><em>The Sketch app interface showing synthetic data</em></figcaption></figure><p>We used Sketch to create 50 design templates, making heavy use of symbols and auto-layouts, so they’d still look good as the data changed — a process much like real web design engineering. We next used Sketch’s data features to wire up the templates with custom values. For each template we created good and bad versions, breaking the design in some specific way, such as overlapping or misaligned text. We then cloned these 25 times to generate 2500 labeled examples (50X2X25 = 2500). Each clone with attached Sketch data creates a unique example, resulting in a balanced dataset. Finally, we systematically labeled all layers.</p><h3>Cleaning Data</h3><p>The next step in ML development is cleaning your data. If you’re using synthetic data, this is already done — otherwise, some cleaning is necessary. Either way, visualizing the data will help you understand what’s actually in there.</p><p>Here again, designers have valuable skills to bring to the table. Whether you’re drawing possible plots on a whiteboard or creating them with Python or D3, you can use the design process to think through visualizations.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*XSLlV6nl2rgHgUCFHLNs_g.png" /><figcaption><em>Visualization of colors across 1000 top websites, by Moritz Stefaner.</em></figcaption></figure><h3>Creating Models</h3><p>Once you have a clean data set and an understanding of its contents, the next step is to create algorithms or models based on your insights. While it can be tempting to jump straight into code and start training models, we’ve found it useful to first use lo-fi design prototypes to try out algorithms. For example, we prototyped the output of our generative design tool by simply creating a matrix of design options on a slide. We then asked our customers to eliminate any designs that didn’t meet their brand guidelines. This gave us confidence in the product requirements for our service and helped us understand what actions users might want to take.</p><p>You can also prototype the algorithm itself, to understand what kinds of predictions might be possible with given data. For example, we wanted to train a model to understand a brand’s existing style guide. We could collect individual styles used on a site, but wanted to understand how those styles work together. We realized we could prototype multiple approaches to this task and inform our intuition about how to use styles appropriately just by drawing them.</p><p>We created input data and wrote down the rules of the proposed algorithm, which team members then executed manually in Sketch. This process revealed that creating pairs of styles that follow each other in the original page was the best way to understand relationships between designs. It also gave us the confidence to start automating style relationship collection and further refine our methods.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*ZMDVVdzmUtzWsfqt" /><figcaption><em>Sketch algorithm prototype</em></figcaption></figure><p>This exercise also supported our intuition that certain algorithms wouldn’t work. Humans can’t perfectly simulate a machine learning algorithm, but machine learning isn’t magic; there must be some underlying pattern or information that tells the algorithm what to do. For example, we wanted to know how little information the design generator would need to pick an appropriate font size. We asked team members to draw designs based solely on data type and place in the design hierarchy, and quickly discovered that it’s necessary to know more about the values. Like a human designer, to make appropriate choices, the algorithm needs to know the approximate amount of text in each field.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*dLAYE3jke6UVNUHv69EL_Q.png" /><figcaption><em>Whiteboard and sticky notes from manual algorithm exercises</em></figcaption></figure><h3>Evaluating Models</h3><p>Once you’ve created your algorithms and models, you need to identify, learn from, and correct mistakes and biases. Design can play an important role here, in creating tools to streamline the evaluation process.</p><p>For Einstein Designer, we needed to evaluate the output of our generative models. While there’s no easy way to automate scoring the quality of design, we could build a tool for evaluating the results. Our process drew on best practices from user research and design leaders including Charles Owens of Chicago’s IIT Institute of Design and Miles and Huberman’s <a href="https://us.sagepub.com/en-us/nam/qualitative-data-analysis/book246128"><em>Qualitative Data Analysis</em></a>.</p><p>First we created a tool that would allow everyone on the team to visualize and review the same designs. It codified a set of test cases, created standardized inputs for each, and let us consistently test our system. Unlike in an actual product, where users should see only the highest quality output, it showed the model’s complete output to help us understand how it was functioning.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Z1ru4NZGW0asvrpfE3SKzQ.png" /><figcaption><em>Our model visualization and review tool</em></figcaption></figure><p>Next, each member of the team used the tool to independently rank designs, much as researchers might code a transcript to quantify qualitative data.</p><p>In Owen’s IIT Structured Planning course, for example, each student is asked to rank the relatedness of individual topics. The resulting data is then combined, and used to inform which themes are most central to a design project. Standardizing the questions students ask when comparing topics makes it possible to distribute work and cluster and compare the results. And having multiple students rank the same data helps reduce the impact of individual bias.</p><p>We took the same approach, having each team member rank the designs, then combining results to generate a more objective view of design quality, an inherently subjective topic. Repeating this process at the end of each design sprint helped us track our progress toward the goal of a robust design generation product.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/952/0*9lcr7B81STx1MKrN" /><figcaption><em>Spreadsheet tracking team members’ rankings</em></figcaption></figure><p>As machine learning becomes ever more present in product design, remember to consider how design can play a role. The core design skills such as identifying and communicating needs, visualizing data, prototyping, building tools, and doing research all play important roles in the core machine learning process. Most of all, remember that the process is collaborative, everyone can participate, and more perspectives lead to better products.</p><h3>Thanks</h3><p><a href="https://medium.com/@soenkerohde"><em>Sönke Rohde</em></a><em>, </em><a href="https://medium.com/u/f7c40e693645?source=post_page-----367d71b85a3d----------------------"><em>Jessica Lundin</em></a><em>, </em><a href="https://medium.com/u/a9ed8f22aabb?source=post_page-----367d71b85a3d----------------------"><em>Michael Sollami</em></a><em>, </em><a href="https://medium.com/@tsheiner"><em>Tim Sheiner</em></a><em>, </em><a href="https://medium.com/u/a6216d682b46?source=post_page-----367d71b85a3d----------------------"><em>Alan Ross</em></a><em>, </em><a href="https://medium.com/u/a3129fead82b?source=post_page-----367d71b85a3d----------------------"><em>Brian Lonsdorf</em></a><em>, David Woodward</em></p><p><em>Follow us at</em><a href="http://twitter.com/salesforceux"><em> @SalesforceUX</em></a><em>.</em></p><p><em>Want to work with us? Contact us at </em><a href="mailto:uxcareers@salesforce.com"><em>uxcareers@salesforce.com</em></a><em>.</em></p><p><em>Check out the </em><a href="http://getslds.com/"><em>Salesforce Lightning Design System</em></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ae968ea90aac" width="1" height="1" alt=""><hr><p><a href="https://medium.com/salesforce-ux/the-role-of-design-in-machine-learning-ae968ea90aac">The Role of Design in Machine Learning</a> was originally published in <a href="https://medium.com/salesforce-ux">Salesforce Designer</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Thinking Like the Machine: Using Metrics to Generate and Quantify UX Design]]></title>
            <link>https://medium.com/salesforce-ux/thinking-like-the-machine-using-metrics-to-generate-and-quantify-ux-design-92989ca383b?source=rss-74a0871f5351------2</link>
            <guid isPermaLink="false">https://medium.com/p/92989ca383b</guid>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[ux]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[sketch]]></category>
            <dc:creator><![CDATA[Owen Schoppe]]></dc:creator>
            <pubDate>Fri, 24 Jul 2020 17:14:33 GMT</pubDate>
            <atom:updated>2020-09-09T16:23:16.166Z</atom:updated>
            <content:encoded><![CDATA[<p>In the popular imagination, there’s still a wide gulf between machine-generated content and human creativity. But that gulf is narrowing as architects, product designers, filmmakers, and a wide range of other creative professionals use <a href="https://en.wikipedia.org/wiki/Generative_design">generative design</a> to create and iterate on design possibilities.</p><p>UX design is no exception. Over the last year, Salesforce’s Einstein Designer team has been working to create models and algorithms that generate design variations, which human designers can adapt or riff on, speeding the design process and helping designers stretch their creative muscles. Our vision is to create multiple machine-learning models that can help people and companies create better designs, faster. Even professional designers can benefit from such tools, which accelerate the design process and free up designers to focus on user needs and higher-level problem solving, improving the user experience.</p><p>Impressive goals. But first we needed to build the models — and to do that, we had to think like the machine.</p><h3>The Challenge of Quantifying Design</h3><p>When taking on a machine learning problem, one of the first questions to ask is, “What data do we have?” And the kind of data we needed — codified design rules presented in ways the machine can understand — wasn’t exactly hanging out in a large, publicly available database, ready to hop into our models. We had to create it ourselves. We thought more deeply about how to generate data about design that we could use to train models, and soon realized that what we needed were <em>quantitative ways to measure design</em>.</p><p>OK, measuring a creative process that blends the intuitive and the practical. No problem, right?</p><p>One natural place to look, we thought, would be the design curriculum, where foundational principles such as <a href="https://www.creativebloq.com/graphic-design/gestalt-theory-10134960">Gestalt theory</a> could help us measure aspects of design. In practice, however, we found these principles to be too fine-grained, and too tied to human perception. It’s easy for a human to identify a figure on a ground, for example, but it turns out to be ridiculously hard to create a computational model of that phenomenon. Just look at the decades of work in computer vision it’s taken to get computers to identify objects in photos with some level of accuracy.</p><p>What we needed instead, we realized, were metrics that are measurable <em>in the design itself</em>.</p><h3>A Search for Metrics</h3><p>So who’s successfully measuring aspects of UX design? That question led us to the accessibility community, which has developed a robust set of metrics for evaluating design standards. For example, color contrast is a well-defined metric that measures and assesses the readability of any given piece of text. But while accessibility metrics are fantastic starting points, and must be integrated into any generative design system, they aren’t sufficient to fully measure a design.</p><p>Design is fundamentally a method for organizing information for communication. So to quantify a design, we need metrics that capture how its information is organized. With this idea as our guide, the Einstein Design team identified three major aspects of design that can be measured and used to express that design’s intent: <strong>grouping</strong>, <strong>prominence</strong>, and <strong>coding</strong>.</p><p><strong>Grouping</strong> is the practice of sorting aspects of a design into groups based on their relationships. For example, we might group a title and body text, or an image and its caption. Together these two groups combine to form a larger grouping — an article tile.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*rp8UGd-xZvOP7ccx" /><figcaption><em>Grouped article tiles, each with nested groups of design elements</em></figcaption></figure><p><strong>Prominence</strong> describes perceptual relationships between elements and identifies a hierarchy of perception, in which the controlling element is perceived first. Prominences can be represented in a tree-like information hierarchy. For example, a title should ideally be seen before its supporting paragraph, which in turn is seen before the associated image caption.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*0b0bRDtE8VzlMMnx" /><figcaption><em>Tile elements, numbered in order of prominence</em></figcaption></figure><p><strong>Coding</strong> is the use of symbolic references to associate an element with a class of elements. Coding creates meaning without using words. For example, a blue rectangle with rounded corners and white text tells users that a design element is a button. In early UX design, <a href="https://www.interaction-design.org/literature/topics/skeuomorphism">skeuomorphic elements</a> taught users what they meant using the design language of the analog world.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/988/0*dg0Azda5qLUx4Z1y" /><figcaption><em>Representative button designs of the last 20 years</em></figcaption></figure><h3>Measuring Metrics</h3><p>Ok, now that we’ve identified these three important metrics, how do we measure them?</p><h4>Grouping</h4><p>With grouping, our measurement work was partially done — HTML is fundamentally a tree structure that describes the grouping of elements. The problem here: Data collected from the web is noisy. There are hundreds of ways to build a website, and web design techniques are becoming ever more complex and diverse. And while it would be awesome if every web page featured perfect semantic markup, the reality is more sobering. So on top of the HTML information for each web page we analyzed, we analyzed pixel distance, element alignment, and a handful of other heuristics. With this data set, we built an initial grouping metric that we used to bootstrap our data collection process.</p><p>When measuring any design metric, you also need a way to quantify and analyze your accuracy, so you know how to improve your metric. We validated the direction by having human testers identify related text elements. The team behind <a href="https://hci.stanford.edu/publications/2011/Bricolage/Bricolage-CHI2011.pdf">Bricolage</a> used a similar method, asking multiple humans to manually label data, then comparing agreement between individuals to create a baseline accuracy for the metric. The benchmark for the automated solution is set by human testers who agreed on ~70% of a design’s labels. In essence, this is a way to separate objective and subjective aspects of design.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*KZt8VEc12ptkMfjn" /><figcaption><em>Matrix and arc graph representing design element grouping. Visualizations by Moritz Stefaner.</em></figcaption></figure><h4>Prominence</h4><p>Like grouping, prominence is defined by a combination of subjective and objective qualities. We started by evaluating text prominence, developing a scoring method designed to sort text styles from most to least prominent. Using font size, font weight, and text/background contrast, we created a useful approximation; while individual text comparisons may be debatable, most people would find the text at the top of the list more prominent than that at the bottom. Most important, a rudimentary metric like this one can be used to bootstrap more sophisticated models. Here again, we created tools that let human testers compare the prominence of two pieces of text, and used the results to generate a baseline accuracy metric.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*38Hs7_R-E4V3bSTa3otZDw.png" /><figcaption>Sorted font list. Visualizations <em>by Moritz Stefaner.</em></figcaption></figure><p>This process revealed one immediate limitation: Prominence is highly contextual. Placed side by side, a bold font is more visible than a thin font. But a thin font that is large enough, with enough space around it, can be more eye-catching than the bold text. Color is another factor. Generally red is more eye-catching than other colors, but on a site where red is used frequently, a complementary green will stand out. We can use computer vision models to estimate visual salience and account for many such contextual effects.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/971/0*h9X5T8xFjEKFPa-P" /><figcaption><em>Heat map of an advertising photo measuring visual prominence</em></figcaption></figure><h4>Coding</h4><p>With coding, the play of subjectivity and objectivity is driven by viewer experience. For example, with the transition from skeuomorphic to flat design, users have become accustomed to a new UI language. Coding is highly dependent on the design zeitgeist: For someone to think that something looks like a button, they first need to have experienced similar buttons. This raises the possibility that, as in fast fashion, visual designers could plot the evolution of button design over the decades, then project forward to predict the next big style.</p><p>In one of our first attempts at measuring coding, we took screenshots of all Salesforce Lightning Design System (SLDS) components, clustered them based on visual appearance, and used our knowledge of what each one is and does to generate a rich labeled dataset. We can use this to create models that generate designs for new components, that look like other components with similar functionality. For example, when generating designs with buttons, a model could ensure that the new buttons appear similar to those in the SLDS system, without explicitly limiting the generator to their templates.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/807/1*7REGKhOfMoTe3a3Lth4L8w.png" /><figcaption><em>Visual map of component clusters for use in coding. Visualization by Moritz Stefaner.</em></figcaption></figure><h3><strong>A foundation for quantifying design success</strong></h3><p>These three metrics — grouping, prominence, and coding — lay a foundation for quantifying design, and eventually for building machines that know how to design for humans. The resulting models crystalize the objective aspects of design while leaving room for designers’, and users’ subjective perception. Building on concepts at the root of accessibility, they offer measurable metrics and tools that people and companies can use to create humanist, human-friendly designs that communicate their function clearly and consistently.</p><h3>Thanks</h3><p><a href="https://medium.com/@soenkerohde"><em>Sönke Rohde</em></a><em>, </em><a href="https://medium.com/u/f7c40e693645?source=post_page-----367d71b85a3d----------------------"><em>Jessica Lundin</em></a><em>, </em><a href="https://medium.com/u/a9ed8f22aabb?source=post_page-----367d71b85a3d----------------------"><em>Michael Sollami</em></a><em>, </em><a href="https://medium.com/@tsheiner"><em>Tim Sheiner</em></a><em>, </em><a href="https://medium.com/u/a6216d682b46?source=post_page-----367d71b85a3d----------------------"><em>Alan Ross</em></a><em>, </em><a href="https://medium.com/u/a3129fead82b?source=post_page-----367d71b85a3d----------------------"><em>Brian Lonsdorf</em></a><em>, David Woodward</em></p><p><em>Follow us at</em><a href="http://twitter.com/salesforceux"><em> @SalesforceUX</em></a><em>.</em></p><p><em>Want to work with us? Contact us at </em><a href="mailto:uxcareers@salesforce.com"><em>uxcareers@salesforce.com</em></a><em>.</em></p><p><em>Check out the </em><a href="http://getslds.com/"><em>Salesforce Lightning Design System</em></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=92989ca383b" width="1" height="1" alt=""><hr><p><a href="https://medium.com/salesforce-ux/thinking-like-the-machine-using-metrics-to-generate-and-quantify-ux-design-92989ca383b">Thinking Like the Machine: Using Metrics to Generate and Quantify UX Design</a> was originally published in <a href="https://medium.com/salesforce-ux">Salesforce Designer</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>