Files
nexus/sreweekly/articles/31/10-learning-from-failure-at-etsy.html
2026-09-12 17:23:01 +08:00

393 lines
49 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Learning from Failure at Etsy &#8211; Kitchen Soap</title>
<meta name='robots' content='max-image-preview:large' />
<link rel="alternate" type="application/rss+xml" title="Kitchen Soap &raquo; Feed" href="https://www.kitchensoap.com/feed/" />
<link rel="alternate" type="application/rss+xml" title="Kitchen Soap &raquo; Comments Feed" href="https://www.kitchensoap.com/comments/feed/" />
<link rel="alternate" type="application/rss+xml" title="Kitchen Soap &raquo; Learning from Failure at Etsy Comments Feed" href="https://www.kitchensoap.com/2013/09/30/learning-from-failure-at-etsy/feed/" />
<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://www.kitchensoap.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.kitchensoap.com%2F2013%2F09%2F30%2Flearning-from-failure-at-etsy%2F" />
<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://www.kitchensoap.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.kitchensoap.com%2F2013%2F09%2F30%2Flearning-from-failure-at-etsy%2F&#038;format=xml" />
<style id="wp-img-auto-sizes-contain-inline-css">
img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
</style>
<style id="wp-emoji-styles-inline-css">
img.wp-smiley, img.emoji {
display: inline !important;
border: none !important;
box-shadow: none !important;
height: 1em !important;
width: 1em !important;
margin: 0 0.07em !important;
vertical-align: -0.1em !important;
background: none !important;
padding: 0 !important;
}
/*# sourceURL=wp-emoji-styles-inline-css */
</style>
<style id="wp-block-library-inline-css">
:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style*=border-color]){border-style:solid}html :where([style*=border-top-color]){border-top-style:solid}html :where([style*=border-right-color]){border-right-style:solid}html :where([style*=border-bottom-color]){border-bottom-style:solid}html :where([style*=border-left-color]){border-left-style:solid}html :where([style*=border-width]){border-style:solid}html :where([style*=border-top-width]){border-top-style:solid}html :where([style*=border-right-width]){border-right-style:solid}html :where([style*=border-bottom-width]){border-bottom-style:solid}html :where([style*=border-left-width]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */
</style>
<style id="classic-theme-styles-inline-css">
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
/*# sourceURL=/wp-includes/css/classic-themes.min.css */
</style>
<style id="global-styles-inline-css">
:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-family--libre-baskerville: "Libre Baskerville", serif;--wp--preset--font-family--jost: Jost, sans-serif;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}.has-libre-baskerville-font-family{font-family: var(--wp--preset--font-family--libre-baskerville) !important;}.has-jost-font-family{font-family: var(--wp--preset--font-family--jost) !important;}
/*# sourceURL=global-styles-inline-css */
</style>
<link rel='stylesheet' id='loupely-canvas-lite-css' href='https://www.kitchensoap.com/wp-content/cache/autoptimize/css/autoptimize_single_81547c2bf1b39fd0b27f64bee28baf0a.css?ver=1.2.3' media='all' />
<link rel='stylesheet' id='lclite-design-css' href='https://www.kitchensoap.com/wp-content/cache/autoptimize/css/autoptimize_single_768cee5b62c05603aae6f831a2301733.css?ver=1.2.3' media='all' />
<link rel="https://api.w.org/" href="https://www.kitchensoap.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://www.kitchensoap.com/wp-json/wp/v2/posts/9380" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.kitchensoap.com/xmlrpc.php?rsd" />
<link rel="canonical" href="https://www.kitchensoap.com/2013/09/30/learning-from-failure-at-etsy/" />
<link rel='shortlink' href='https://www.kitchensoap.com/?p=9380' />
<style class="wp-fonts-local">
@font-face{font-family:"Libre Baskerville";font-style:normal;font-weight:400;font-display:fallback;src:url('http://www.kitchensoap.com/wp-content/uploads/fonts/kmKUZrc3Hgbbcjq75U4uslyuy4kn0olVQ-LglH6T17uj8Q4SDAlOvuPCfQ.woff2') format('woff2');}
@font-face{font-family:"Libre Baskerville";font-style:normal;font-weight:700;font-display:fallback;src:url('http://www.kitchensoap.com/wp-content/uploads/fonts/kmKUZrc3Hgbbcjq75U4uslyuy4kn0olVQ-LglH6T17ujFgkSDAlOvuPCfQ.woff2') format('woff2');}
@font-face{font-family:"Libre Baskerville";font-style:italic;font-weight:400;font-display:fallback;src:url('http://www.kitchensoap.com/wp-content/uploads/fonts/kmKWZrc3Hgbbcjq75U4uslyuy4kn0qNccR04_RUJeby2OU36SgNPnObSfbge.woff2') format('woff2');}
@font-face{font-family:"Libre Baskerville";font-style:italic;font-weight:700;font-display:fallback;src:url('http://www.kitchensoap.com/wp-content/uploads/fonts/kmKWZrc3Hgbbcjq75U4uslyuy4kn0qNccR04_RUJeby2OU0dTQNPnObSfbge.woff2') format('woff2');}
@font-face{font-family:Jost;font-style:normal;font-weight:400;font-display:fallback;src:url('http://www.kitchensoap.com/wp-content/uploads/fonts/92zPtBhPNqw79Ij1E865zBUv7myjJQVDPokMmuHL.woff2') format('woff2');}
@font-face{font-family:Jost;font-style:normal;font-weight:700;font-display:fallback;src:url('http://www.kitchensoap.com/wp-content/uploads/fonts/92zPtBhPNqw79Ij1E865zBUv7mxEIgVDPokMmuHL.woff2') format('woff2');}
@font-face{font-family:Jost;font-style:italic;font-weight:400;font-display:fallback;src:url('http://www.kitchensoap.com/wp-content/uploads/fonts/92zJtBhPNqw73oHH7BbQp4-B6XlrZu0FNIgun_HLMEo.woff2') format('woff2');}
@font-face{font-family:Jost;font-style:italic;font-weight:700;font-display:fallback;src:url('http://www.kitchensoap.com/wp-content/uploads/fonts/92zJtBhPNqw73oHH7BbQp4-B6XlrZgoCNIgun_HLMEo.woff2') format('woff2');}
</style>
<!-- BEGIN Adobe Fonts for WordPress --><!-- END Adobe Fonts for WordPress --></head>
<body class="wp-singular post-template-default single single-post postid-9380 single-format-standard wp-embed-responsive wp-theme-loupely-canvas-lite">
<a class="lclite-skip-link screen-reader-text" href="#lclite-main-content">Skip to content</a>
<header class="lclite-site-header">
<div class="lclite-header-inner">
<div class="lclite-branding">
<a class="lclite-site-title" href="https://www.kitchensoap.com/" rel="home">Kitchen Soap</a><p class="lclite-tagline">Thoughts on systems safety, software operations, and sociotechnical systems.</p> </div>
<nav class="lclite-nav" aria-label="Primary">
<ul id="menu-menu-1" class="menu"><li id="menu-item-9440" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-9440"><a href="https://www.kitchensoap.com/about-me/">About Me</a></li>
<li id="menu-item-9441" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-9441"><a href="https://www.kitchensoap.com/category/talks/">Talks</a></li>
<li id="menu-item-9444" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-9444"><a href="https://www.kitchensoap.com/category/books/">Books</a></li>
<li id="menu-item-9501" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-item-9501"><a href="https://www.kitchensoap.com/category/complex-systems/">Complex Systems</a></li>
<li id="menu-item-9502" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-item-9502"><a href="https://www.kitchensoap.com/category/human-factors/">Human Factors</a></li>
<li id="menu-item-9503" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-9503"><a href="https://www.kitchensoap.com/category/webops/">WebOps</a></li>
</ul> </nav>
</div>
</header>
<main id="lclite-main-content" class="lclite-content">
<div class="lclite-blog">
<article id="post-9380" class="lclite-post post-9380 post type-post status-publish format-standard hentry category-cognitive-systems-engineering category-complex-systems category-culture category-etsy category-human-factors category-systems-safety">
<header class="lclite-entry-header">
<h1 class="lclite-entry-title">Learning from Failure at Etsy</h1> <p class="lclite-entry-meta">
<span class="lclite-posted-on">September 30, 2013</span>
<span class="lclite-byline">
by allspaw </span>
</p>
</header>
<div class="lclite-entry-content lclite-prose">
<p><em>(This was originally <a title="Blameless Postmortems" href="http://codeascraft.com/2012/05/22/blameless-postmortems/" target="_blank" rel="noopener">posted</a> on Code As Craft, Etsy&#8217;s engineering blog. I&#8217;m re-posting it here because it still resonates strongly as I prepare to teach a &#8216;postmortem facilitator&#8217;s course internally at Etsy.)</em></p>
<p>Last week, Owen Thomas wrote a flattering <a title="Don't Play The Blame Game" href="http://articles.businessinsider.com/2012-05-15/tech/31708880_1_etsy-mortem-blameless" target="_blank" rel="noopener">article over at Business Insider</a> on how we handle errors and mistakes at Etsy. I thought I might give some detail on how that actually happens, and why.</p>
<p>Anyone who&#8217;s worked with technology at any scale is familiar with failure. Failure cares not about the architecture designs you slave over, the code you write and review, or the alerts and metrics you meticulously pore through.</p>
<p>So: failure happens. This is a foregone conclusion when working with complex systems. But what about those failures that have resulted due to the actions (or lack of action, in some cases) of individuals? What do you do with those careless humans who caused everyone to have a bad day?</p>
<p>Maybe they should be fired.</p>
<p>Or maybe they need to be prevented from touching the dangerous bits again.</p>
<p>Or maybe they need more training.</p>
<p>This is the traditional view of &#8220;human error&#8221;, which focuses on the characteristics of the <em>individuals</em> involved. It&#8217;s what <a title="Sidney Dekker" href="http://sidneydekker.com/" target="_blank" rel="noopener">Sidney Dekker</a> calls the &#8220;Bad Apple Theory&#8221; &#8211; get rid of the bad apples, and you&#8217;ll get rid of the human error. Seems simple, right?</p>
<p>We don&#8217;t take this traditional view at Etsy. We instead want to view mistakes, errors, slips, lapses, etc. with a perspective of <em>learning</em>. Having blameless Post-Mortems on outages and accidents are part of that.</p>
<h2><strong>A Blameless Post-Mortem</strong></h2>
<p>What does it mean to have a &#8216;blameless&#8217; Post-Mortem?<br />
Does it mean everyone gets off the hook for making mistakes? No.</p>
<p>Well, maybe. It depends on what &#8220;gets off the hook&#8221; means. Let me explain.</p>
<p>Having a <strong>Just Culture</strong> means that you&#8217;re making effort to balance safety <strong><em>and</em></strong> accountability. It means that by investigating mistakes in a way that focuses on the situational aspects of a failure&#8217;s mechanism and the decision-making process of individuals proximate to the failure, an organization can come out safer than it would normally be if it had simply punished the actors involved as a remediation.</p>
<p>Having a &#8220;blameless&#8221; Post-Mortem process means that engineers whose actions have contributed to an accident can give a detailed account of:</p>
<ul>
<li>what actions they took at what time,</li>
<li>what effects they observed,</li>
<li>expectations they had,</li>
<li>assumptions they had made,</li>
<li>and their understanding of timeline of events as they occurred.</li>
</ul>
<p>&#8230;and that they can give this detailed account <strong><em>without fear of punishment or retribution.</em></strong></p>
<p>Why shouldn&#8217;t they be punished or reprimanded? Because an engineer who thinks they&#8217;re going to be reprimanded are <em>disincentivized</em> to give the details necessary to get an understanding of the mechanism, pathology, and operation of the failure. This lack of understanding of how the accident occurred all but guarantees that it <em><strong>will</strong></em> repeat. If not with the original engineer, another one in the future.</p>
<p>We believe that this detail is paramount to improving safety at Etsy.</p>
<p>If we go with &#8220;blame&#8221; as the predominant approach, then we&#8217;re implicitly accepting that <em>deterrence</em> is how organizations become safer. This is founded in the belief that individuals, not situations, cause errors. It&#8217;s also aligned with the idea there has to be some fear that <strong>not</strong> doing one&#8217;s job correctly could lead to punishment. Because the fear of punishment will motivate people to act correctly in the future. Right?</p>
<p>This cycle of name/blame/shame can be looked at like this:</p>
<ol>
<li>Engineer takes action and contributes to a failure or incident.</li>
<li>Engineer is punished, shamed, blamed, or retrained.</li>
<li>Reduced trust between engineers on the ground (the &#8220;sharp end&#8221;) and management (the &#8220;blunt end&#8221;) looking for someone to scapegoat</li>
<li>Engineers become silent on details about actions/situations/observations, resulting in &#8220;Cover-Your-Ass&#8221; engineering (from fear of punishment)</li>
<li>Management becomes less aware and informed on how work is being performed day to day, and engineers become less educated on lurking or latent conditions for failure due to silence mentioned in #4, above</li>
<li>Errors more likely, latent conditions can&#8217;t be identified due to #5, above</li>
<li>Repeat from step 1</li>
</ol>
<p>We need to avoid this cycle. We want the engineer who has made an error give details about why (either explicitly or implicitly) he or she did what they did; why the action made sense to them at the time. This is paramount to understanding the pathology of the failure. The action made sense to the person at the time they took it, because if it hadn&#8217;t made sense to them at the time, they <strong><em>wouldn&#8217;t have taken the action in the first place.</em></strong></p>
<p>The base fundamental here is something <a title="Erik Hollnagel" href="http://www.erikhollnagel.com/" target="_blank" rel="noopener">Erik Hollnagel</a> has said:</p>
<blockquote><p><em>We must strive to understand that accidents don&#8217;t happen because people gamble and lose.</em><br />
<em>Accidents happen because the person believes that:</em><br />
<em>&#8230;what is about to happen is not possible,</em><br />
<em>&#8230;or what is about to happen has no connection to what they are doing,</em><br />
<em>&#8230;or that the possibility of getting the intended outcome is well worth whatever risk there is.</em><strong><em><br />
</em></strong></p></blockquote>
<h2><strong>A Second Story</strong></h2>
<p>This idea of digging deeper into the circumstance and environment that an engineer found themselves in is called looking for the &#8220;Second Story&#8221;. In Post-Mortem meetings, we want to find Second Stories to help understand what went wrong.</p>
<p>From <a title="Behind Human Error" href="http://www.amazon.com/Behind-Human-Error-David-Woods/dp/0754678342" target="_blank" rel="noopener">Behind Human Error</a> here&#8217;s the difference between &#8220;first&#8221; and &#8220;second&#8221; stories of human error:</p>
<table style="width: 100%;" border="1" cellspacing="0" cellpadding="2">
<tbody>
<tr>
<td valign="top"><strong><em>First Stories</em></strong></td>
<td valign="top"><strong><em>Second Stories</em></strong></td>
</tr>
<tr>
<td valign="top">Human error is seen as cause of failure</td>
<td valign="top">Human error is seen as the effect of systemic vulnerabilities deeper inside the organization</td>
</tr>
<tr>
<td valign="top">Saying what people should have done is a satisfying way to describe failure</td>
<td valign="top">Saying what people should have done doesn&#8217;t explain why it made sense for them to do what they did</td>
</tr>
<tr>
<td valign="top">Telling people to be more careful will make the problem go away</td>
<td valign="top">Only by constantly seeking out its vulnerabilities can organizations enhance safety</td>
</tr>
</tbody>
</table>
<h2><strong>Allowing Engineers to Own Their Own Stories</strong></h2>
<p>A funny thing happens when engineers make mistakes and feel safe when giving details about it: they are not only willing to be held accountable, they are also enthusiastic in helping the rest of the company avoid the same error in the future. They are, after all, the most expert in their own error. They ought to be <em>heavily</em> involved in coming up with remediation items.</p>
<p>So technically, engineers are not at all &#8220;off the hook&#8221; with a blameless PostMortem process. They are very much on the hook for helping Etsy become safer and more resilient, in the end. And lo and behold: most engineers I know find this idea of making things better for others a worthwhile exercise.</p>
<p>So what do we do to enable a &#8220;Just Culture&#8221; at Etsy?</p>
<ul>
<li>We encourage learning by having these blameless Post-Mortems on outages and accidents.</li>
<li>The goal is to understand <strong>how </strong>an accident could have happened, in order to better equip ourselves from it happening in the future</li>
<li>We seek out Second Stories, gather details from multiple perspectives on failures, and we don&#8217;t punish people for making mistakes.</li>
<li>Instead of punishing engineers, we instead give them the <em>requisite authority</em> to improve safety by allowing them to give detailed accounts of their contributions to failures.</li>
<li>We enable and encourage people who <em>do</em> make mistakes to be the experts on educating the rest of the organization how not to make them in the future.</li>
<li>We accept that there is always a discretionary space where humans can decide to make actions or not, and that the judgement of those decisions lie in hindsight.</li>
<li>We accept that the <a title="Hindsight Bias" href="http://en.wikipedia.org/wiki/Hindsight" target="_blank" rel="noopener">Hindsight Bias</a> will continue to cloud our assessment of past events, and work hard to eliminate it.</li>
<li>We accept that the <a title="Fundamental Attribution Error" href="http://en.wikipedia.org/wiki/Fundamental_attribution_error" target="_blank" rel="noopener">Fundamental Attribution Error</a> is also difficult to escape, so we focus on the environment and circumstances people are working in when investigating accidents.</li>
<li>We strive to make sure that the blunt end of the organization understands how work is <strong>actually</strong> getting done (as opposed to how they <strong>imagine</strong> <strong>(or hope)</strong> it&#8217;s getting done, via Gantt charts and procedures) on the sharp end.</li>
<li>The sharp end is relied upon to inform the organization where the line is between appropriate and inappropriate behavior. This isn&#8217;t something that the blunt end can come up with on its own.</li>
</ul>
<p>Failure happens. In order to understand how failures happen, we first have to understand our <em><strong>reactions</strong></em> to failure.</p>
<p>One option is to assume the single cause is incompetence and scream at engineers to make them &#8220;pay attention!&#8221; or &#8220;be more careful!&#8221;</p>
<p>Another option is to take a hard look at how the accident actually happened, treat the engineers involved with respect, and <em>learn</em> from the event.</p>
<p>That&#8217;s why we have blameless Post-Mortems at Etsy, and why we&#8217;re looking to create a Just Culture here.</p>
</div>
<footer class="lclite-entry-footer">
<p class="lclite-cats"><a href="https://www.kitchensoap.com/category/cognitive-systems-engineering/" rel="category tag">Cognitive Systems Engineering</a>, <a href="https://www.kitchensoap.com/category/complex-systems/" rel="category tag">Complex Systems</a>, <a href="https://www.kitchensoap.com/category/culture/" rel="category tag">Culture</a>, <a href="https://www.kitchensoap.com/category/etsy/" rel="category tag">Etsy</a>, <a href="https://www.kitchensoap.com/category/human-factors/" rel="category tag">Human Factors</a>, <a href="https://www.kitchensoap.com/category/systems-safety/" rel="category tag">Systems Safety</a></p>
</footer>
</article>
<nav class="navigation post-navigation" aria-label="Posts">
<h2 class="screen-reader-text">Post navigation</h2>
<div class="nav-links"><div class="nav-previous"><a href="https://www.kitchensoap.com/2013/08/20/a-mature-role-for-automation-part-ii/" rel="prev"><span class="lclite-nav-label">Previous post</span> A Mature Role for Automation: Part II</a></div><div class="nav-next"><a href="https://www.kitchensoap.com/2013/10/29/counterfactuals-knight-capital/" rel="next"><span class="lclite-nav-label">Next post</span> Counterfactual Thinking, Rules, and The Knight Capital Accident</a></div></div>
</nav><div id="comments" class="lclite-comments">
<h2 class="lclite-comments-title">
20 comments </h2>
<ol class="lclite-comment-list">
<li id="comment-12442" class="pingback even thread-even depth-1">
<div class="comment-body">
Pingback: <a href="http://maol.ch/2013/10/01/learning-from-failure-at-etsy" class="url" rel="ugc external nofollow">M-A-O-L &raquo; Learning from Failure at Etsy</a> </div>
</li><!-- #comment-## -->
<li id="comment-12443" class="comment odd alt thread-odd thread-alt depth-1">
<article id="div-comment-12443" class="comment-body">
<footer class="comment-meta">
<div class="comment-author vcard">
<b class="fn">kris</b> <span class="says">says:</span> </div><!-- .comment-author -->
<div class="comment-metadata">
<a href="https://www.kitchensoap.com/2013/09/30/learning-from-failure-at-etsy/#comment-12443"><time datetime="2013-10-01T09:56:41-08:00">October 1, 2013 at 9:56 am</time></a> </div><!-- .comment-metadata -->
</footer><!-- .comment-meta -->
<div class="comment-content">
<p>since i am retired now and can not work there.. i want my son to grow up and work there.</p>
</div><!-- .comment-content -->
</article><!-- .comment-body -->
</li><!-- #comment-## -->
<li id="comment-12447" class="comment even thread-even depth-1">
<article id="div-comment-12447" class="comment-body">
<footer class="comment-meta">
<div class="comment-author vcard">
<b class="fn"><a href="http://dumbsoutherner.com" class="url" rel="ugc external nofollow">Fred</a></b> <span class="says">says:</span> </div><!-- .comment-author -->
<div class="comment-metadata">
<a href="https://www.kitchensoap.com/2013/09/30/learning-from-failure-at-etsy/#comment-12447"><time datetime="2013-10-04T04:05:16-08:00">October 4, 2013 at 4:05 am</time></a> </div><!-- .comment-metadata -->
</footer><!-- .comment-meta -->
<div class="comment-content">
<p>I&#8217;ve worked in software/hardware engineering for over three decades, and participated in countless post-mortems. While I&#8217;ve often tried to support my engineers and techs by repeating things like, &#8220;Folks who never make a mistake probably aren&#8217;t producing anything&#8221;, after reading this article, I am now horribly embarrassed and humbled to admit I&#8217;ve sometimes been guilty of subscribing to the Bad Apple Theory. This article is *brilliant*. You&#8217;ve taught an old dog a very valuable new trick, and I fully intend to put it into practice. I suspect you&#8217;ve just made me a better engineer. Thank you.</p>
</div><!-- .comment-content -->
</article><!-- .comment-body -->
</li><!-- #comment-## -->
<li id="comment-12448" class="pingback odd alt thread-odd thread-alt depth-1">
<div class="comment-body">
Pingback: <a href="http://www.trisis.co.uk/blog/?p=1950" class="url" rel="ugc external nofollow">Lessons on blame, most companies need to heed. &laquo; Simon Kenyon Shepard :: justLikeThat.</a> </div>
</li><!-- #comment-## -->
<li id="comment-12461" class="comment even thread-even depth-1">
<article id="div-comment-12461" class="comment-body">
<footer class="comment-meta">
<div class="comment-author vcard">
<b class="fn">Alberto</b> <span class="says">says:</span> </div><!-- .comment-author -->
<div class="comment-metadata">
<a href="https://www.kitchensoap.com/2013/09/30/learning-from-failure-at-etsy/#comment-12461"><time datetime="2013-10-12T00:04:06-08:00">October 12, 2013 at 12:04 am</time></a> </div><!-- .comment-metadata -->
</footer><!-- .comment-meta -->
<div class="comment-content">
<p>Great tactics this Just Culture, from my point of view. But given that failure is norm, particularly when you are building sth new; that people tend tu build up their experience just because we don&#8217;t really recall what really happened after a few hours of taking the wrong decision; that people usually tend to repeat at least twice the same mistake before acknowledging they maybe wrong; and that the situation is not really repeating itself in the future, I&#8217;m wondering:<br />
1) how do you balance failure in executing a successful working model with innovation (a new working model).<br />
2) under which consideration is a deed or a decision given the failure status.<br />
3) who is scanning for failures?<br />
4) how do you make sure that a flawless process is not leading Etsy to a certain, planned, unforseen cliff?<br />
Thanks in advance.</p>
</div><!-- .comment-content -->
</article><!-- .comment-body -->
</li><!-- #comment-## -->
<li id="comment-12500" class="pingback odd alt thread-odd thread-alt depth-1">
<div class="comment-body">
Pingback: <a href="http://blog.scottlowe.org/2013/10/23/technology-short-take-36/" class="url" rel="ugc external nofollow">Technology Short Take #36 - blog.scottlowe.org - The weblog of an IT pro specializing in virtualization, storage, and servers</a> </div>
</li><!-- #comment-## -->
<li id="comment-12505" class="comment even thread-even depth-1">
<article id="div-comment-12505" class="comment-body">
<footer class="comment-meta">
<div class="comment-author vcard">
<b class="fn"><a href="http://use-cases.org/" class="url" rel="ugc external nofollow">Matthew Tippett</a></b> <span class="says">says:</span> </div><!-- .comment-author -->
<div class="comment-metadata">
<a href="https://www.kitchensoap.com/2013/09/30/learning-from-failure-at-etsy/#comment-12505"><time datetime="2013-10-23T14:25:28-08:00">October 23, 2013 at 2:25 pm</time></a> </div><!-- .comment-metadata -->
</footer><!-- .comment-meta -->
<div class="comment-content">
<p>In the software organizations that I manage, I have a standard &#8220;Root Cause Analysis&#8221; (RCA) template that we follow. It has standard sections &#8211; Narrative, Timeline, Analysis (Modified Ishakawa, etc), Corrective Actions. It is intended to be as objective and impersonal as possible. Interestingly most of the RCA templates that I have seen tend to make it an onerous and painful experience. </p>
<p>When recent regrettable mistake occurred, we went through the RCA over the course of a few hours. Once the feeling of it being a witch hunt and blame game had been put to rest, the engineers began to really explore what went wrong, how it went wrong, and what led to it occurring. </p>
<p>In the end we walked away with a couple of key fixes for the issue, but a whole collection of other corrective actions that really helped the engineers understand how they can directly contribute to improving their deliver and reducing cringe moments when something goes wrong.</p>
</div><!-- .comment-content -->
</article><!-- .comment-body -->
</li><!-- #comment-## -->
<li id="comment-12531" class="comment odd alt thread-odd thread-alt depth-1">
<article id="div-comment-12531" class="comment-body">
<footer class="comment-meta">
<div class="comment-author vcard">
<b class="fn"><a href="http://vidiq.com" class="url" rel="ugc external nofollow">Todd Troxell</a></b> <span class="says">says:</span> </div><!-- .comment-author -->
<div class="comment-metadata">
<a href="https://www.kitchensoap.com/2013/09/30/learning-from-failure-at-etsy/#comment-12531"><time datetime="2013-10-28T17:54:01-08:00">October 28, 2013 at 5:54 pm</time></a> </div><!-- .comment-metadata -->
</footer><!-- .comment-meta -->
<div class="comment-content">
<p>Excellent perspective &#8211; many could learn from this.</p>
</div><!-- .comment-content -->
</article><!-- .comment-body -->
</li><!-- #comment-## -->
<li id="comment-12534" class="pingback even thread-even depth-1">
<div class="comment-body">
Pingback: <a href="http://www.kitchensoap.com/2013/10/29/counterfactuals-knight-capital/" class="url" rel="ugc">Counterfactual Thinking, Rules, and The Knight Capital Accident | Kitchen Soap</a> </div>
</li><!-- #comment-## -->
<li id="comment-12556" class="pingback odd alt thread-odd thread-alt depth-1">
<div class="comment-body">
Pingback: <a href="http://www.jacopretorius.net/2013/11/top-reads-for-october.html" class="url" rel="ugc external nofollow">Top Reads for October - Jaco Pretorius</a> </div>
</li><!-- #comment-## -->
<li id="comment-12691" class="pingback even thread-even depth-1">
<div class="comment-body">
Pingback: <a href="http://major.io/2013/11/13/one-year-in-information-security/" class="url" rel="ugc external nofollow">One year in information security | major.io</a> </div>
</li><!-- #comment-## -->
<li id="comment-13157" class="pingback odd alt thread-odd thread-alt depth-1">
<div class="comment-body">
Pingback: <a href="http://www.timglu.com/%d0%be%d0%ba%d1%82%d1%8f%d0%b1%d1%80%d1%8c%d1%81%d0%ba%d0%b0%d1%8f-%d0%bb%d0%b5%d0%bd%d1%82%d0%b0-%d0%bb%d1%83%d1%87%d1%88%d0%b5%d0%b5-%d0%b7%d0%b0-%d0%bc%d0%b5%d1%81%d1%8f%d1%86" class="url" rel="ugc external nofollow">Октябрьская лента: лучшее за месяц</a> </div>
</li><!-- #comment-## -->
<li id="comment-13314" class="comment even thread-even depth-1">
<article id="div-comment-13314" class="comment-body">
<footer class="comment-meta">
<div class="comment-author vcard">
<b class="fn"><a href="http://javarevisited.blogspot.com" class="url" rel="ugc external nofollow">Ajinkya</a></b> <span class="says">says:</span> </div><!-- .comment-author -->
<div class="comment-metadata">
<a href="https://www.kitchensoap.com/2013/09/30/learning-from-failure-at-etsy/#comment-13314"><time datetime="2014-01-22T02:26:42-08:00">January 22, 2014 at 2:26 am</time></a> </div><!-- .comment-metadata -->
</footer><!-- .comment-meta -->
<div class="comment-content">
<p>Learning from failures are valuable lesson, it its not different here as well.</p>
</div><!-- .comment-content -->
</article><!-- .comment-body -->
</li><!-- #comment-## -->
<li id="comment-13321" class="pingback odd alt thread-odd thread-alt depth-1">
<div class="comment-body">
Pingback: <a href="http://www.timglu.com/%d0%be%d0%ba%d1%82%d1%8f%d0%b1%d1%80%d1%8c%d1%81%d0%ba%d0%b0%d1%8f-%d0%bb%d0%b5%d0%bd%d1%82%d0%b0-%d0%bb%d1%83%d1%87%d1%88%d0%b5%d0%b5-%d0%b7%d0%b0-%d0%bc%d0%b5%d1%81%d1%8f%d1%86" class="url" rel="ugc external nofollow">Октябрьская лента: лучшее за месяц (2013)</a> </div>
</li><!-- #comment-## -->
<li id="comment-13887" class="pingback even thread-even depth-1">
<div class="comment-body">
Pingback: <a href="http://www.kitchensoap.com/2014/03/19/paradigm-check-point-prefacing-debriefings/" class="url" rel="ugc">Paradigm Check Point: Prefacing Debriefings | Kitchen Soap</a> </div>
</li><!-- #comment-## -->
<li id="comment-46297" class="pingback odd alt thread-odd thread-alt depth-1">
<div class="comment-body">
Pingback: <a href="http://radar.oreilly.com/2015/01/devops-keeps-it-cool-with-ice.html" class="url" rel="ugc external nofollow">DevOps keeps it cool with ICE - O'Reilly Radar</a> </div>
</li><!-- #comment-## -->
<li id="comment-68197" class="pingback even thread-even depth-1">
<div class="comment-body">
Pingback: <a href="http://imasters.com.br/desenvolvimento/fazendo-devops-funcionar-fora-de-webops/?trace=1519021197&#038;source" class="url" rel="ugc external nofollow">Fazendo Devops funcionar fora de Webops -</a> </div>
</li><!-- #comment-## -->
<li id="comment-80179" class="pingback odd alt thread-odd thread-alt depth-1">
<div class="comment-body">
Pingback: <a href="http://sreweekly.com/sre-weekly-issue-31/" class="url" rel="ugc external nofollow">SRE Weekly Issue #31 &#8211; SRE WEEKLY</a> </div>
</li><!-- #comment-## -->
<li id="comment-107312" class="pingback even thread-even depth-1">
<div class="comment-body">
Pingback: <a href="https://parrhesiaparousia.wordpress.com/2019/03/27/autism-and-its-discontents-from-boren/" class="url" rel="ugc external nofollow">Autism and its discontents (from Boren) &#8211; Parrhesia Parousia</a> </div>
</li><!-- #comment-## -->
<li id="comment-111683" class="pingback odd alt thread-odd thread-alt depth-1">
<div class="comment-body">
Pingback: <a href="http://orion.znakigame.ru/xabraxabr/avarii-pomogayut-uchitsya/" class="url" rel="ugc external nofollow">Аварии помогают учиться | Компьюлента</a> </div>
</li><!-- #comment-## -->
</ol>
<p class="lclite-no-comments">Comments are closed.</p>
</div>
</div>
</main>
<footer class="lclite-site-footer">
<div class="lclite-footer-inner">
<span class="lclite-footer-title">Kitchen Soap</span>
<p class="lclite-colophon">
&copy; 2026 Kitchen Soap </p>
</div>
</footer>
<script type="speculationrules">
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/loupely-canvas-lite/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
</script>
<script id="wp-emoji-settings" type="application/json">
{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://www.kitchensoap.com/wp-includes/js/wp-emoji-release.min.js?ver=7.0.4"}}
</script>
<script type="module">
/*! This file is auto-generated */
var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))});
//# sourceURL=https://www.kitchensoap.com/wp-includes/js/wp-emoji-loader.min.js
</script>
</body>
</html>