<?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>Forem: Kelly Harrop</title>
    <description>The latest articles on Forem by Kelly Harrop (@kellycodeschaos).</description>
    <link>https://forem.com/kellycodeschaos</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%2F143595%2Ff6e381a5-c102-45a7-b97b-4e249b802fa8.jpg</url>
      <title>Forem: Kelly Harrop</title>
      <link>https://forem.com/kellycodeschaos</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/kellycodeschaos"/>
    <language>en</language>
    <item>
      <title>UX Engineering for Design Systems</title>
      <dc:creator>Kelly Harrop</dc:creator>
      <pubDate>Wed, 10 Feb 2021 17:26:35 +0000</pubDate>
      <link>https://forem.com/kellycodeschaos/ux-engineering-for-design-systems-274d</link>
      <guid>https://forem.com/kellycodeschaos/ux-engineering-for-design-systems-274d</guid>
      <description>&lt;p&gt;Because UX Engineering is a relatively new role and the responsibilities can widely shift depending on the company, it can be challenging to explain to folks what we actually do for a living.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's a UX Engineer?
&lt;/h2&gt;

&lt;p&gt;Generally speaking, a UXE (User Experience Engineer) is someone who uses design thinking and user behavioral data to implement solutions with code.&lt;/p&gt;

&lt;p&gt;A UXE's skills can be considered a subset of frontend development in that they are focused more on the &lt;a href="https://bradfrost.com/blog/post/frontend-design-react-and-a-bridge-over-the-great-divide/"&gt;front of frontend&lt;/a&gt; and focus on translating design into code as close as possible.&lt;/p&gt;

&lt;p&gt;While this role seems like a perfect fit for design systems, UXE's can flourish in any team that requires close collaboration between design and development.&lt;/p&gt;

&lt;h2&gt;
  
  
  Facilitating design alignment
&lt;/h2&gt;

&lt;p&gt;Our design team includes representation from each of our business units, to make sure each product has voice within the system.&lt;/p&gt;

&lt;p&gt;One of my main responsibilities is to ensure our customers have consistent experiences. This means that we need a shared, common understanding of how a component should look and function in any platform and product.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4wkoCGnK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images.unsplash.com/photo-1559526324-c1f275fbfa32%3Fixid%3DMXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%253D%26ixlib%3Drb-1.2.1%26auto%3Dformat%26fit%3Dcrop%26w%3D1350%26q%3D80" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4wkoCGnK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images.unsplash.com/photo-1559526324-c1f275fbfa32%3Fixid%3DMXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%253D%26ixlib%3Drb-1.2.1%26auto%3Dformat%26fit%3Dcrop%26w%3D1350%26q%3D80" alt="Someone holding a phone with a laptop in the background"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To help designers on our team understand which experiences are disparate amongst our products, we needed to establish (and commit to) explicit attributes within our design specs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Anatomy&lt;/code&gt; : How we reference each element&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;States&lt;/code&gt; : What happens during a user interaction&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Variants&lt;/code&gt; : Alternative forms of the component&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Configurations&lt;/code&gt; : Supported options that end-users can choose from&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Standard/Defaults&lt;/code&gt; : What comes out of the box&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Creating a template in Figma with corresponding visuals for each business unit has been a great way to get buy-in for alignment.&lt;/p&gt;

&lt;p&gt;As a UXE, it is also my responsibility to help designers understand how previous implementation may not have matched the original spec, and to create a plan to get us to our desired outcome.&lt;/p&gt;

&lt;h2&gt;
  
  
  Establishing constraints
&lt;/h2&gt;

&lt;p&gt;When designing a component, it can be easy (and fun) to hand-pick certain values. It's also easy to accidentally pick a wrong value from the system when building out a new component.&lt;/p&gt;

&lt;p&gt;This is how we end up with scenarios where &lt;code&gt;placeholder&lt;/code&gt; typography in a &lt;code&gt;textarea&lt;/code&gt; could differ than what was established previously for a standard &lt;code&gt;input&lt;/code&gt;, when really design had intended them to share the same attributes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aeRXcd7s--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/hb9wuo0aws2e2h3ouqc7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aeRXcd7s--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/hb9wuo0aws2e2h3ouqc7.png" alt="A text input with placeholder text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5fXMnIpi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/c3d3syksrv3m46mt7f4v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5fXMnIpi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/c3d3syksrv3m46mt7f4v.png" alt="A textarea with placeholder text that's styled differently"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;UXE's typically work with designers to explain the impact of design decisions (or confirm this wasn't a mistake in the spec) so that situations like this don't happen.&lt;/p&gt;

&lt;p&gt;It also means we sometimes need to act as negotiators in order to strengthen durable logic within our system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecting scalable blueprints
&lt;/h2&gt;

&lt;p&gt;Because we are responsible for making sure a component accurately reflects design specifications, it's crucial that a component supports the same logic, plus future considerations.&lt;/p&gt;

&lt;p&gt;Anticipating how a designer would want to modify a component is critical.&lt;/p&gt;

&lt;p&gt;Strong architecture ensures less code repetition, helps with open-source contribution, and provides a foundation that helps guide scalability discussions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hhE_8SfA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images.unsplash.com/photo-1503387762-592deb58ef4e%3Fixid%3DMXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%253D%26ixlib%3Drb-1.2.1%26auto%3Dformat%26fit%3Dcrop%26w%3D1489%26q%3D80" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hhE_8SfA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images.unsplash.com/photo-1503387762-592deb58ef4e%3Fixid%3DMXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%253D%26ixlib%3Drb-1.2.1%26auto%3Dformat%26fit%3Dcrop%26w%3D1489%26q%3D80" alt="An architect sketching a blueprint"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Blueprint decisions include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Defining the relationship between components&lt;/li&gt;
&lt;li&gt;Defining the relationship between parent and child components&lt;/li&gt;
&lt;li&gt;Determining if a variant is a separate component or &lt;a href="https://reactjs.org/docs/components-and-props.html"&gt;defined through a prop&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Establishing what configurable aspects get exposed to an end user&lt;/li&gt;
&lt;li&gt;Creating and implementing &lt;a href="https://uxdesign.cc/design-tokens-for-dummies-8acebf010d71"&gt;design tokens&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;UXE's should constantly be asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;How would someone want to implement this component?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The more time and care that can be invested at this stage, the less likely the team will need to implement a breaking change in the future.&lt;/p&gt;

&lt;h2&gt;
  
  
  Optimizing performance
&lt;/h2&gt;

&lt;p&gt;While this article has emphasized making sure the component looks and behaves as expected, we also need to look at the bigger picture with how our decisions impact the rest of the design system ecosystem.&lt;/p&gt;

&lt;p&gt;An optimized component includes evaluating:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bundle size&lt;/li&gt;
&lt;li&gt;Tree shaking&lt;/li&gt;
&lt;li&gt;CSS over SVG&lt;/li&gt;
&lt;li&gt;Asynchronous loading&lt;/li&gt;
&lt;li&gt;Strong types&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can have the most customizable component on the planet, but if it takes ages to load, no one will use it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Promoting and enforcing accessibility
&lt;/h2&gt;

&lt;p&gt;By the time a component is ready to be coded, the design should adhere to minimum accessibility requirements including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Typography&lt;/li&gt;
&lt;li&gt;Line length&lt;/li&gt;
&lt;li&gt;Contrast ratios&lt;/li&gt;
&lt;li&gt;Minimum tappable area&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Beyond this, a UXE needs to consider other interactions that may not have been uncovered during the design-focused part of the team's workflow.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4U0zqCfq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images.unsplash.com/photo-1516714819001-8ee7a13b71d7%3Fixlib%3Drb-1.2.1%26ixid%3DMXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%253D%26auto%3Dformat%26fit%3Dcrop%26w%3D1350%26q%3D80" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4U0zqCfq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images.unsplash.com/photo-1516714819001-8ee7a13b71d7%3Fixlib%3Drb-1.2.1%26ixid%3DMXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%253D%26auto%3Dformat%26fit%3Dcrop%26w%3D1350%26q%3D80" alt="A pair of glasses looking at an out of focus neighborhood"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Typically, my accessibility checklist includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;High contrast mode&lt;/li&gt;
&lt;li&gt;Reduced motion styling&lt;/li&gt;
&lt;li&gt;Alt text/aria props&lt;/li&gt;
&lt;li&gt;Keyboard navigation&lt;/li&gt;
&lt;li&gt;Dark mode support&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Incorporating these aspects into the component is only one part of how we help ensure accessible experiences. We also need to help end-users (product developers) understand what they need to consider during implementation.&lt;/p&gt;

&lt;p&gt;I find it helpful to bake in as much accessibility logic possible to mitigate risk that user will forget to incorporate it. For example, if a user doesn't supply a value for a &lt;code&gt;label&lt;/code&gt;, you can make it a requirement that a user must provide an &lt;code&gt;aria-label&lt;/code&gt; value instead.&lt;/p&gt;

&lt;p&gt;This not only helps ensure the experience is accessible, but also educates users on best practices.&lt;/p&gt;

&lt;h2&gt;
  
  
  Writing tests
&lt;/h2&gt;

&lt;p&gt;Writing tests ensures that the logic behind the component is reflected accurately in visual snapshots.&lt;/p&gt;

&lt;p&gt;Typically, you want to test against:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Whether elements did or didn't render&lt;/li&gt;
&lt;li&gt;If certain classes were applied&lt;/li&gt;
&lt;li&gt;The render matches values from the design specs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At Intuit, we open-sourced &lt;a href="https://github.com/intuit/proof"&gt;proof&lt;/a&gt;, a test runner for Storybook!&lt;/p&gt;

&lt;h2&gt;
  
  
  Providing demos &amp;amp; documentation
&lt;/h2&gt;

&lt;p&gt;After all the alignment conversations, architectural back-and-forths, and code iterations... we finally have something to show for it! 🎉&lt;/p&gt;

&lt;p&gt;Providing a curated set of configurable examples and implementation documentation is the most visible part of a UXE's contribution to the project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Y66tZav---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/0472efnm04pwg578cvze.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Y66tZav---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/0472efnm04pwg578cvze.png" alt="Storybook logo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Iterative reviews
&lt;/h3&gt;

&lt;p&gt;I believe in sharing early, and sharing often.&lt;/p&gt;

&lt;p&gt;While working on a component, each pushed commit generates a new &lt;a href="https://storybook.js.org/"&gt;Storybook&lt;/a&gt; link that anyone can review and comment on within GitHub. The benefit of this is that feedback doesn't get lost in Slack, and we can keep track of change requests.&lt;/p&gt;

&lt;p&gt;To standardize how teams provide component demos, we include Storybook as part of our &lt;a href="https://github.com/intuit/design-systems-cli"&gt;Design Systems CLI&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Advocating for the community
&lt;/h2&gt;

&lt;p&gt;As part of the design systems team, the UXE is also responsible for being an advocate for both product designers and developers.&lt;/p&gt;

&lt;p&gt;This includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Helping users onboard to the system&lt;/li&gt;
&lt;li&gt;Answering questions&lt;/li&gt;
&lt;li&gt;Making sure their voice is heard during sprint planning&lt;/li&gt;
&lt;li&gt;Addressing feedback&lt;/li&gt;
&lt;li&gt;Guiding users to the right team members&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rW5G0b1W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://calendly.com/calendly-logo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rW5G0b1W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://calendly.com/calendly-logo.png" alt="Calendly logo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's easy to get overwhelmed by this run-the-business type of work. Conducting &lt;a href="https://uxdesign.cc/the-power-of-office-hours-aac0db337d32"&gt;office hours&lt;/a&gt; using &lt;a href="https://calendly.com"&gt;Calendly&lt;/a&gt; is a great way to make sure you can stay connected to the community and guard your time (and sanity).&lt;/p&gt;

&lt;h2&gt;
  
  
  What success looks like
&lt;/h2&gt;

&lt;p&gt;Because we have to switch gears so often and interact with so many people, it can be challenging for folks to get a full sense of the work involved.&lt;/p&gt;

&lt;p&gt;A successful UXE is someone who:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Goes with the flow and doesn't mind throwing away code to make something better&lt;/li&gt;
&lt;li&gt;Feels comfortable explaining technical constraints and requirements to non-technical audiences&lt;/li&gt;
&lt;li&gt;Tends to push back on one-off, unscalable designs&lt;/li&gt;
&lt;li&gt;Puts ego aside to listen to the community AND willing to collaborate on solutions&lt;/li&gt;
&lt;li&gt;Has intuition on how to add extra polish to an experience&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I've found what's worked best is to include all disciplines in a JIRA board so that everyone is aware of what tasks need to be completed until we're ready to ship.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--18cle5bk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/q0p80gjczjrj4t0essth.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--18cle5bk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/q0p80gjczjrj4t0essth.png" alt="Passion led us here"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrapping up
&lt;/h2&gt;

&lt;p&gt;Even though UX Engineering is still in its infancy, the need for this type of role has been around for ages.&lt;/p&gt;

&lt;p&gt;I'm excited to see more of these opportunities pop up, and super happy I was able to make the role what it is for our team.&lt;/p&gt;

&lt;p&gt;For additional reading, I definitely recommend checking out Emma Bostian's &lt;a href="https://dev.to/emmawedekind/ux-engineering-3hem"&gt;article on UX Engineering&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Hopefully you're now interested in hiring a UXE for your team, or you'll start applying as one!&lt;/p&gt;

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

&lt;p&gt;Originally published at &lt;a href="https://kellyharrop.com/blog/2021/ux-engineering"&gt;kellyharrop.com&lt;/a&gt; on February 10, 2021.&lt;/p&gt;

</description>
      <category>designsystems</category>
      <category>ux</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Flush!</title>
      <dc:creator>Kelly Harrop</dc:creator>
      <pubDate>Sun, 26 Jan 2020 22:12:09 +0000</pubDate>
      <link>https://forem.com/kellycodeschaos/flush-3clh</link>
      <guid>https://forem.com/kellycodeschaos/flush-3clh</guid>
      <description>&lt;h4&gt;
  
  
  A proposal for a public restrooms ratings system
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--74w5ZRY2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2APqAeqvWY6Yx1mvjr" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--74w5ZRY2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2APqAeqvWY6Yx1mvjr" alt="Male and female illustrations, indicating they need to use the bathroom"&gt;&lt;/a&gt;Photo by &lt;a href="https://unsplash.com/@ocollet?utm_source=medium&amp;amp;utm_medium=referral"&gt;Olivier Collet&lt;/a&gt; on &lt;a href="https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You’re out and about with friends, keeping responsibly hydrated, when suddenly… nature calls. Not to worry, you’ll just pop into the nearest restroom and relieve yourself. Your friends say you’re better off waiting til you get to your next destination.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Trust us. ”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Oh come on, how bad could it be? Who knows how long it could take, plus you could use the opportunity to freshen up.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“This place is like 2 stars. The next is 4 stars!”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Okay but what does that really mean? Surely it can’t be that bad —&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KaCiM7nn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/360/0%2Agj2c97076MhWjxI7.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KaCiM7nn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/360/0%2Agj2c97076MhWjxI7.JPG" alt="A rectangular hole in the ground"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It’s a hole in the ground. No toilet. No toilet paper. No way. If this is two stars, then you don’t even want to think about what one star is.&lt;/p&gt;

&lt;p&gt;Not to worry, just don’t think about waterfalls or leaking faucets for the next twenty minutes. You try to distract yourself with conversation in the car, but all you can think about is a four-star restroom. Four stars. Four stars. Four. Stars.&lt;/p&gt;

&lt;p&gt;Finally, three egregiously large potholes later, you arrive and immediately power walk straight to the restrooms. &lt;em&gt;Relief at last&lt;/em&gt;, you think.&lt;/p&gt;

&lt;p&gt;Upon opening the door, however, you’re greeted by instant disappointment. A lone flickering ceiling light illuminates the fact that this restroom hadn’t been cleaned in quite some time. And that’s putting it nicely. What’s also noticeable is the lack of any mirrors. Strange. No time to think too much about it though, you’re on a mission.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Stall #1:&lt;/strong&gt; No toilet paper. Pass.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stall #2:&lt;/strong&gt; Doesn’t lock. Pass.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stall #3:&lt;/strong&gt; OUT OF ORDER.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You frantically grab some toilet paper from &lt;strong&gt;Stall #2&lt;/strong&gt; and resolve to use &lt;strong&gt;Stall #1&lt;/strong&gt;. On the bright side, this restroom actually had a working toilet. Who cares if you had to hold your breath the whole time and hang your bag around your neck because there isn’t a hook on the stall?&lt;/p&gt;

&lt;p&gt;Finishing up, you go to wash up and find all the soap dispensers are out of soap. As you stare into the mirror-less wall, you start questioning what in life led you to this moment.&lt;/p&gt;

&lt;p&gt;With hands still wet, you look around for paper towels only to observe that there are none, only a single hand dryer.&lt;/p&gt;

&lt;p&gt;It’s broken.&lt;/p&gt;

&lt;p&gt;You wipe your hands on your clothes, when you remember the travel-sized bottle of hand sanitizer in your bag. With a cry of relief, you generously apply a copious amount before returning to people you thought were your friends.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Four stars.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6VK8aRkz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2AtAyvIQfVAEHGfGjr" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6VK8aRkz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2AtAyvIQfVAEHGfGjr" alt="A woman smiling while holding hand sanitizer"&gt;&lt;/a&gt;Photo by &lt;a href="https://unsplash.com/@annaelizaearl?utm_source=medium&amp;amp;utm_medium=referral"&gt;Anna Earl&lt;/a&gt; on &lt;a href="https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How to systemize the criteria
&lt;/h3&gt;

&lt;p&gt;When advising others on where to “go,” it’s tempting to use the same type of ratings system one would use when referring restaurants. However, the nuances of a public restroom require are more thoughtful approach. By having a set of standardized criteria, we can help inform others so that they have more accurate expectations.&lt;/p&gt;

&lt;p&gt;And because I’m obsessed with acronyms…&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;F&lt;/strong&gt; inishes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;L&lt;/strong&gt; ayout&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;U&lt;/strong&gt; sing the restroom&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;S&lt;/strong&gt; tall&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;H&lt;/strong&gt; ygiene options&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Because some criteria is obviously more impactful than others, we would use a curve to aggregate the ratings into a meaningful, holistic star rating.&lt;/p&gt;

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

&lt;h4&gt;
  
  
  Finishes
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Quality materials:&lt;/strong&gt; Same or better quality of materials used in the rest of the building space.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sufficient lighting:&lt;/strong&gt; Updated, reliable lighting means guests feel safe.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ambient music:&lt;/strong&gt; Background music creates a more relaxing atmosphere and also drowns out potential unwanted noises.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cleanliness:&lt;/strong&gt; If an establishment neglects the cleanliness of their restrooms offered to guests, what else are they neglecting?&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Layout
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Intuitive flow:&lt;/strong&gt; A layout that accommodates incoming, staying, and exiting guests.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Availability:&lt;/strong&gt; It should be easy to tell when a stall becomes available, and not just whether the door is closed or not. Whether that’s an easy to glance layout or investing in a monitor that can help with foot traffic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Counter space:&lt;/strong&gt; Counters aren’t just for sinks. Guests sometimes need an area to freshen up.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Family friendly:&lt;/strong&gt; Baby-changing stations in all public restrooms ensures support for all families, no matter what gender the parent is.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Using the restroom
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Toilet:&lt;/strong&gt; At the bare minimum — honestly just work (and exist). Be aware of &lt;a href="https://www.theatlantic.com/health/archive/2019/12/slanted-toilet-standardtoilet-productivity/603898/"&gt;evil forces&lt;/a&gt; trying to make them &lt;em&gt;less&lt;/em&gt; comfortable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Toilet paper:&lt;/strong&gt; There should be enough &lt;a href="https://www.youtube.com/watch?v=Gysu0kgFwT0"&gt;to spare&lt;/a&gt;. Plus, it should be easy to see if it’s running low and if there is extra.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automatic flushing:&lt;/strong&gt; The less guests have to touch, the better. However, it should also be obvious how one would manually flush as well.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bidet/extras:&lt;/strong&gt; While this isn’t standard or popular in the States, it’s still a nice option for those who are used to it.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Stall
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reliable locking mechanism:&lt;/strong&gt; The best type of lock stands the test of time and is intuitive with which way to operate it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Storage:&lt;/strong&gt; In addition to ample legroom, guests should be able to store bags and other items. A hook on the door should be located near the middle of the door to prevent theft.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Maximum privacy:&lt;/strong&gt; The door height and width should prevent bystanders from peeking in-between gaps.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Hygiene options
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sink to stall ratio&lt;/strong&gt; : After “doing their business” guests just want quick and easy access to soap and water stat!&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automated soap/water:&lt;/strong&gt; Again, the less guests have to touch, the better. Provide regular soap dispensers too, in case the automated dispenser runs out or breaks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Drying options:&lt;/strong&gt; Don’t make guests drip water everywhere because the sink is too far from paper towels/hand dryers. Also, always have paper towels available since hand dryers can break and also sometimes there are spills!&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The ideal experience
&lt;/h3&gt;

&lt;p&gt;When it comes to amazing public restroom experiences, most people are quick to reference &lt;strong&gt;Buc-ee’s.&lt;/strong&gt; I mean just look:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.washingtonpost.com/graphics/2019/business/bucees-texas-convenience-store-bathrooms/"&gt;https://www.washingtonpost.com/graphics/2019/business/bucees-texas-convenience-store-bathrooms/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.southernliving.com/news/buc-ees-cleanest-bathrooms"&gt;https://www.southernliving.com/news/buc-ees-cleanest-bathrooms&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But I see potential for a more inclusive model: Separate, self-contained gender neutral bathrooms vs the shared space and stall approach.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--38OF2wT_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2AzXPnZ_qlb3AYCYDC" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--38OF2wT_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2AzXPnZ_qlb3AYCYDC" alt="A nice, modern bathroom with lots of space"&gt;&lt;/a&gt;Photo by &lt;a href="https://unsplash.com/@filios_sazeides?utm_source=medium&amp;amp;utm_medium=referral"&gt;Filios Sazeides&lt;/a&gt; on &lt;a href="https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Okay, maybe not quite as nice and spacious — but basically it boils down to each bathroom containing its own toilet and sink.&lt;/p&gt;

&lt;p&gt;Some establishments have already been embracing this model, since they have the following advantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When a bathroom becomes available, anyone can use it regardless of gender.&lt;/li&gt;
&lt;li&gt;These rooms tend to be larger than a standard stall.&lt;/li&gt;
&lt;li&gt;Guests feel safer, not having to worry about using a shared space.&lt;/li&gt;
&lt;li&gt;Separate bathrooms makes it easier for maintenance to tend to issues without disrupting others.&lt;/li&gt;
&lt;li&gt;Because the space is usually fairly compact, there tends to be less mess since the distance between the sink, soap, and where you would dry your hands is in close proximity.&lt;/li&gt;
&lt;li&gt;Accessibility rooms have more features for those that need them&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Closing thoughts
&lt;/h3&gt;

&lt;p&gt;While most people tend to avoid public restrooms at all cost, sometimes it just ends up being unavoidable. And while there are friends and apps that can recommend which ones to use, it’s still highly subjective and mostly focused on a few aspects.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/JYVBRQ7t46g"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Helpful public restroom apps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.thelisttv.com/the-list/bathroom-in-a-bind-4-apps-to-help-you-find-clean-public-restrooms/"&gt;https://www.thelisttv.com/the-list/bathroom-in-a-bind-4-apps-to-help-you-find-clean-public-restrooms/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Did I miss anything that you judge a public restroom by? Feel free to add it in the comments!&lt;/p&gt;

</description>
      <category>publicrestrooms</category>
      <category>ratingsystem</category>
    </item>
    <item>
      <title>Disrupting with delight</title>
      <dc:creator>Kelly Harrop</dc:creator>
      <pubDate>Tue, 22 Oct 2019 13:55:49 +0000</pubDate>
      <link>https://forem.com/kellycodeschaos/disrupting-with-delight-494e</link>
      <guid>https://forem.com/kellycodeschaos/disrupting-with-delight-494e</guid>
      <description>&lt;h4&gt;
  
  
  Learnings from my first year at Intuit
&lt;/h4&gt;

&lt;h3&gt;
  
  
  “Intuit thrives by constantly disrupting itself.”
&lt;/h3&gt;

&lt;p&gt;It’s been a whole year since I first heard that phrase. Since my first day of orientation, I’ve learned a ton and wanted to share out my journey.&lt;/p&gt;

&lt;h4&gt;
  
  
  Embracing fear
&lt;/h4&gt;

&lt;p&gt;I’ve observed a common three-word response when anyone wanted to improve how we do things: “What’s stopping you?”&lt;/p&gt;

&lt;p&gt;And that made me really pause and think. The only real thing that was stopping me, was me — and my fear of failure. Fear that my suggestion wouldn’t work. Fear of being told I was wrong. Fear of confirming my imposter syndrome.&lt;/p&gt;

&lt;p&gt;To overcome that, I had to define what disruption really meant and how I could change the way that I thought about… well, change.&lt;/p&gt;

&lt;h4&gt;
  
  
  Small steps, big wins
&lt;/h4&gt;

&lt;p&gt;For me, disruption means being constructively dissatisfied enough to not only challenge existing practices, but to also instigate and lead change.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zct3NtM0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2A5zezXgGW5_SXotyc" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zct3NtM0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2A5zezXgGW5_SXotyc" alt="Blue Intuit cowbell"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Change can sound scary, but it doesn’t always mean large, sweeping process adjustments.&lt;/p&gt;

&lt;p&gt;Try to think in small, iterative approaches — treat your company like a product.&lt;/p&gt;

&lt;p&gt;If you can get small, quick wins, you’ll find they eventually ripple into larger more impactful results.&lt;/p&gt;

&lt;p&gt;Eventually, big proposals don’t seem as daunting because you’ve established a track record of consistent improvements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;😴 Tired:&lt;/strong&gt; My team just doesn’t have the time to keep our documentation updated, sorry.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;🤩 Wired:&lt;/strong&gt; How can I automate or open-source documentation to free up my team to do the work they want to do while still supporting our community?&lt;/p&gt;

&lt;h4&gt;
  
  
  The art of saying “no (thanks)”
&lt;/h4&gt;

&lt;p&gt;You can’t change &lt;em&gt;everything,&lt;/em&gt; and that means saying no to some projects (I’m still working on this one!). Focus on the improvements that &lt;strong&gt;you can control&lt;/strong&gt; , and take pride in your work.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lc2mlYav--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/225/1%2A7Y1vg30Bfnm5Dn0RcysYxw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lc2mlYav--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/225/1%2A7Y1vg30Bfnm5Dn0RcysYxw.jpeg" alt="Fix all the things!"&gt;&lt;/a&gt;Don’t try to do this.&lt;/p&gt;

&lt;p&gt;Lessons learned:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Make a list of every project you’re working on with your role &lt;strong&gt;and&lt;/strong&gt; level of commitment (are you only needed at the beginning? full-time resource?)&lt;/li&gt;
&lt;li&gt;Document every product-changing decision your team lands on — leverage internal release notes if you can&lt;/li&gt;
&lt;li&gt;Don’t go to every meeting you’re invited to if you only need to be informed — rely on meeting notes&lt;/li&gt;
&lt;li&gt;Have an exit strategy when you’re on too many projects&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Saying no doesn’t mean you don’t care. Again, it goes back to how can you make the biggest impact. Your time is valuable and how you invest it says a lot about your priorities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before:&lt;/strong&gt; I have to say yes, because I’ll look lazy&lt;br&gt;&lt;br&gt;
&lt;strong&gt;After:&lt;/strong&gt; I have to say no, otherwise my current project will suffer&lt;/p&gt;

&lt;p&gt;By confronting my previous fear of looking lazy, I felt more empowered to turn down projects that would have a negative impact on the work I had already committed to.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro-tip:&lt;/strong&gt; This also helps with scope creep and sprint negotiation!&lt;/p&gt;

&lt;h4&gt;
  
  
  Know your audience
&lt;/h4&gt;

&lt;p&gt;When crafting a presentation or proposal, it’s easy to fall into the trap of talking to your audience like you would your own team or yourself. There’s a certain sense of security when expressing your thoughts using terms you use on a daily basis.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--f8X0ar-z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2Aw30lfysl1NXno4qh" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--f8X0ar-z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2Aw30lfysl1NXno4qh" alt="Three posters from this year’s internal Design Week"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;However, you gain more impact when you share your message with people &lt;strong&gt;outside&lt;/strong&gt; of your team.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“If you want to go fast, go alone. If you want to go far, go together.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Their perspective and connections are invaluable for furthering the progress of your initiative. That being said, it’s a good idea to do some homework first.&lt;/p&gt;

&lt;p&gt;Ask yourself why &lt;strong&gt;they&lt;/strong&gt; should care by addressing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What problems are &lt;strong&gt;they&lt;/strong&gt; trying to solve?&lt;/li&gt;
&lt;li&gt;How can &lt;strong&gt;they&lt;/strong&gt; help or be involved?&lt;/li&gt;
&lt;li&gt;What’s the biggest benefit for  &lt;strong&gt;them&lt;/strong&gt;?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By framing the solution around your audience, you’re bringing them with you on the journey instead of having a one-sided conversation. Empathy goes a long way when telling a story, so make the audience your focus rather than yourself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before:&lt;/strong&gt; “I think we should use this tool because it’s the easiest to use.”&lt;br&gt;&lt;br&gt;
&lt;strong&gt;After:&lt;/strong&gt; “Based on &lt;strong&gt;feedback&lt;/strong&gt; from our designers and developers, we should use this tool because &lt;strong&gt;they&lt;/strong&gt; said it would be &lt;strong&gt;&lt;em&gt;twice as fast&lt;/em&gt;&lt;/strong&gt; to implement.”&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Bonus points for metrics!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Using the voice of your internal and external customers to sell an idea is more impactful because now it’s less of a hypothesis, and more of a reinforcement. By removing yourself out of the equation, it also helps remove bias and emphasizes your commitment to being a leader who serves their community.&lt;/p&gt;

&lt;h4&gt;
  
  
  Find what sparks joy
&lt;/h4&gt;

&lt;p&gt;When you’re passionate about the work your company’s doing, it’s easy to get caught up in everything. However, there are only so many initiatives you can invest your time in before you’re spread too thin.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--h6eAinAf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2A8DDAgoclxej5fjAk" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--h6eAinAf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2A8DDAgoclxej5fjAk" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So how do you decide what to spend your energy on?&lt;/p&gt;

&lt;p&gt;This is a great opportunity to ask for &lt;a href="https://www.mindtools.com/pages/article/situation-behavior-impact-feedback.htm"&gt;SBI&lt;/a&gt;-framed feedback from your peers by asking them what you are doing well and how you could improve.&lt;/p&gt;

&lt;p&gt;Hopefully you’ll start to see a trend and can use this as a discussion point in your 1:1’s with your manager. By being explicit and communicating the kind of work you enjoy and excel at, it makes it easier to find opportunities that align with your career growth.&lt;/p&gt;

&lt;p&gt;Make sure that you are choosing projects that not only bring you joy, but ones that also have the most potential for disruption.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro-tip:&lt;/strong&gt; save positive feedback for times when you need a pick-me-up (and for your year-end review!). I actually print out Slack messages and leave them on my desk when I’m feeling overwhelmed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1apuxzI3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2Aap-7qL5xHW1W0aRIJ6prew.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1apuxzI3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2Aap-7qL5xHW1W0aRIJ6prew.png" alt="A print out of a slack message that says “You’re killing it. Looks amazing.”"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Remember to provide feedback as well! Try to be as specific as possible to avoid making generalizations. For example…&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;S:&lt;/strong&gt; During her Overwatch presentation *,&lt;br&gt;&lt;br&gt;
&lt;strong&gt;B:&lt;/strong&gt; Kelly did a great job articulating how her game sense relates to how she works,&lt;br&gt;&lt;br&gt;
&lt;strong&gt;I:&lt;/strong&gt; which makes me feel like she could effectively manage a team of six.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;*This is only an example. No one has asked me to give a talk about Overwatch (yet)!&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Going forward
&lt;/h4&gt;

&lt;p&gt;Pairing delight along with disruption ensures that we’re constantly self-improving. By training yourself to view both as necessities for innovation and success, you can give yourself permission to be bold.&lt;/p&gt;

&lt;p&gt;Look for opportunities to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Confront your fears&lt;/li&gt;
&lt;li&gt;Say no&lt;/li&gt;
&lt;li&gt;Celebrate small wins&lt;/li&gt;
&lt;li&gt;Form meaningful partnerships&lt;/li&gt;
&lt;li&gt;Define what’s important to you&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here’s to celebrating more years of powering prosperity around the world! 🥂&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ske0vGee--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2A-6BE1dpgPslRbivW" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ske0vGee--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2A-6BE1dpgPslRbivW" alt="A figurine from the game, Overwatch and a mini Dribbble basketball"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>learning</category>
      <category>disruption</category>
      <category>growth</category>
      <category>design</category>
    </item>
    <item>
      <title>What’s in an email?</title>
      <dc:creator>Kelly Harrop</dc:creator>
      <pubDate>Mon, 22 Jul 2019 18:16:01 +0000</pubDate>
      <link>https://forem.com/kellycodeschaos/what-s-in-an-email-2eee</link>
      <guid>https://forem.com/kellycodeschaos/what-s-in-an-email-2eee</guid>
      <description>&lt;p&gt;Crafting an Email Design System&lt;/p&gt;

&lt;p&gt;When creating an email campaign, using a component-based system is crucial for delivering a quality experience to your audience as quickly and efficiently as possible.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1024%2F0%2A8L-9TWumvT2BiqYK" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1024%2F0%2A8L-9TWumvT2BiqYK"&gt;&lt;/a&gt;Photo by &lt;a href="https://unsplash.com/@webhost?utm_source=medium&amp;amp;utm_medium=referral" rel="noopener noreferrer"&gt;Web Hosting&lt;/a&gt; on &lt;a href="https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unfortunately, designing and developing for email can be challenging due to the limitations of email clients and inconsistencies across browsers and platforms. Most of the wonderful flexibilities of the modern-day web are unavailable when coding for email due to what is supported.&lt;/p&gt;

&lt;p&gt;That being said, let’s explore how we can create a system that’s both easy to configure and implement!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1024%2F0%2A_km9y8PP0fqYgUjo" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1024%2F0%2A_km9y8PP0fqYgUjo"&gt;&lt;/a&gt;Photo by &lt;a href="https://unsplash.com/@nordwood?utm_source=medium&amp;amp;utm_medium=referral" rel="noopener noreferrer"&gt;NordWood Themes&lt;/a&gt; on &lt;a href="https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Branding Baseline
&lt;/h3&gt;

&lt;p&gt;It’s important to establish what is critical to your brand’s baseline. At minimum, this is typically assigning a color palette and potentially custom fonts.&lt;/p&gt;

&lt;p&gt;Remember that all the quirks that come with your brand don’t need to be reflected in your email campaign!&lt;/p&gt;

&lt;p&gt;Here’s a quick example of how you could structure color and typography as variables in a scss file used in your template:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="c"&gt;/***** COLORS ******/&lt;/span&gt;

&lt;span class="c"&gt;/* raw values -- do NOT reference */&lt;/span&gt;
&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="nt"&gt;blue01&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="err"&gt;#0000&lt;/span&gt;&lt;span class="nt"&gt;ff&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="c"&gt;/* role -- reference these */&lt;/span&gt;
&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="nt"&gt;primary&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="nt"&gt;blue01&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="c"&gt;/***** TYPOGRAPHY ******/&lt;/span&gt;

&lt;span class="k"&gt;@function&lt;/span&gt; &lt;span class="n"&gt;calculateRem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
 &lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="nt"&gt;remSize&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="nt"&gt;size&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="err"&gt;16&lt;/span&gt;&lt;span class="nt"&gt;px&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
 &lt;span class="k"&gt;@return&lt;/span&gt; &lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="nt"&gt;remSize&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="nt"&gt;rem&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;@mixin&lt;/span&gt; &lt;span class="n"&gt;fontSize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
 &lt;span class="nl"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="err"&gt;//Fallback&lt;/span&gt; &lt;span class="err"&gt;in&lt;/span&gt; &lt;span class="err"&gt;px&lt;/span&gt;
 &lt;span class="nl"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;calculateRem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nt"&gt;H1&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="n"&gt;primary&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="err"&gt;@include&lt;/span&gt; &lt;span class="err"&gt;fontSize(32px);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;I like this approach because you can easily update the value of your $primary variable if you need to. If you’re wondering why I don’t just assign a HEX value to $primary, I can technically do that — but then it’s easy to forget what I’m really referencing since that raw value isn’t very descriptive.&lt;/p&gt;
&lt;h4&gt;
  
  
  Typography
&lt;/h4&gt;

&lt;p&gt;I start with typography because when you have a strong hierarchy of information, the content of your email will shine regardless of what colors you choose.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1024%2F0%2AFPUvQHcJLPNZKk5o" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1024%2F0%2AFPUvQHcJLPNZKk5o"&gt;&lt;/a&gt;Photo by &lt;a href="https://unsplash.com/@jromeo?utm_source=medium&amp;amp;utm_medium=referral" rel="noopener noreferrer"&gt;J-S Romeo&lt;/a&gt; on &lt;a href="https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But what happens if you want to use your custom brand font? Custom fonts can be a little tricky depending on their source because they can render incorrectly for certain combinations of platform and email client. I would highly recommend finding a similar Google Font if possible as they are more reliable and already hosted. Will anyone even notice?&lt;/p&gt;

&lt;p&gt;When deciding what you want to include in your template, start off with the basics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Headers (H1, H2, H3…)&lt;/li&gt;
&lt;li&gt;Body text (p)&lt;/li&gt;
&lt;li&gt;Links (a)&lt;/li&gt;
&lt;li&gt;Buttons (a)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Colors
&lt;/h4&gt;

&lt;p&gt;Let’s say your brand already has a base color palette referenced in your product/website. Awesome! Because emails contain static images and text, you don’t need to import all of them. Try to keep it simple with one or two main brand colors for the interactive parts of your email (links and buttons).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1024%2F0%2Al18H7cPVkne1SqNO" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1024%2F0%2Al18H7cPVkne1SqNO"&gt;&lt;/a&gt;Photo by &lt;a href="https://unsplash.com/@kaleidico?utm_source=medium&amp;amp;utm_medium=referral" rel="noopener noreferrer"&gt;Kaleidico&lt;/a&gt; on &lt;a href="https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Setting up the structure
&lt;/h3&gt;

&lt;p&gt;Now that you have branding covered, the next step is establishing what actually goes in your template.&lt;/p&gt;
&lt;h4&gt;
  
  
  Components
&lt;/h4&gt;

&lt;p&gt;Components are important because they determine what parts of your system are reusable and referenced. Like a regular design system, you’ll need to determine what parts should stay as small as possible.&lt;/p&gt;

&lt;p&gt;Let’s look at some common email components and options to consider:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Headers:&lt;/strong&gt; Text alignment, margin, typography, color&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Body text:&lt;/strong&gt; Text alignment, margin, typography, color&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Buttons:&lt;/strong&gt; Alignment, sizes, typography, color&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dividers:&lt;/strong&gt; Full width, small width, color&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Images:&lt;/strong&gt; Sizes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Using these components, you can create pre-configured compound components (the molecules of atomic design) so you don’t have to manually include the same set of components every time you need a group of them.&lt;/p&gt;

&lt;p&gt;Sample molecules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Molecule:&lt;/strong&gt; Header + body text&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Molecule:&lt;/strong&gt; Image + body text&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And last but not least, I like to have my organisms create the “sections” of my email:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Section:&lt;/strong&gt; Intro (image + header + text + optional button)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Section:&lt;/strong&gt; Three column grid (images and text in three columns for desktop)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Section:&lt;/strong&gt; Avatar bio (small image + header + body text)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  More about sections
&lt;/h4&gt;

&lt;p&gt;Sections deserves its own callout because it’s such an integral part of your email template. These sections define what is available for use when thinking about the content you’re creating. Any time you deviate from a section, you’re creating “snowflake” code and designs, which defeats the purpose of having a system.&lt;/p&gt;

&lt;p&gt;In order to be a successful email template, define what kind of content you are sharing with your audience. Is it promotional? A newsletter? An update to your privacy policy? Whatever it is, you should be clear about what kind of content sections need to be supported.&lt;/p&gt;

&lt;p&gt;Once you have your sections, the next crucial part is socialization. If you are working with a team who will be creating emails using your template, they need to know what these sections are called. For example, you may get questions like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How do I create cards?&lt;/li&gt;
&lt;li&gt;How do I position an image to the left of text?&lt;/li&gt;
&lt;li&gt;How do I insert a footer?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Or worse, they’ll just create their one-off section type and not use what was already created! Having a consistent naming convention and making sure that it’s obvious what to use both in design (as symbols) and in code (as commented code blocks) will help your team work faster by using the same terms.&lt;/p&gt;
&lt;h4&gt;
  
  
  Layout for tables
&lt;/h4&gt;

&lt;p&gt;Yes, it’s 2019 (as of this article) and we’re still having to rely on tables for our email. That’s okay though, because that just means we have to be deliberate about our table cell structure.&lt;/p&gt;

&lt;p&gt;When designing your content, you’ll need to think in terms of left or right alignment and how your tables interact with each other. By nesting tables within tables, you can set rules for how content flows together.&lt;/p&gt;

&lt;p&gt;Personally, I prefer starting out with a desktop layout before mobile. The reason being, your sections will typically just go full width and be stacked in mobile, which is fairly straight forward. Desktop is where some of the planning and table layouts become a challenge. It’s easier to convert a multi-nested table to a series of stacked tables than the other way around.&lt;/p&gt;

&lt;p&gt;Here’s a simplified example of how I implemented a section block (“Intro paragraph”) using Salesforce’s Pardot email system:&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;



&lt;p&gt;As you can see, you can create these modular section blocks using a bunch of nested tables and then use a GUI platform to configure and assemble your specific email.&lt;/p&gt;

&lt;p&gt;The biggest thing to note is that you must use nested tables in order to properly align your content.&lt;/p&gt;

&lt;p&gt;Also note that I’m not putting in a bunch of HTML attributes because I can handle that part later (more in the Workflow section!).&lt;/p&gt;

&lt;h4&gt;
  
  
  Responsive
&lt;/h4&gt;

&lt;p&gt;Once you’re finished with your desktop layout template, converting that to a responsive view is simply a matter of stacking the content in each section vertically instead of side by side.&lt;/p&gt;

&lt;p&gt;To do this, I just add a class to sections that I want to stack as “mobile-100” and then include a media-query that overrides my styles to make any HTML tag with that class go full-width and stack on top of each other.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;It’s a quick way for me to understand that this class is mobile-specific and the 100 lets me know that the content will go 100% width of the parent. Easy!&lt;/p&gt;

&lt;h3&gt;
  
  
  Automate your workflow
&lt;/h3&gt;

&lt;p&gt;Congratulations, you’re almost done! At this point, you should have designs and coded system in place that covers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Branding:&lt;/strong&gt; Typography &amp;amp; Colors&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structure:&lt;/strong&gt; Components, Layout (desktop + mobile)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1024%2F0%2AoPvuxskqPad-YlUo" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1024%2F0%2AoPvuxskqPad-YlUo"&gt;&lt;/a&gt;Photo by &lt;a href="https://unsplash.com/@glenncarstenspeters?utm_source=medium&amp;amp;utm_medium=referral" rel="noopener noreferrer"&gt;Glenn Carstens-Peters&lt;/a&gt; on &lt;a href="https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Back in the day, you’d have to make sure all these elements worked in different browsers and platforms by manually inserting inline-styles and HTML attributes.&lt;/p&gt;

&lt;p&gt;Ouch.&lt;/p&gt;

&lt;p&gt;Well, I’m happy to say that this is no longer the case since you can leverage Javascript to automate these tasks for you!&lt;/p&gt;

&lt;h4&gt;
  
  
  Gulp
&lt;/h4&gt;

&lt;p&gt;Gulp is just a fancy tool that runs tasks for you so you don’t have to manually type everything. Nifty, right? You write your tasks in a Javascript file and then run a single command in terminal. The benefit of this is both having having easy-to-read and manageable HTML files as well as not worrying about missing an attribute.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get started with Gulp&lt;/strong&gt; : &lt;a href="https://gulpjs.com/docs/en/getting-started/quick-start" rel="noopener noreferrer"&gt;https://gulpjs.com/docs/en/getting-started/quick-start&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you have gulp set up, create a gulpfile.js file in your root directory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In my Gulpfile.js, I have multiple functions:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A function that watches my scss file and exports that as a css file&lt;/li&gt;
&lt;li&gt;A function that looks at my new css file and injects that as inline styles to my HTML template file&lt;/li&gt;
&lt;li&gt;A function that looks at any &amp;lt;table&amp;gt; in my HTML file and inserts cellspacing, cellpadding and border-collapse attributes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then at the bottom, I make sure that my tasks are watching the files that they should be referencing and run a command in terminal (“gulp”) when I need to do any work on this template.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Running these tasks also generates a new HTML file (“pardot-email.html”) in a different folder (“build”), so I easily know the difference between my working file and the file that gets built at the end. When I’m ready to test out what this email looks like locally, I can open the newly built HTML file in my browser to double check that everything looks okay.&lt;/p&gt;

&lt;p&gt;Now it’s just a matter of picking a section that serves your content best and modifying the text in either code or in whatever GUI you are using (Pardot, Mailchimp, etc).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1024%2F0%2AapCXTX3opEeJWrbK" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1024%2F0%2AapCXTX3opEeJWrbK"&gt;&lt;/a&gt;Photo by &lt;a href="https://unsplash.com/@austindistel?utm_source=medium&amp;amp;utm_medium=referral" rel="noopener noreferrer"&gt;Austin Distel&lt;/a&gt; on &lt;a href="https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Gotchas
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;“!important” is actually… important. Even though in the modern web world it’s frowned upon, they are a necessary evil in email templates due to how email clients want to override everything&lt;/li&gt;
&lt;li&gt;MS Outlook renders emails as Word documents, which means sometimes your longer emails will come with an unfortunate vertical gap. You can read more about it &lt;a href="https://www.emailonacid.com/blog/article/email-development/horizontal_spacing_issues_in_outlook_2007_and_2010/" rel="noopener noreferrer"&gt;here&lt;/a&gt;. I’ve solved this in the past by having an additional &amp;lt;tr&amp;gt; wrap the content.&lt;/li&gt;
&lt;li&gt;Litmus tests can lie occasionally with font rendering. Try to test it in the actual email client/platform if available when you suspect something should be working.&lt;/li&gt;
&lt;li&gt;Browsers and email clients are very finicky with margin and padding, in that some don’t support margin at all. If you need the extra spacing, padding is pretty consistent for &lt;td&gt;&lt;/td&gt;’s (make sure you have content in there!) like:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;td&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"spacer-20"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;&lt;span class="ni"&gt;&amp;amp;nbsp;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/td&amp;gt;&lt;/span&gt;

// spacer-20 has padding:20px assigned
// " " renders as a space
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Thank you!
&lt;/h3&gt;

&lt;p&gt;Any follow up questions? Feel free to ping me on Twitter &lt;a class="mentioned-user" href="https://dev.to/kellycodeschaos"&gt;@kellycodeschaos&lt;/a&gt;!&lt;/p&gt;

&lt;h3&gt;
  
  
  Additional helpful articles
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://litmus.com/blog/the-ultimate-guide-to-web-fonts" rel="noopener noreferrer"&gt;The Ultimate Guide to Web Fonts in Email-Litmus Software, Inc.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.emailonacid.com/blog/article/email-development/email-development-best-practices-2/" rel="noopener noreferrer"&gt;Must-Have Guide for Email Development Best Practices&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://bradfrost.com/blog/post/atomic-web-design/" rel="noopener noreferrer"&gt;Atomic Design&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developers.google.com/web/ilt/pwa/introduction-to-gulp" rel="noopener noreferrer"&gt;Intro to Gulp&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>email</category>
      <category>designsystems</category>
      <category>marketing</category>
      <category>design</category>
    </item>
    <item>
      <title>Three Unconventional Ways to Measure Value</title>
      <dc:creator>Kelly Harrop</dc:creator>
      <pubDate>Mon, 25 Feb 2019 14:46:00 +0000</pubDate>
      <link>https://forem.com/kellycodeschaos/three-unconventional-ways-to-measure-value-2658</link>
      <guid>https://forem.com/kellycodeschaos/three-unconventional-ways-to-measure-value-2658</guid>
      <description>&lt;h4&gt;
  
  
  When it comes to designing products, it’s not always about dollars and cents.
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jUJMT0p4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2A8vojKeCxeAyFotUt" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jUJMT0p4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2A8vojKeCxeAyFotUt" alt=""&gt;&lt;/a&gt;Photo by &lt;a href="https://unsplash.com/@steve_j?utm_source=medium&amp;amp;utm_medium=referral"&gt;Steve Johnson&lt;/a&gt; on &lt;a href="https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Managing money is hard. Approving budgets is hard. Making sure every financial decision is the right one can be the difference between someone keeping their job or hiring someone new.&lt;/p&gt;

&lt;p&gt;That’s why justifying the cost for certain initiatives can sometimes be a struggle since the inherent value doesn’t always equate to an easy-to-measure outcome. Yet, by focusing solely on what direct revenue a company stands to gain, these missed opportunities can spell out disaster down the road by ignoring their hidden values.&lt;/p&gt;

&lt;h3&gt;
  
  
  1 | Failure as a value
&lt;/h3&gt;

&lt;p&gt;Failing fast has now become a fairly popular mentality, ensuring that we don’t invest too much time on the wrong features or concepts. Companies typically embrace A/B testing, rapid prototyping, and other methods to quickly assess preliminary value to users.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Being wrong fast is always better than being wrong slow. — &lt;a href="https://medium.com/@jamesh_str/failing-fast-and-the-baggage-therein-351371fd4fef"&gt;James Helms&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Aey6KZyx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2AUmNamjgwozz4mAz2" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Aey6KZyx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2AUmNamjgwozz4mAz2" alt=""&gt;&lt;/a&gt;Photo by &lt;a href="https://unsplash.com/@esteejanssens?utm_source=medium&amp;amp;utm_medium=referral"&gt;Estée Janssens&lt;/a&gt; on &lt;a href="https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;However, it’s not enough to focus on ensuring the right projects are being worked on. Following up and understanding how your users are &lt;strong&gt;&lt;em&gt;actually&lt;/em&gt;&lt;/strong&gt; using your product is just as important if not more so.&lt;/p&gt;

&lt;p&gt;It’s a dangerous assumption to take the results of a few preliminary tests and project them as success metrics.&lt;/p&gt;

&lt;p&gt;So how does a team justify the cost of investing in users if revenue is generated by clients or other stakeholders? Frame the problem (and solution) with failure.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If a team is focusing on the wrong priorities and concepts, they’ll risk wasting time and money on a feature/product that users don’t want. Invest time and resources into getting feedback by using tools such as &lt;a href="https://www.invisionapp.com/"&gt;Invision&lt;/a&gt; and &lt;a href="https://www.usertesting.com/"&gt;UserTesting&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Learn from real users and identify how your product features could be failing their intended use — if users see improvement in a feature, that could translate to a higher NPS (net promoter score) as well as adoptability.&lt;/li&gt;
&lt;li&gt;Speaking of NPS, actions speak louder than words and survey numbers. Invest in making real connections with your users to get more meaningful and realistic feedback, whether that be through social media or some type of community platform. Having trouble monitoring social media? Try a free monitoring tool such as &lt;a href="https://hootsuite.com/"&gt;HootSuite&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;The longer a company fails to address user needs, the more it loses credibility, the less users will be willing to provide feedback and the more likely they will try a different product.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use your users to your advantage to prioritize projects and align efforts based on their needs instead of purely direct revenue. Happy users tend to have better predicted behavior as well, which can help in calculating projections.&lt;/p&gt;

&lt;h3&gt;
  
  
  2 | Inspiration as a value
&lt;/h3&gt;

&lt;p&gt;Happy employees make happy customers. When your team is constantly working tedious, insignificant tasks, they can become unmotivated to think outside the box. Designing in a bubble can also lead to an echo chamber of mediocrity and contribute to a lack of innovation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qKeFIThd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2AO-5lG11-v7Biz93A" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qKeFIThd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2AO-5lG11-v7Biz93A" alt=""&gt;&lt;/a&gt;Photo by &lt;a href="https://unsplash.com/@pantiumforce?utm_source=medium&amp;amp;utm_medium=referral"&gt;Muhammad Haikal Sjukri&lt;/a&gt; on &lt;a href="https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That being said, of course every job has its share of repetitive tasks and work that frankly, just needs to get done.&lt;/p&gt;

&lt;p&gt;But how do we minimize those mundane aspects to maximize actual productivity and ensure that your employees are inspired and producing the best work of their lives?&lt;/p&gt;

&lt;p&gt;Invest in making sure your employees feel a sense of accomplishment and purpose in their work. Meaningful work can be the difference between “I like my job” and “I love what I do!” But what does meaningful work look like?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It isn’t repetitive, and therefore can’t be automated&lt;/li&gt;
&lt;li&gt;It’s unique or specialized &lt;strong&gt;and&lt;/strong&gt; has leadership support&lt;/li&gt;
&lt;li&gt;Has influence and acknowledgment outside of the direct working team&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YYWpnT3F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2ACxZGpWSvU-QSKs-e" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YYWpnT3F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2ACxZGpWSvU-QSKs-e" alt=""&gt;&lt;/a&gt;Photo by &lt;a href="https://unsplash.com/@rawpixel?utm_source=medium&amp;amp;utm_medium=referral"&gt;rawpixel&lt;/a&gt; on &lt;a href="https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Stakeholders and investors can be anxious when approving budgets that are tied to intangible benefits such as innovation and morale. Sometimes the expenses can seem completely unrelated to the work the team is doing. In these situations, it’s more important to look at the big picture than the specifics of where each dollar is going.&lt;/p&gt;

&lt;p&gt;How will spending money on making sure employees feel inspired benefit the business?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Teams inspired by other industries and outside influences have a competitive advantage. Instead of just thinking about how users are experiencing your product, it’s important to see what &lt;strong&gt;other products&lt;/strong&gt; they are using to paint a complete picture. Considering taking your team on a field trip to a local business to introduce them to the problems they’re trying to solve.&lt;/li&gt;
&lt;li&gt;Reduce redundant tasks. Is your team obsessed with pixel perfect comps before they’re headed for development? If your team is utilizing a design system, that extra effort could just be overkill. By naming layers the same as the components/classes that would be used in development, that could save significant time during the handoff phase. &lt;a href="https://avocode.com/"&gt;Avocode&lt;/a&gt; and &lt;a href="https://zeplin.io/"&gt;Zeplin&lt;/a&gt; are huge time-savers that allow for developers to inspect specs for designs.&lt;/li&gt;
&lt;li&gt;Design thinking isn’t just for designers. A business that understands their customer’s journey lines leads to empowered teams that produce innovative solutions. Not familiar with design thinking? Provide training for with an online course such as &lt;a href="https://www.ideou.com/pages/design-thinking#ldt"&gt;one of these on IDEO&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Inspired teams are passionate and proud about the work they do. Investing in their morale demonstrates acknowledgment of their effort and provides and opportunity to connect with your team. Engineering morale isn’t just about throwing sponsored happy hours or installing a pool table in the break room. True investment is listening in order to understand and support not only professional goals, but personal ones as well. As a leader, leave time on your calendar to connect with your team and make your own goals &lt;a href="https://www.linkedin.com/feed/update/urn:li:activity:6443482093308698624/"&gt;fully transparent&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;How can I help you? This simple question creates opportunities, matures collaboration and acts as a catalyst of understanding. — J.B. Chaykowsky&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  3 | Personalization as a value
&lt;/h3&gt;

&lt;p&gt;With the rise of design systems and popularity of frameworks such as &lt;a href="https://getbootstrap.com/"&gt;Bootstrap&lt;/a&gt;, it’s common to rely on a one-size-fits-all type of approach. From an investment standpoint, it makes perfect sense to use an established solution that scales well.&lt;/p&gt;

&lt;p&gt;Of course we all want to customize these generic templates and when we hear “customization,” it’s easy to jump to common overrides such as fonts, colors and icons.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OCB_Yisb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2AuuoGdZ1w5p9dbxTF" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OCB_Yisb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2AuuoGdZ1w5p9dbxTF" alt=""&gt;&lt;/a&gt;Photo by &lt;a href="https://unsplash.com/@onice?utm_source=medium&amp;amp;utm_medium=referral"&gt;Joey Huang&lt;/a&gt; on &lt;a href="https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some of these types of changes can also contribute to technical debt and problems later down the line when it comes to technical upgrades and scalability, so try not to be overzealous. &lt;strong&gt;&lt;em&gt;Do you really need that custom icon set?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To provide a true personalized, tailored experience to users, it isn’t necessary to override every element that comes with a template or framework. In fact, doing so could compromise the integrity and scalability of your codebase.&lt;/p&gt;

&lt;p&gt;Don’t forget that content is king for a reason. It’s also a great opportunity to add personalization to your product. Investing resources into personalized content is the easiest way to customize an experience without having to involve significant development effort.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provide more information and usability. Instead of “a new user has been added”, consider “You added &lt;a href="https://www.intercom.com/"&gt;&lt;strong&gt;Jane S.&lt;/strong&gt;&lt;/a&gt; to your favorites. &lt;a href="https://en.wikipedia.org/wiki/Jane_Smith"&gt;&lt;em&gt;Send her a message!&lt;/em&gt;&lt;/a&gt;” You’re being specific who was added &lt;strong&gt;and&lt;/strong&gt; a link to the profile as well as a quick call to action tied to this person.&lt;/li&gt;
&lt;li&gt;Make it relatable. Instead of using text to describe a feature, use creative storytelling and testimonials to establish trustworthiness. Tell your product’s story!&lt;/li&gt;
&lt;li&gt;Don’t make your users guess. Instead of a simply thanking someone for their business, provide as much information up front (order details, timeframe, etc). Don’t wait to tell them in an email! And above all else, make sure they feel confident about their actions/decisions.&lt;/li&gt;
&lt;li&gt;It’s tempting to default to another screen whenever you want to display new information. However, that can cause a disconnect to a user who isn’t as familiar with the information architecture. Instead, try other methods for content introduction such as drawers, modals and popups.&lt;/li&gt;
&lt;li&gt;Use what you know about your user to personalize their experience. Small things like prioritizing items that they regularly interact with on a dashboard makes a generic experience more catered to their own activity.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When considering the tone of your content, your product’s personality should shine through — it’s easy to fall into the trap of sounding too technical. Don’t miss out on the potential for delight that would make your product easier to use. By investing in crafting tailored content and experiences, your product has that extra layer of polish.&lt;/p&gt;

&lt;h3&gt;
  
  
  TLDR
&lt;/h3&gt;

&lt;p&gt;Value can sometimes be hard to define when it comes to choosing what to invest in as a company. When it comes to priorities and approaches to running a business, don’t ignore:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The needs of your  &lt;strong&gt;users&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;The needs of your  &lt;strong&gt;team&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;The needs of your  &lt;strong&gt;product&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kLvXiTUh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2A2_3m2c-FF67qLxNu" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kLvXiTUh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2A2_3m2c-FF67qLxNu" alt=""&gt;&lt;/a&gt;Photo by &lt;a href="https://unsplash.com/@hannynaibaho?utm_source=medium&amp;amp;utm_medium=referral"&gt;Hanny Naibaho&lt;/a&gt; on &lt;a href="https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>design</category>
      <category>failure</category>
      <category>business</category>
      <category>investment</category>
    </item>
  </channel>
</rss>
