CINXE.COM
AI Engineers Need to Think Beyond Engineering
<!DOCTYPE html> <!--[if IE 8]> <html class="ie8 "> <![endif]--> <!--[if IE 9]> <html class="ie9 "> <![endif]--> <!--[if !IE]><!--> <html class=""> <!--<![endif]--><!-- _____________ _ _ hbr.org _ |/////////////| | | | | | | |:\/E:R|:T/\S:| | |__| | __ _ _ ____ ____ _ _ __ __| | |+++++++++++++| | __ |/ _` | '__\ \ / / _` | '__/ _` | |\:+:\ /:+:/| | | | | (_| | | \ V / (_| | | | (_| | | \:::\ /:::/ | |_|__|_|\__,_|_| _ \_/ \__,_|_| \__,_| \ \ ::+:: / / | _ \ (_) \ /::/ \::\ / | |_) |_ _ ___ _ _ __ ___ ___ ___ \+:/ \:+/ | _ <| | | / __| | '_ \ / _ \/ __/ __| \/_____\/ | |_) | |_| \__ \ | | | | __/\__ \__ \ To improve the |____/ \__,_|___/_|_| |_|\___||___/___/ practice of | __ \ (_) management and | |__) |_____ ___ _____ __ its impact in a | _ // _ \ \ / / |/ _ \ \ /\ / / changing world. | | \ \ __/\ V /| | __/\ V V / est. 1922 |_| \_\___| \_/ |_|\___| \_/\_/ --> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="msapplication-config" content="none"/> <title>AI Engineers Need to Think Beyond Engineering</title> <link rel="canonical" href="https://hbr.org/2020/10/ai-engineers-need-to-think-beyond-engineering"/> <meta name="item-id" content="tag:blogs.harvardbusiness.org,2007-03-31:999.278372"/> <meta property="og:type" content="article"/> <meta property="article:section" content="Technology and analytics"/> <meta name="twitter:site" content="@harvardbiz"/> <meta name="item-name" content="AI Engineers Need to Think Beyond Engineering"/> <meta name="page-category-name" content="Technology and analytics"/> <meta name="description" content="It is very, very easy for a well-intentioned AI practitioner to inadvertently do harm when they set out to do good — AI has the power to amplify unfair biases, making innate biases exponentially more harmful. Because AI often interacts with complex social systems, where correlation and causation might not be immediately clear — or even easily discernible — AI practitioners need to build partnerships with community members, stakeholders, and experts to help them better understand the world they’re interacting with and the implications of making mistakes. Community-based system dynamics (CBSD) is a promising participatory approach to understanding complex social systems that does just that."/> <meta property="article:publisher" content="https://www.facebook.com/HBR"/> <meta property="article:modified_time" content="2020-11-13T19:26:47Z"/> <meta property="og:image" content="https://hbr.org/resources/images/article_assets/2020/10/Oct20_28_-1136623583.jpg"/> <meta name="apple-itunes-app" content="app-id=1445571382, app-argument=https://hbr.org"/> <meta name="twitter:card" content="summary_large_image"/> <meta property="article:published_time" content="2020-10-28T12:45:22Z"/> <meta property="og:url" content="https://hbr.org/2020/10/ai-engineers-need-to-think-beyond-engineering"/> <meta property="article:tag" content="Technology and analytics"/> <meta name="twitter:image" content="https://hbr.org/resources/images/article_assets/2020/10/Oct20_28_-1136623583.jpg"/> <meta name="primary-editor" content="182"/> <meta property="og:description" content="It is very, very easy for a well-intentioned AI practitioner to inadvertently do harm when they set out to do good — AI has the power to amplify unfair biases, making innate biases exponentially more harmful. Because AI often interacts with complex social systems, where correlation and causation might not be immediately clear — or even easily discernible — AI practitioners need to build partnerships with community members, stakeholders, and experts to help them better understand the world they’re interacting with and the implications of making mistakes. Community-based system dynamics (CBSD) is a promising participatory approach to understanding complex social systems that does just that."/> <meta name="twitter:creator" content="@harvardbiz"/> <meta name="article-content-type" content="Digital Article"/> <meta property="og:site_name" content="Harvard Business Review"/> <meta name="viewport" content="initial-scale=1,width=device-width"/> <meta name="page-category-id" content="391807"/> <meta name="uid" content="6E9547A5E93C61163E9FEB00031C51DE"/> <meta name="shopper-attributes" content="state:guest"/> <meta property="og:title" content="AI Engineers Need to Think Beyond Engineering"/> <meta name="page-type" content="ITEM"/> <meta name="page-id" content="300"/> <meta name="ox-group" content="537063787"/> <meta name="robots" content="max-image-preview:large"> <!--[if lt IE 9]> <script type="text/javascript" src="/resources/js/support/hbr/elements.js"></script> <script type="text/javascript" src="/resources/js/support/foundation/foundation.js"></script> <![endif]--> <script type="text/javascript"> ;window.NREUM||(NREUM={});NREUM.init={distributed_tracing:{enabled:true},privacy:{cookies_enabled:true}}; ;NREUM.loader_config={accountID:"858143",trustKey:"858143",agentID:"16887721",licenseKey:"e93df31780",applicationID:"8171118"}; ;NREUM.info={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",licenseKey:"e93df31780",applicationID:"8171118",sa:1}; ;/*! For license information please see nr-loader-spa-1.246.0.min.js.LICENSE.txt */ (()=>{"use strict";var e,t,r={234:(e,t,r)=>{r.d(t,{P_:()=>g,Mt:()=>v,C5:()=>s,DL:()=>A,OP:()=>D,lF:()=>N,Yu:()=>x,Dg:()=>m,CX:()=>c,GE:()=>w,sU:()=>j});var n=r(8632),i=r(9567);const o={beacon:n.ce.beacon,errorBeacon:n.ce.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.D)(t,o),(0,n.Qy)(e,a[e],"info")}const u=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var d=r(7056),l=r(50);const f=()=>{const e={mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{feature_flags:[],proxy:{assets:void 0,beacon:void 0},privacy:{cookies_enabled:!0},ajax:{deny_list:void 0,block_internal:!0,enabled:!0,harvestTimeSeconds:10,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},session:{domain:void 0,expiresMs:d.oD,inactiveMs:d.Hb},ssl:void 0,obfuscate:void 0,jserrors:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},metrics:{enabled:!0,autoStart:!0},page_action:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,long_task:!1,autoStart:!0},session_trace:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},harvest:{tooManyRequestsDelay:60},session_replay:{autoStart:!0,enabled:!1,harvestTimeSeconds:60,sampling_rate:50,error_sampling_rate:50,collect_fonts:!1,inline_images:!1,inline_stylesheet:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){u(t)?e.mask_selector=t+",[data-nr-mask]":null===t?e.mask_selector=t:(0,l.Z)("An invalid session_replay.mask_selector was provided and will not be used",t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){u(t)?e.block_selector+=",".concat(t):""!==t&&(0,l.Z)("An invalid session_replay.block_selector was provided and will not be used",t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,l.Z)("An invalid session_replay.mask_input_option was provided and will not be used",t)}},spa:{enabled:!0,harvestTimeSeconds:10,autoStart:!0}}},h={},p="All configuration objects require an agent identifier!";function g(e){if(!e)throw new Error(p);if(!h[e])throw new Error("Configuration for ".concat(e," was never set"));return h[e]}function m(e,t){if(!e)throw new Error(p);h[e]=(0,i.D)(t,f()),(0,n.Qy)(e,h[e],"config")}function v(e,t){if(!e)throw new Error(p);var r=g(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}const b={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},y={};function A(e){if(!e)throw new Error("All loader-config objects require an agent identifier!");if(!y[e])throw new Error("LoaderConfig for ".concat(e," was never set"));return y[e]}function w(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");y[e]=(0,i.D)(t,b),(0,n.Qy)(e,y[e],"loader_config")}const x=(0,n.mF)().o;var E=r(385),_=r(6818);const T={buildEnv:_.Re,customTransaction:void 0,disabled:!1,distMethod:_.gF,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,offset:Math.floor(E._A?.performance?.timeOrigin||E._A?.performance?.timing?.navigationStart||Date.now()),onerror:void 0,origin:""+E._A.location,ptid:void 0,releaseIds:{},session:void 0,xhrWrappable:"function"==typeof E._A.XMLHttpRequest?.prototype?.addEventListener,version:_.q4,denyList:void 0},S={};function D(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!S[e])throw new Error("Runtime for ".concat(e," was never set"));return S[e]}function j(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");S[e]=(0,i.D)(t,T),(0,n.Qy)(e,S[e],"runtime")}function N(e){return function(e){try{const t=s(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}(e)}},9567:(e,t,r)=>{r.d(t,{D:()=>i});var n=r(50);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.Z)("Setting a Configurable requires an object as input");if(!t||"object"!=typeof t)return(0,n.Z)("Setting a Configurable requires a model to set its initial properties");const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.Z)("An error occurred while setting a property of a Configurable",e)}return r}catch(e){(0,n.Z)("An error occured while setting a Configurable",e)}}},6818:(e,t,r)=>{r.d(t,{Re:()=>i,gF:()=>o,lF:()=>a,q4:()=>n});const n="1.246.0",i="PROD",o="CDN",a="2.0.0-alpha.11"},385:(e,t,r)=>{r.d(t,{FN:()=>s,IF:()=>d,Nk:()=>f,Tt:()=>c,_A:()=>o,cv:()=>h,iS:()=>a,il:()=>n,ux:()=>u,v6:()=>i,w1:()=>l});const n="undefined"!=typeof window&&!!window.document,i="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),o=n?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),a=Boolean("hidden"===o?.document?.visibilityState),s=""+o?.location,c=/iPad|iPhone|iPod/.test(o.navigator?.userAgent),u=c&&"undefined"==typeof SharedWorker,d=(()=>{const e=o.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),l=Boolean(n&&window.document.documentMode),f=!!o.navigator?.sendBeacon,h=Math.floor(o?.performance?.timeOrigin||o?.performance?.timing?.navigationStart||Date.now())},1117:(e,t,r)=>{r.d(t,{w:()=>o});var n=r(50);const i={agentIdentifier:"",ee:void 0};class o{constructor(e){try{if("object"!=typeof e)return(0,n.Z)("shared context requires an object as input");this.sharedContext={},Object.assign(this.sharedContext,i),Object.entries(e).forEach((e=>{let[t,r]=e;Object.keys(i).includes(t)&&(this.sharedContext[t]=r)}))}catch(e){(0,n.Z)("An error occured while setting SharedContext",e)}}}},8e3:(e,t,r)=>{r.d(t,{L:()=>d,R:()=>c});var n=r(8325),i=r(1284),o=r(4322),a=r(3325);const s={};function c(e,t){const r={staged:!1,priority:a.p[t]||0};u(e),s[e].get(t)||s[e].set(t,r)}function u(e){e&&(s[e]||(s[e]=new Map))}function d(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"feature";if(u(e),!e||!s[e].get(t))return a(t);s[e].get(t).staged=!0;const r=[...s[e]];function a(t){const r=e?n.ee.get(e):n.ee,a=o.X.handlers;if(r.backlog&&a){var s=r.backlog[t],c=a[t];if(c){for(var u=0;s&&u<s.length;++u)l(s[u],c);(0,i.D)(c,(function(e,t){(0,i.D)(t,(function(t,r){r[0].on(e,r[1])}))}))}delete a[t],r.backlog[t]=null,r.emit("drain-"+t,[])}}r.every((e=>{let[t,r]=e;return r.staged}))&&(r.sort(((e,t)=>e[1].priority-t[1].priority)),r.forEach((t=>{let[r]=t;s[e].delete(r),a(r)})))}function l(e,t){var r=e[1];(0,i.D)(t[r],(function(t,r){var n=e[0];if(r[0]===n){var i=r[1],o=e[3],a=e[2];i.apply(o,a)}}))}},8325:(e,t,r)=>{r.d(t,{A:()=>c,ee:()=>u});var n=r(8632),i=r(2210),o=r(234);class a{constructor(e){this.contextId=e}}var s=r(3117);const c="nr@context:".concat(s.a),u=function e(t,r){var n={},s={},d={},f=!1;try{f=16===r.length&&(0,o.OP)(r).isolatedBacklog}catch(e){}var h={on:g,addEventListener:g,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=p(n),c=m(e),d=c.length,l=0;l<d;l++)c[l].apply(a,r);var f=b()[s[e]];f&&f.push([h,e,r,a]);return a},get:v,listeners:m,context:p,buffer:function(e,t){const r=b();if(t=t||"feature",h.aborted)return;Object.entries(e||{}).forEach((e=>{let[n,i]=e;s[i]=t,t in r||(r[t]=[])}))},abort:l,aborted:!1,isBuffering:function(e){return!!b()[s[e]]},debugId:r,backlog:f?{}:t&&"object"==typeof t.backlog?t.backlog:{}};return h;function p(e){return e&&e instanceof a?e:e?(0,i.X)(e,c,(()=>new a(c))):new a(c)}function g(e,t){n[e]=m(e).concat(t)}function m(e){return n[e]||[]}function v(t){return d[t]=d[t]||e(h,t)}function b(){return h.backlog}}(void 0,"globalEE"),d=(0,n.fP)();function l(){u.aborted=!0,u.backlog={}}d.ee||(d.ee=u)},5546:(e,t,r)=>{r.d(t,{E:()=>n,p:()=>i});var n=r(8325).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},4322:(e,t,r)=>{r.d(t,{X:()=>o});var n=r(5546);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.E,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.E);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3239:(e,t,r)=>{r.d(t,{bP:()=>s,iz:()=>c,m$:()=>a});var n=r(385);let i=!1,o=!1;try{const e={get passive(){return i=!0,!1},get signal(){return o=!0,!1}};n._A.addEventListener("test",null,e),n._A.removeEventListener("test",null,e)}catch(e){}function a(e,t){return i||o?{capture:!!e,passive:i,signal:t}:!!e}function s(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0;window.addEventListener(e,t,a(r,n))}function c(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0;document.addEventListener(e,t,a(r,n))}},3117:(e,t,r)=>{r.d(t,{a:()=>n});const n=(0,r(4402).Rl)()},4402:(e,t,r)=>{r.d(t,{Ht:()=>u,M:()=>c,Rl:()=>a,ky:()=>s});var n=r(385);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n._A?.crypto||n._A?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(31))),i.split("").map((e=>"x"===e?o(t,++r).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n._A?.crypto||n._A?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(31)));const a=[];for(var s=0;s<e;s++)a.push(o(r,++i).toString(16));return a.join("")}function c(){return s(16)}function u(){return s(32)}},7056:(e,t,r)=>{r.d(t,{Bq:()=>n,Hb:()=>o,oD:()=>i});const n="NRBA",i=144e5,o=18e5},7894:(e,t,r)=>{function n(){return Math.round(performance.now())}r.d(t,{z:()=>n})},7243:(e,t,r)=>{r.d(t,{e:()=>i});var n=r(385);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n._A?.location?.protocol&&t.host===n._A?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},50:(e,t,r)=>{function n(e,t){"function"==typeof console.warn&&(console.warn("New Relic: ".concat(e)),t&&console.warn(t))}r.d(t,{Z:()=>n})},2587:(e,t,r)=>{r.d(t,{N:()=>c,T:()=>u});var n=r(8325),i=r(5546),o=r(3325);const a={stn:[o.D.sessionTrace],err:[o.D.jserrors,o.D.metrics],ins:[o.D.pageAction],spa:[o.D.spa],sr:[o.D.sessionReplay,o.D.sessionTrace]},s=new Set;function c(e,t){const r=n.ee.get(t);e&&"object"==typeof e&&(s.has(t)||Object.entries(e).forEach((e=>{let[t,n]=e;a[t]?a[t].forEach((e=>{n?(0,i.p)("feat-"+t,[],void 0,e,r):(0,i.p)("block-"+t,[],void 0,e,r),(0,i.p)("rumresp-"+t,[Boolean(n)],void 0,e,r)})):n&&(0,i.p)("feat-"+t,[],void 0,void 0,r),u[t]=Boolean(n)})),Object.keys(a).forEach((e=>{void 0===u[e]&&(a[e]?.forEach((t=>(0,i.p)("rumresp-"+e,[!1],void 0,t,r))),u[e]=!1)})),s.add(t))}const u={}},2210:(e,t,r)=>{r.d(t,{X:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},1284:(e,t,r)=>{r.d(t,{D:()=>n});const n=(e,t)=>Object.entries(e||{}).map((e=>{let[r,n]=e;return t(r,n)}))},4351:(e,t,r)=>{r.d(t,{P:()=>o});var n=r(8325);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}}}},3960:(e,t,r)=>{r.d(t,{K:()=>a,b:()=>o});var n=r(3239);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.bP)("load",e,t)}function a(e){if(i())return e();(0,n.iz)("DOMContentLoaded",e)}},8632:(e,t,r)=>{r.d(t,{EZ:()=>u,Qy:()=>c,ce:()=>o,fP:()=>a,gG:()=>d,mF:()=>s});var n=r(7894),i=r(385);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return i._A.NREUM||(i._A.NREUM={}),void 0===i._A.newrelic&&(i._A.newrelic=i._A.NREUM),i._A.NREUM}function s(){let e=a();return e.o||(e.o={ST:i._A.setTimeout,SI:i._A.setImmediate,CT:i._A.clearTimeout,XHR:i._A.XMLHttpRequest,REQ:i._A.Request,EV:i._A.Event,PR:i._A.Promise,MO:i._A.MutationObserver,FETCH:i._A.fetch}),e}function c(e,t,r){let i=a();const o=i.initializedAgents||{},s=o[e]||{};return Object.keys(s).length||(s.initializedAt={ms:(0,n.z)(),date:new Date}),i.initializedAgents={...o,[e]:{...s,[r]:t}},i}function u(e,t){a()[e]=t}function d(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},7956:(e,t,r)=>{r.d(t,{N:()=>i});var n=r(3239);function i(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;(0,n.iz)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},1214:(e,t,r)=>{r.d(t,{em:()=>b,u5:()=>D,QU:()=>C,_L:()=>I,Gm:()=>H,Lg:()=>L,BV:()=>G,Kf:()=>K});var n=r(8325),i=r(3117);const o="nr@original:".concat(i.a);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],d],e)}i(r+"start",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],d,c),e}finally{i(r+"end",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function d(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}var l=r(2210),f=r(385);const h={},p=f._A.XMLHttpRequest,g="addEventListener",m="removeEventListener",v="nr@wrapped:".concat(n.A);function b(e){var t=function(e){return(e||n.ee).get("events")}(e);if(h[t.debugId]++)return t;h[t.debugId]=1;var r=c(t,!0);function i(e){r.inPlace(e,[g,m],"-",o)}function o(e,t){return e[1]}return"getPrototypeOf"in Object&&(f.il&&y(document,i),y(f._A,i),y(p.prototype,i)),t.on(g+"-start",(function(e,t){var n=e[1];if(null!==n&&("function"==typeof n||"object"==typeof n)){var i=(0,l.X)(n,v,(function(){var e={object:function(){if("function"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,"fn-",null,e.name||"anonymous"):n}));this.wrapped=e[1]=i}})),t.on(m+"-start",(function(e){e[1]=this.wrapped||e[1]})),t}function y(e,t){let r=e;for(;"object"==typeof r&&!Object.prototype.hasOwnProperty.call(r,g);)r=Object.getPrototypeOf(r);for(var n=arguments.length,i=new Array(n>2?n-2:0),o=2;o<n;o++)i[o-2]=arguments[o];r&&t(r,...i)}var A="fetch-",w=A+"body-",x=["arrayBuffer","blob","json","text","formData"],E=f._A.Request,_=f._A.Response,T="prototype";const S={};function D(e){const t=function(e){return(e||n.ee).get("fetch")}(e);if(!(E&&_&&f._A.fetch))return t;if(S[t.debugId]++)return t;function r(e,r,i){var o=e[r];"function"==typeof o&&(e[r]=function(){var e,r=[...arguments],a={};t.emit(i+"before-start",[r],a),a[n.A]&&a[n.A].dt&&(e=a[n.A].dt);var s=o.apply(this,r);return t.emit(i+"start",[r,e],s),s.then((function(e){return t.emit(i+"end",[null,e],s),e}),(function(e){throw t.emit(i+"end",[e],s),e}))})}return S[t.debugId]=1,x.forEach((e=>{r(E[T],e,w),r(_[T],e,w)})),r(f._A,"fetch",A),t.on(A+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(A+"done",[null,r],n)}else t.emit(A+"done",[e],n)})),t}const j={},N=["pushState","replaceState"];function C(e){const t=function(e){return(e||n.ee).get("history")}(e);return!f.il||j[t.debugId]++||(j[t.debugId]=1,c(t).inPlace(window.history,N,"-")),t}var O=r(3239);const P={},R=["appendChild","insertBefore","replaceChild"];function I(e){const t=function(e){return(e||n.ee).get("jsonp")}(e);if(!f.il||P[t.debugId])return t;P[t.debugId]=!0;var r=c(t),i=/[?&](?:callback|cb)=([^&#]+)/,o=/(.*)\.([^.]+)/,a=/^(\w+)(\.|$)(.*)$/;function s(e,t){if(!e)return t;const r=e.match(a),n=r[1];return s(r[3],t[n])}return r.inPlace(Node.prototype,R,"dom-"),t.on("dom-start",(function(e){!function(e){if(!e||"string"!=typeof e.nodeName||"script"!==e.nodeName.toLowerCase())return;if("function"!=typeof e.addEventListener)return;var n=(a=e.src,c=a.match(i),c?c[1]:null);var a,c;if(!n)return;var u=function(e){var t=e.match(o);if(t&&t.length>=3)return{key:t[2],parent:s(t[1],window)};return{key:e,parent:window}}(n);if("function"!=typeof u.parent[u.key])return;var d={};function l(){t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,O.m$)(!1)),e.removeEventListener("error",f,(0,O.m$)(!1))}function f(){t.emit("jsonp-error",[],d),t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,O.m$)(!1)),e.removeEventListener("error",f,(0,O.m$)(!1))}r.inPlace(u.parent,[u.key],"cb-",d),e.addEventListener("load",l,(0,O.m$)(!1)),e.addEventListener("error",f,(0,O.m$)(!1)),t.emit("new-jsonp",[e.src],d)}(e[0])})),t}const k={};function H(e){const t=function(e){return(e||n.ee).get("mutation")}(e);if(!f.il||k[t.debugId])return t;k[t.debugId]=!0;var r=c(t),i=f._A.MutationObserver;return i&&(window.MutationObserver=function(e){return this instanceof i?new i(r(e,"fn-")):i.apply(this,arguments)},MutationObserver.prototype=i.prototype),t}const z={};function L(e){const t=function(e){return(e||n.ee).get("promise")}(e);if(z[t.debugId])return t;z[t.debugId]=!0;var r=t.context,i=c(t),a=f._A.Promise;return a&&function(){function e(r){var n=t.context(),o=i(r,"executor-",n,null,!1);const s=Reflect.construct(a,[o],e);return t.context(s).getCtx=function(){return n},s}f._A.Promise=e,Object.defineProperty(e,"name",{value:"Promise"}),e.toString=function(){return a.toString()},Object.setPrototypeOf(e,a),["all","race"].forEach((function(r){const n=a[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=>{this.resolve(e).then(a("all"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit("propagate",[null,!i],o,!1,!1),i=i||!e}}}})),["resolve","reject"].forEach((function(r){const n=a[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r&&t.emit("propagate",[e,!0],r,!1,!1),r}})),e.prototype=a.prototype;const n=a.prototype.then;a.prototype.then=function(){var e=this,o=r(e);o.promise=e;for(var a=arguments.length,s=new Array(a),c=0;c<a;c++)s[c]=arguments[c];s[0]=i(s[0],"cb-",o,null,!1),s[1]=i(s[1],"cb-",o,null,!1);const u=n.apply(this,s);return o.nextPromise=u,t.emit("propagate",[e,!0],u,!1,!1),u},a.prototype.then[o]=n,t.on("executor-start",(function(e){e[0]=i(e[0],"resolve-",this,null,!1),e[1]=i(e[1],"resolve-",this,null,!1)})),t.on("executor-err",(function(e,t,r){e[1](r)})),t.on("cb-end",(function(e,r,n){t.emit("propagate",[n,!0],this.nextPromise,!1,!1)})),t.on("propagate",(function(e,r,n){this.getCtx&&!r||(this.getCtx=function(){if(e instanceof Promise)var r=t.context(e);return r&&r.getCtx?r.getCtx():this})}))}(),t}const M={},F="setTimeout",B="setInterval",U="clearTimeout",Z="-start",V="-",q=[F,"setImmediate",B,U,"clearImmediate"];function G(e){const t=function(e){return(e||n.ee).get("timer")}(e);if(M[t.debugId]++)return t;M[t.debugId]=1;var r=c(t);return r.inPlace(f._A,q.slice(0,2),F+V),r.inPlace(f._A,q.slice(2,3),B+V),r.inPlace(f._A,q.slice(3),U+V),t.on(B+Z,(function(e,t,n){e[0]=r(e[0],"fn-",null,n)})),t.on(F+Z,(function(e,t,n){this.method=n,this.timerDuration=isNaN(e[1])?0:+e[1],e[0]=r(e[0],"fn-",this,n)})),t}var W=r(50);const X={},Q=["open","send"];function K(e){var t=e||n.ee;const r=function(e){return(e||n.ee).get("xhr")}(t);if(X[r.debugId]++)return r;X[r.debugId]=1,b(t);var i=c(r),o=f._A.XMLHttpRequest,a=f._A.MutationObserver,s=f._A.Promise,u=f._A.setInterval,d="readystatechange",l=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],h=[],p=f._A.XMLHttpRequest=function(e){const t=new o(e),n=r.context(t);try{r.emit("new-xhr",[t],n),t.addEventListener(d,(a=n,function(){var e=this;e.readyState>3&&!a.resolved&&(a.resolved=!0,r.emit("xhr-resolved",[],e)),i.inPlace(e,l,"fn-",w)}),(0,O.m$)(!1))}catch(e){(0,W.Z)("An error occurred while intercepting XHR",e);try{r.emit("internal-error",[e])}catch(e){}}var a;return t};function g(e,t){i.inPlace(t,["onreadystatechange"],"fn-",w)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,p),p.prototype=o.prototype,i.inPlace(p.prototype,Q,"-xhr-",w),r.on("send-xhr-start",(function(e,t){g(e,t),function(e){h.push(e),a&&(m?m.then(A):u?u(A):(v=-v,y.data=v))}(t)})),r.on("open-xhr-start",g),a){var m=s&&s.resolve();if(!u&&!s){var v=1,y=document.createTextNode(v);new a(A).observe(y,{characterData:!0})}}else t.on("fn-end",(function(e){e[0]&&e[0].type===d||A()}));function A(){for(var e=0;e<h.length;e++)g(0,h[e]);h.length&&(h=[])}function w(e,t){return t}return r}},7825:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.ajax},6660:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.jserrors},3081:(e,t,r)=>{r.d(t,{gF:()=>o,mY:()=>i,t9:()=>n,vz:()=>s,xS:()=>a});const n=r(3325).D.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},4649:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.pageAction},7633:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.pageViewEvent},9251:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.pageViewTiming},7144:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.sessionReplay},3614:(e,t,r)=>{r.d(t,{BST_RESOURCE:()=>i,END:()=>s,FEATURE_NAME:()=>n,FN_END:()=>u,FN_START:()=>c,PUSH_STATE:()=>d,RESOURCE:()=>o,START:()=>a});const n=r(3325).D.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,u="fn"+s,d="pushState"},7836:(e,t,r)=>{r.d(t,{BODY:()=>x,CB_END:()=>E,CB_START:()=>u,END:()=>w,FEATURE_NAME:()=>i,FETCH:()=>T,FETCH_BODY:()=>v,FETCH_DONE:()=>m,FETCH_START:()=>g,FN_END:()=>c,FN_START:()=>s,INTERACTION:()=>f,INTERACTION_API:()=>d,INTERACTION_EVENTS:()=>o,JSONP_END:()=>b,JSONP_NODE:()=>p,JS_TIME:()=>_,MAX_TIMER_BUDGET:()=>a,REMAINING:()=>l,SPA_NODE:()=>h,START:()=>A,originalSetTimeout:()=>y});var n=r(234);const i=r(3325).D.spa,o=["click","submit","keypress","keydown","keyup","change"],a=999,s="fn-start",c="fn-end",u="cb-start",d="api-ixn-",l="remaining",f="interaction",h="spaNode",p="jsonpNode",g="fetch-start",m="fetch-done",v="fetch-body-",b="jsonp-end",y=n.Yu.ST,A="-start",w="-end",x="-body",E="cb"+w,_="jsTime",T="fetch"},5938:(e,t,r)=>{r.d(t,{W:()=>i});var n=r(8325);class i{constructor(e,t,r){this.agentIdentifier=e,this.aggregator=t,this.ee=n.ee.get(e),this.featureName=r,this.blocked=!1}}},7530:(e,t,r)=>{r.d(t,{j:()=>b});var n=r(3325),i=r(234),o=r(5546),a=r(8325),s=r(7894),c=r(8e3),u=r(3960),d=r(385),l=r(50),f=r(3081),h=r(8632);function p(){const e=(0,h.gG)();["setErrorHandler","finished","addToTrace","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start"].forEach((t=>{e[t]=function(){for(var r=arguments.length,n=new Array(r),i=0;i<r;i++)n[i]=arguments[i];return function(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];let o=[];return Object.values(e.initializedAgents).forEach((e=>{e.exposed&&e.api[t]&&o.push(e.api[t](...n))})),o.length>1?o:o[0]}(t,...n)}}))}var g=r(2587);const m=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let v=!1;function b(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},b=arguments.length>2?arguments[2]:void 0,y=arguments.length>3?arguments[3]:void 0,{init:A,info:w,loader_config:x,runtime:E={loaderType:b},exposed:_=!0}=t;const T=(0,h.gG)();w||(A=T.init,w=T.info,x=T.loader_config),(0,i.Dg)(e,A||{}),(0,i.GE)(e,x||{}),w.jsAttributes??={},d.v6&&(w.jsAttributes.isWorker=!0),(0,i.CX)(e,w);const S=(0,i.P_)(e),D=[w.beacon,w.errorBeacon];v||(v=!0,S.proxy.assets&&(m(S.proxy.assets),D.push(S.proxy.assets)),S.proxy.beacon&&D.push(S.proxy.beacon)),E.denyList=[...S.ajax.deny_list||[],...S.ajax.block_internal?D:[]],(0,i.sU)(e,E),p();const j=function(e,t){t||(0,c.R)(e,"api");const h={};var p=a.ee.get(e),g=p.get("tracer"),m="api-",v=m+"ixn-";function b(t,r,n,o){const a=(0,i.C5)(e);return null===r?delete a.jsAttributes[t]:(0,i.CX)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),w(m,n,!0,o||null===r?"session":void 0)(t,r)}function y(){}["setErrorHandler","finished","addToTrace","addRelease"].forEach((e=>{h[e]=w(m,e,!0,"api")})),h.addPageAction=w(m,"addPageAction",!0,n.D.pageAction),h.setCurrentRouteName=w(m,"routeName",!0,n.D.spa),h.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,i.OP)(e).customTransaction=(r||"http://custom.transaction")+t,w(m,"setPageViewName",!0)()},h.setCustomAttribute=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return b(e,t,"setCustomAttribute",r);(0,l.Z)("Failed to execute setCustomAttribute.\nNon-null value must be a string, number or boolean type, but a type of <".concat(typeof t,"> was provided."))}else(0,l.Z)("Failed to execute setCustomAttribute.\nName must be a string type, but a type of <".concat(typeof e,"> was provided."))},h.setUserId=function(e){if("string"==typeof e||null===e)return b("enduser.id",e,"setUserId",!0);(0,l.Z)("Failed to execute setUserId.\nNon-null value must be a string type, but a type of <".concat(typeof e,"> was provided."))},h.setApplicationVersion=function(e){if("string"==typeof e||null===e)return b("application.version",e,"setApplicationVersion",!1);(0,l.Z)("Failed to execute setApplicationVersion. Expected <String | null>, but got <".concat(typeof e,">."))},h.start=e=>{try{const t=e?"defined":"undefined";(0,o.p)(f.xS,["API/start/".concat(t,"/called")],void 0,n.D.metrics,p);const r=Object.values(n.D);if(void 0===e)e=r;else{if((e=Array.isArray(e)&&e.length?e:[e]).some((e=>!r.includes(e))))return(0,l.Z)("Invalid feature name supplied. Acceptable feature names are: ".concat(r));e.includes(n.D.pageViewEvent)||e.push(n.D.pageViewEvent)}e.forEach((e=>{p.emit("".concat(e,"-opt-in"))}))}catch(e){(0,l.Z)("An unexpected issue occurred",e)}},h.interaction=function(){return(new y).get()};var A=y.prototype={createTracer:function(e,t){var r={},i=this,a="function"==typeof t;return(0,o.p)(v+"tracer",[(0,s.z)(),e,r],i,n.D.spa,p),function(){if(g.emit((a?"":"no-")+"fn-start",[(0,s.z)(),i,a],r),a)try{return t.apply(this,arguments)}catch(e){throw g.emit("fn-err",[arguments,this,e],r),e}finally{g.emit("fn-end",[(0,s.z)()],r)}}}};function w(e,t,r,i){return function(){return(0,o.p)(f.xS,["API/"+t+"/called"],void 0,n.D.metrics,p),i&&(0,o.p)(e+t,[(0,s.z)(),...arguments],r?null:this,i,p),r?void 0:this}}function x(){r.e(111).then(r.bind(r,7438)).then((t=>{let{setAPI:r}=t;r(e),(0,c.L)(e,"api")})).catch((()=>(0,l.Z)("Downloading runtime APIs failed...")))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{A[e]=w(v,e,void 0,n.D.spa)})),h.noticeError=function(e,t){"string"==typeof e&&(e=new Error(e)),(0,o.p)(f.xS,["API/noticeError/called"],void 0,n.D.metrics,p),(0,o.p)("err",[e,(0,s.z)(),!1,t],void 0,n.D.jserrors,p)},d.il?(0,u.b)((()=>x()),!0):x(),h}(e,y);return(0,h.Qy)(e,j,"api"),(0,h.Qy)(e,_,"exposed"),(0,h.EZ)("activatedFeatures",g.T),j}},3325:(e,t,r)=>{r.d(t,{D:()=>n,p:()=>i});const n={ajax:"ajax",jserrors:"jserrors",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",spa:"spa"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.ajax]:5,[n.sessionTrace]:6,[n.pageAction]:7,[n.spa]:8,[n.sessionReplay]:9}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>({111:"nr-spa",164:"nr-spa-compressor",433:"nr-spa-recorder"}[e]+"-1.246.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.246.0.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var l=u[d];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}s||(c=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r),e[r]=[n];var f=(t,n)=>{s.onerror=s.onload=null,clearTimeout(h);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},h=setTimeout(f.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=f.bind(null,s.onerror),s.onload=f.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={801:0,92:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.246.0.PROD"]=self["webpackChunk:NRBA-1.246.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{var e=i(50);class t{addPageAction(t,r){(0,e.Z)("Call to agent api addPageAction failed. The page action feature is not currently initialized.")}setPageViewName(t,r){(0,e.Z)("Call to agent api setPageViewName failed. The page view feature is not currently initialized.")}setCustomAttribute(t,r,n){(0,e.Z)("Call to agent api setCustomAttribute failed. The js errors feature is not currently initialized.")}noticeError(t,r){(0,e.Z)("Call to agent api noticeError failed. The js errors feature is not currently initialized.")}setUserId(t){(0,e.Z)("Call to agent api setUserId failed. The js errors feature is not currently initialized.")}setApplicationVersion(t){(0,e.Z)("Call to agent api setApplicationVersion failed. The agent is not currently initialized.")}setErrorHandler(t){(0,e.Z)("Call to agent api setErrorHandler failed. The js errors feature is not currently initialized.")}finished(t){(0,e.Z)("Call to agent api finished failed. The page action feature is not currently initialized.")}addRelease(t,r){(0,e.Z)("Call to agent api addRelease failed. The js errors feature is not currently initialized.")}start(t){(0,e.Z)("Call to agent api addRelease failed. The agent is not currently initialized.")}}var r=i(3325),n=i(234);const o=Object.values(r.D);function a(e){const t={};return o.forEach((r=>{t[r]=function(e,t){return!1!==(0,n.Mt)(t,"".concat(e,".enabled"))}(r,e)})),t}var s=i(7530);var c=i(8e3),u=i(5938),d=i(3960),l=i(385);class f extends u.W{constructor(e,t,r){let i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];super(e,t,r),this.auto=i,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===(0,n.Mt)(this.agentIdentifier,"".concat(this.featureName,".autoStart"))&&(this.auto=!1),this.auto&&(0,c.R)(e,r)}importAggregator(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this.featAggregate)return;if(!this.auto)return void this.ee.on("".concat(this.featureName,"-opt-in"),(()=>{(0,c.R)(this.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator()}));const r=l.il&&!0===(0,n.Mt)(this.agentIdentifier,"privacy.cookies_enabled");let o;this.onAggregateImported=new Promise((e=>{o=e}));const a=async()=>{let n;try{if(r){const{setupAgentSession:e}=await i.e(111).then(i.bind(i,3228));n=e(this.agentIdentifier)}}catch(t){(0,e.Z)("A problem occurred when starting up session manager. This page will not start or extend any session.",t)}try{if(!this.shouldImportAgg(this.featureName,n))return(0,c.L)(this.agentIdentifier,this.featureName),void o(!1);const{lazyFeatureLoader:e}=await i.e(111).then(i.bind(i,8582)),{Aggregate:r}=await e(this.featureName,"aggregate");this.featAggregate=new r(this.agentIdentifier,this.aggregator,t),o(!0)}catch(t){(0,e.Z)("Downloading and initializing ".concat(this.featureName," failed..."),t),this.abortHandler?.(),(0,c.L)(this.agentIdentifier,this.featureName),o(!1)}};l.il?(0,d.b)((()=>a()),!0):a()}shouldImportAgg(e,t){return e!==r.D.sessionReplay||!!n.Yu.MO&&(!1!==(0,n.Mt)(this.agentIdentifier,"session_trace.enabled")&&(!!t?.isNew||!!t?.state.sessionReplayMode))}}var h=i(7633);class p extends f{static featureName=h.t;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,h.t,r),this.importAggregator()}}var g=i(1117),m=i(1284);class v extends g.w{constructor(e){super(e),this.aggregatedData={}}store(e,t,r,n,i){var o=this.getBucket(e,t,r,i);return o.metrics=function(e,t){t||(t={count:0});return t.count+=1,(0,m.D)(e,(function(e,r){t[e]=b(r,t[e])})),t}(n,o.metrics),o}merge(e,t,r,n,i){var o=this.getBucket(e,t,n,i);if(o.metrics){var a=o.metrics;a.count+=r.count,(0,m.D)(r,(function(e,t){if("count"!==e){var n=a[e],i=r[e];i&&!i.c?a[e]=b(i.t,n):a[e]=function(e,t){if(!t)return e;t.c||(t=y(t.t));return t.min=Math.min(e.min,t.min),t.max=Math.max(e.max,t.max),t.t+=e.t,t.sos+=e.sos,t.c+=e.c,t}(i,a[e])}}))}else o.metrics=r}storeMetric(e,t,r,n){var i=this.getBucket(e,t,r);return i.stats=b(n,i.stats),i}getBucket(e,t,r,n){this.aggregatedData[e]||(this.aggregatedData[e]={});var i=this.aggregatedData[e][t];return i||(i=this.aggregatedData[e][t]={params:r||{}},n&&(i.custom=n)),i}get(e,t){return t?this.aggregatedData[e]&&this.aggregatedData[e][t]:this.aggregatedData[e]}take(e){for(var t={},r="",n=!1,i=0;i<e.length;i++)t[r=e[i]]=A(this.aggregatedData[r]),t[r].length&&(n=!0),delete this.aggregatedData[r];return n?t:null}}function b(e,t){return null==e?function(e){e?e.c++:e={c:1};return e}(t):t?(t.c||(t=y(t.t)),t.c+=1,t.t+=e,t.sos+=e*e,e>t.max&&(t.max=e),e<t.min&&(t.min=e),t):{t:e}}function y(e){return{t:e,min:e,max:e,sos:e*e,c:1}}function A(e){return"object"!=typeof e?[]:(0,m.D)(e,w)}function w(e,t){return t}var x=i(8632),E=i(4402),_=i(4351);var T=i(5546),S=i(7956),D=i(3239),j=i(7894),N=i(9251);class C extends f{static featureName=N.t;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,N.t,r),l.il&&((0,S.N)((()=>(0,T.p)("docHidden",[(0,j.z)()],void 0,N.t,this.ee)),!0),(0,D.bP)("pagehide",(()=>(0,T.p)("winPagehide",[(0,j.z)()],void 0,N.t,this.ee))),this.importAggregator())}}var O=i(3081);class P extends f{static featureName=O.t9;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,O.t9,r),this.importAggregator()}}var R=i(6660);class I{constructor(e,t,r,n){this.name="UncaughtError",this.message=e,this.sourceURL=t,this.line=r,this.column=n}}class k extends f{static featureName=R.t;#e=new Set;constructor(e,t){let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,R.t,n);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("fn-err",((e,t,n)=>{this.abortHandler&&!this.#e.has(n)&&(this.#e.add(n),(0,T.p)("err",[this.#t(n),(0,j.z)()],void 0,r.D.jserrors,this.ee))})),this.ee.on("internal-error",(e=>{this.abortHandler&&(0,T.p)("ierr",[this.#t(e),(0,j.z)(),!0],void 0,r.D.jserrors,this.ee)})),l._A.addEventListener("unhandledrejection",(e=>{this.abortHandler&&(0,T.p)("err",[this.#r(e),(0,j.z)(),!1,{unhandledPromiseRejection:1}],void 0,r.D.jserrors,this.ee)}),(0,D.m$)(!1,this.removeOnAbort?.signal)),l._A.addEventListener("error",(e=>{this.abortHandler&&(this.#e.has(e.error)?this.#e.delete(e.error):(0,T.p)("err",[this.#n(e),(0,j.z)()],void 0,r.D.jserrors,this.ee))}),(0,D.m$)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#i,this.importAggregator()}#i(){this.removeOnAbort?.abort(),this.#e.clear(),this.abortHandler=void 0}#t(e){return e instanceof Error?e:void 0!==e?.message?new I(e.message,e.filename||e.sourceURL,e.lineno||e.line,e.colno||e.col):new I("string"==typeof e?e:(0,_.P)(e))}#r(e){let t="Unhandled Promise Rejection: ";if(e?.reason instanceof Error)try{return e.reason.message=t+e.reason.message,e.reason}catch(t){return e.reason}if(void 0===e.reason)return new I(t);const r=this.#t(e.reason);return r.message=t+r.message,r}#n(e){return e.error instanceof Error?e.error:new I(e.message,e.filename,e.lineno,e.colno)}}var H=i(2210);let z=1;const L="nr@id";function M(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===l._A?0:(0,H.X)(e,L,(function(){return z++}))}function F(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,_.P)(e).length}catch(e){return}}}var B=i(1214),U=i(7243);class Z{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,n.DL)(this.agentIdentifier);if(!t)return null;var r=(t.accountID||"").toString()||null,i=(t.agentID||"").toString()||null,o=(t.trustKey||"").toString()||null;if(!r||!i)return null;var a=(0,E.M)(),s=(0,E.Ht)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,r,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(u.newrelicHeader=this.generateTraceHeader(a,s,c,r,i,o)),u}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){if(!("function"==typeof l._A?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,_.P)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,n.Mt)(this.agentIdentifier,"distributed_tracing")&&(r=(0,n.P_)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var i=0;i<r.allowed_origins.length;i++){var o=(0,U.e)(r.allowed_origins[i]);if(e.hostname===o.hostname&&e.protocol===o.protocol&&e.port===o.port){t=!0;break}}return t}isDtEnabled(){var e=(0,n.Mt)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.enabled}excludeNewrelicHeader(){var e=(0,n.Mt)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,n.Mt)(this.agentIdentifier,"distributed_tracing");return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,n.Mt)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.cors_use_tracecontext_headers}}var V=i(7825),q=["load","error","abort","timeout"],G=q.length,W=n.Yu.REQ,X=n.Yu.XHR;class Q extends f{static featureName=V.t;constructor(e,t){let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(super(e,t,V.t,i),(0,n.OP)(e).xhrWrappable){this.dt=new Z(e),this.handler=(e,t,r,n)=>(0,T.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};l._A?.performance?.getEntriesByType("resource").forEach((t=>{if(t.initiatorType in e&&0!==t.responseStatus){const n={status:t.responseStatus},i={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};K(n,t.name),this.handler("xhr",[n,i,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,r.D.ajax)}}))}catch(e){}(0,B.u5)(this.ee),(0,B.Kf)(this.ee),function(e,t,i,o){function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=x,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){E(t,e)}),(0,D.m$)(!1)),l.IF||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,D.m$)(!1))}function s(e){this.params={method:e[0]},K(this,e[1]),this.metrics={}}function c(t,r){var i=(0,n.DL)(e);i.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",i.xpid);var a=o.generateTracePayload(this.parsedOrigin);if(a){var s=!1;a.newrelicHeader&&(r.setRequestHeader("newrelic",a.newrelicHeader),s=!0),a.traceContextParentHeader&&(r.setRequestHeader("traceparent",a.traceContextParentHeader),a.traceContextStateHeader&&r.setRequestHeader("tracestate",a.traceContextStateHeader),s=!0),s&&(this.dt=a)}}function u(e,r){var n=this.metrics,i=e[0],o=this;if(n&&i){var a=F(i);a&&(n.txSize=a)}this.startTime=(0,j.z)(),this.body=i,this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof r.onload)&&"function"==typeof o.end)&&o.end(r)}catch(e){try{t.emit("internal-error",[e])}catch(e){}}};for(var s=0;s<G;s++)r.addEventListener(q[s],this.listener,(0,D.m$)(!1))}function d(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function f(e,t){var r=""+M(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function h(e,t){var r=""+M(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function p(){this.endTime=(0,j.z)()}function g(e,r){r instanceof X&&"load"===e[0]&&t.emit("xhr-load-added",[e[1],e[2]],r)}function m(e,r){r instanceof X&&"load"===e[0]&&t.emit("xhr-load-removed",[e[1],e[2]],r)}function v(e,t,r){t instanceof X&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,j.z)()))}function b(e,r){this.xhrCbStart&&t.emit("xhr-cb-time",[(0,j.z)()-this.xhrCbStart,this.onload,r],r)}function y(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&l.il&&(t=""+l._A.location.href):e[0]&&e[0].url?t=e[0].url:l._A?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,U.e)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var n=o.generateTracePayload(this.parsedOrigin);if(n&&(n.newrelicHeader||n.traceContextParentHeader))if(e[0]&&e[0].headers)s(e[0].headers,n)&&(this.dt=n);else{var i={};for(var a in r)i[a]=r[a];i.headers=new Headers(r.headers||{}),s(i.headers,n)&&(this.dt=n),e.length>1?e[1]=i:e.push(i)}}function s(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function A(e,t){this.params={},this.metrics={},this.startTime=(0,j.z)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof W?r=i.url:l._A?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),K(this,r);var o=(""+(i&&i instanceof W&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.body=n.body,this.txSize=F(n.body)||0}function w(e,t){var n;this.endTime=(0,j.z)(),this.params||(this.params={}),this.params.status=t?t.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);var o={txSize:this.txSize,rxSize:n,duration:(0,j.z)()-this.startTime};i("xhr",[this.params,o,this.startTime,this.endTime,"fetch"],this,r.D.ajax)}function x(e){var t=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(var o=0;o<G;o++)e.removeEventListener(q[o],this.listener,!1);t.aborted||(n.duration=(0,j.z)()-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):E(this,e),n.cbTime=this.cbTime,i("xhr",[t,n,this.startTime,this.endTime,"xhr"],this,r.D.ajax))}}function E(e,t){e.params.status=t.status;var r=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?F(e.response):"text"===r||""===r||void 0===r?F(e.responseText):void 0}(t,e.lastSize);if(r&&(e.metrics.rxSize=r),e.sameOrigin){var n=t.getResponseHeader("X-NewRelic-App-Data");n&&(e.params.cat=n.split(", ").pop())}e.loadCaptureCalled=!0}t.on("new-xhr",a),t.on("open-xhr-start",s),t.on("open-xhr-end",c),t.on("send-xhr-start",u),t.on("xhr-cb-time",d),t.on("xhr-load-added",f),t.on("xhr-load-removed",h),t.on("xhr-resolved",p),t.on("addEventListener-end",g),t.on("removeEventListener-end",m),t.on("fn-end",b),t.on("fetch-before-start",y),t.on("fetch-start",A),t.on("fn-start",v),t.on("fetch-done",w)}(e,this.ee,this.handler,this.dt),this.importAggregator()}}}function K(e,t){var r=(0,U.e)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}var Y=i(3614);const{BST_RESOURCE:J,RESOURCE:ee,START:te,END:re,FEATURE_NAME:ne,FN_END:ie,FN_START:oe,PUSH_STATE:ae}=Y;var se=i(7144);class ce extends f{static featureName=se.t;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,se.t,r),this.importAggregator()}}var ue=i(7836);const{FEATURE_NAME:de,START:le,END:fe,BODY:he,CB_END:pe,JS_TIME:ge,FETCH:me,FN_START:ve,CB_START:be,FN_END:ye}=ue;var Ae=i(4649);class we extends f{static featureName=Ae.t;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,Ae.t,r),this.importAggregator()}}new class extends t{constructor(t){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,E.ky)(16);super(),l._A?(this.agentIdentifier=r,this.sharedAggregator=new v({agentIdentifier:this.agentIdentifier}),this.features={},this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(p),Object.assign(this,(0,s.j)(this.agentIdentifier,t,t.loaderType||"agent")),this.run()):(0,e.Z)("Failed to initial the agent. Could not determine the runtime environment.")}get config(){return{info:(0,n.C5)(this.agentIdentifier),init:(0,n.P_)(this.agentIdentifier),loader_config:(0,n.DL)(this.agentIdentifier),runtime:(0,n.OP)(this.agentIdentifier)}}run(){const t="features";try{const n=a(this.agentIdentifier),i=[...this.desiredFeatures];i.sort(((e,t)=>r.p[e.featureName]-r.p[t.featureName])),i.forEach((t=>{if(n[t.featureName]||t.featureName===r.D.pageViewEvent){const i=function(e){switch(e){case r.D.ajax:return[r.D.jserrors];case r.D.sessionTrace:return[r.D.ajax,r.D.pageViewEvent];case r.D.sessionReplay:return[r.D.sessionTrace];case r.D.pageViewTiming:return[r.D.pageViewEvent];default:return[]}}(t.featureName);i.every((e=>n[e]))||(0,e.Z)("".concat(t.featureName," is enabled but one or more dependent features has been disabled (").concat((0,_.P)(i),"). This may cause unintended consequences or missing data...")),this.features[t.featureName]=new t(this.agentIdentifier,this.sharedAggregator)}})),(0,x.Qy)(this.agentIdentifier,this.features,t)}catch(r){(0,e.Z)("Failed to initialize all enabled instrument classes (agent aborted) -",r);for(const e in this.features)this.features[e].abortHandler?.();const n=(0,x.fP)();return delete n.initializedAgents[this.agentIdentifier]?.api,delete n.initializedAgents[this.agentIdentifier]?.[t],delete this.sharedAggregator,n.ee?.abort(),delete n.ee?.get(this.agentIdentifier),!1}}addToTrace(t){(0,e.Z)("Call to agent api addToTrace failed. The session trace feature is not currently initialized.")}setCurrentRouteName(t){(0,e.Z)("Call to agent api setCurrentRouteName failed. The spa feature is not currently initialized.")}interaction(){(0,e.Z)("Call to agent api interaction failed. The spa feature is not currently initialized.")}}({features:[Q,p,C,class extends f{static featureName=ne;constructor(e,t){if(super(e,t,ne,!(arguments.length>2&&void 0!==arguments[2])||arguments[2]),!l.il)return;const n=this.ee;let i;(0,B.QU)(n),this.eventsEE=(0,B.em)(n),this.eventsEE.on(oe,(function(e,t){this.bstStart=(0,j.z)()})),this.eventsEE.on(ie,(function(e,t){(0,T.p)("bst",[e[0],t,this.bstStart,(0,j.z)()],void 0,r.D.sessionTrace,n)})),n.on(ae+te,(function(e){this.time=(0,j.z)(),this.startPath=location.pathname+location.hash})),n.on(ae+re,(function(e){(0,T.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,r.D.sessionTrace,n)}));try{i=new PerformanceObserver((e=>{const t=e.getEntries();(0,T.p)(J,[t],void 0,r.D.sessionTrace,n)})),i.observe({type:ee,buffered:!0})}catch(e){}this.importAggregator({resourceObserver:i})}},ce,P,we,k,class extends f{static featureName=de;constructor(e,t){if(super(e,t,de,!(arguments.length>2&&void 0!==arguments[2])||arguments[2]),!l.il)return;if(!(0,n.OP)(e).xhrWrappable)return;try{this.removeOnAbort=new AbortController}catch(e){}let r,i=0;const o=this.ee.get("tracer"),a=(0,B._L)(this.ee),s=(0,B.Lg)(this.ee),c=(0,B.BV)(this.ee),u=(0,B.Kf)(this.ee),d=this.ee.get("events"),f=(0,B.u5)(this.ee),h=(0,B.QU)(this.ee),p=(0,B.Gm)(this.ee);function g(e,t){h.emit("newURL",[""+window.location,t])}function m(){i++,r=window.location.hash,this[ve]=(0,j.z)()}function v(){i--,window.location.hash!==r&&g(0,!0);var e=(0,j.z)();this[ge]=~~this[ge]+e-this[ve],this[ye]=e}function b(e,t){e.on(t,(function(){this[t]=(0,j.z)()}))}this.ee.on(ve,m),s.on(be,m),a.on(be,m),this.ee.on(ye,v),s.on(pe,v),a.on(pe,v),this.ee.buffer([ve,ye,"xhr-resolved"],this.featureName),d.buffer([ve],this.featureName),c.buffer(["setTimeout"+fe,"clearTimeout"+le,ve],this.featureName),u.buffer([ve,"new-xhr","send-xhr"+le],this.featureName),f.buffer([me+le,me+"-done",me+he+le,me+he+fe],this.featureName),h.buffer(["newURL"],this.featureName),p.buffer([ve],this.featureName),s.buffer(["propagate",be,pe,"executor-err","resolve"+le],this.featureName),o.buffer([ve,"no-"+ve],this.featureName),a.buffer(["new-jsonp","cb-start","jsonp-error","jsonp-end"],this.featureName),b(f,me+le),b(f,me+"-done"),b(a,"new-jsonp"),b(a,"jsonp-end"),b(a,"cb-start"),h.on("pushState-end",g),h.on("replaceState-end",g),window.addEventListener("hashchange",g,(0,D.m$)(!0,this.removeOnAbort?.signal)),window.addEventListener("load",g,(0,D.m$)(!0,this.removeOnAbort?.signal)),window.addEventListener("popstate",(function(){g(0,i>1)}),(0,D.m$)(!0,this.removeOnAbort?.signal)),this.abortHandler=this.#i,this.importAggregator()}#i(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}],loaderType:"spa"})})()})(); </script> <link rel="icon" type="image/x-icon" href="/resources/images/favicon.ico"> <link rel="icon" type="image/png" href="/resources/images/favicon-16x16.png" sizes="16x16"> <link rel="icon" type="image/png" href="/resources/images/favicon-32x32.png" sizes="32x32"> <link rel="apple-touch-icon" type="image/png" href="/resources/images/apple-touch-icon.png" sizes="152x152"> <link rel="icon" type="image/png" href="/resources/images/android-chrome-192x192.png" sizes="192x192"> <link rel="icon" type="image/png" href="/resources/images/android-chrome-512x512.png" sizes="512x512"> <link rel="preload" href="/resources/fonts/GT-America-Standard-Regular.woff" as="font" type="font/woff" crossorigin="anonymous"> <link rel="preload" href="/resources/fonts/GT-America-Standard-Regular-Italic.woff" as="font" type="font/woff" crossorigin="anonymous"> <link rel="preload" href="/resources/fonts/GT-America-Standard-Light.woff" as="font" type="font/woff" crossorigin="anonymous"> <link rel="preload" href="/resources/fonts/GT-America-Standard-Medium.woff" as="font" type="font/woff" crossorigin="anonymous"> <link rel="preload" href="/resources/fonts/GT-America-Standard-Medium-Italic.woff" as="font" type="font/woff" crossorigin="anonymous"> <link rel="preload" href="/resources/fonts/GT-America-Standard-Light-Italic.woff" as="font" type="font/woff" crossorigin="anonymous"> <link rel="preload" href="/resources/fonts/GTAmerica-Standard-Semibold.woff" as="font" type="font/woff" crossorigin="anonymous"> <link rel="preload" href="/resources/fonts/GTAmerica-Standard-Semibold-Italic.woff" as="font" type="font/woff" crossorigin="anonymous"> <link rel="preload" href="/resources/fonts/GT-America-Standard-Bold.woff" as="font" type="font/woff" crossorigin="anonymous"> <link rel="preload" href="/resources/fonts/GT-America-Standard-Bold-Italic.woff" as="font" type="font/woff" crossorigin="anonymous"> <link rel="preload" href="/resources/fonts/LavaStd-Regular.otf" as="font" type="font/otf" crossorigin="anonymous"> <link rel="preload" href="/resources/fonts/LavaStd-RegularItalic.otf" as="font" type="font/otf" crossorigin="anonymous"> <link rel="preload" href="/resources/fonts/LavaStd-Medium.otf" as="font" type="font/otf" crossorigin="anonymous"> <link rel="preload" href="/resources/fonts/LavaStd-MediumItalic.otf" as="font" type="font/otf" crossorigin="anonymous"> <link rel="preload" href="/resources/fonts/LavaStd-Bold.otf" as="font" type="font/otf" crossorigin="anonymous"> <link rel="preload" href="/resources/fonts/LavaStd-BoldItalic.otf" as="font" type="font/otf" crossorigin="anonymous"> <link rel="preload" href="/resources/fonts/LavaStd-Heavy.otf" as="font" type="font/otf" crossorigin="anonymous"> <link rel="preload" href="/resources/fonts/LavaStd-HeavyItalic.otf" as="font" type="font/otf" crossorigin="anonymous"> <link rel="preload" href="/resources/fonts/HBRIcons-Regular.woff" as="font" type="font/woff" crossorigin="anonymous"> <link rel="stylesheet" type="text/css" href="/resources/css/style_7eefa62ad3db5937.css"/> <script type="text/javascript"> if (document.cookie.match(/hbr_f=true/)) { window.document.documentElement.className += " fonts-loaded"; } </script> <script type="text/javascript" src="//cdn.tinypass.com/api/tinypass.min.js"></script> <script type="text/javascript"> var tp = window["tp"] || []; tp.push(["setDebug", false]); tp.push(["setAid", "mbs77qtzUz"]); tp.push(["setEndpoint", "https://buy.tinypass.com/api/v3"]); tp.push(["setUseTinypassAccounts", false]); tp.push(["setUsePianoIdUserProvider", false]); tp.push(["setCxenseSiteId", "1141964769885092441"]); /* Piano Snippets */ tp.push(["setCustomParam", "type", "standard", "content"]) tp.push(["setCustomVariable", "contentType", "standard"]) tp.push(["setContentSection", "Technology and analytics"]); tp.push(["setContentCreated", "2020-10-28T12:45:22Z"]); tp.push(["setContentAuthor", "Donald Martin, Jr."]); tp.push(["setContentIsNative", "true"]); tp.push(["setTags", ["Technology and analytics","Insight Center_AI and Equality fall 2020","New Author","Digital Article"]]); tp.push(["setCustomVariable", "isPaywallEnabled", "false"]); tp.push(["setCustomVariable", "userState", "guest"]); </script> <script type="text/javascript"> document.cookie = "__adblocker=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/"; var setNptTechAdblockerCookie = function(adblocker) { var d = new Date(); d.setTime(d.getTime() + 60 * 60 * 24 * 2 * 1000); document.cookie = "__adblocker=" + (adblocker ? "true" : "false") + "; expires=" + d.toUTCString() + "; path=/"; } var script = document.createElement("script"); script.setAttribute("async", true); script.setAttribute("src", "//www.npttech.com/advertising.js"); script.setAttribute("onerror", "setNptTechAdblockerCookie(true);"); document.getElementsByTagName("head")[0].appendChild(script); function getCookieValue(name) { let cookie = {}; document.cookie.split(";").forEach(function(el) { let [key,value] = el.split("="); cookie[key.trim()] = value; }) return cookie[name]; } function isAdobeSync() { let userExperienceName = getCookieValue("hbr_user_experience"); console.log("Current User Experience: " + userExperienceName); return userExperienceName != '"Async_Adobe_Launch"'; } </script> <script type="text/javascript"> window.digitalData = {"page":{"pageInfo":{"language":"en","contentType":"Digital Article","pageName":"AI Engineers Need to Think Beyond Engineering","pageCategoryID":"391807","pageCategoryName":"Technology and analytics","pageType":"ITEM","pageDescription":"It is very, very easy for a well-intentioned AI practitioner to inadvertently do harm when they set out to do good — AI has the power to amplify unfair biases, making innate biases exponentially more harmful. Because AI often interacts with complex social systems, where correlation and causation might not be immediately clear — or even easily discernible — AI practitioners need to build partnerships with community members, stakeholders, and experts to help them better understand the world they’re interacting with and the implications of making mistakes. Community-based system dynamics (CBSD) is a promising participatory approach to understanding complex social systems that does just that.","ipAddress":"8.222.208.146","onsiteSearchResults":0,"date":"12-18-2024","time":"04:38 PM"},"attributes":{"articleContentType":"Digital Article","articleType":"Digital Article","articleTitle":"AI Engineers Need to Think Beyond Engineering","articleID":"tag:blogs.harvardbusiness.org,2007-03-31:999.278372","articlePrimaryTopic":"Technology and analytics","articlePublishDate":"2020-10-28","articlePostingDate":"October - 2020","articlePrimaryEditor":"182","primaryAuthor":"Donald Martin, Jr.","articleAuthor":[{"authorName":"Donald Martin, Jr."},{"authorName":"Andrew Moore"}],"articleSubTopics":[{"subTopicName":"Technology and analytics"}],"articleTags":"Digital Article","configSubscriberOnly":false,"configNoIntromercial":false,"configExemptFromPaywall":false,"editorTags":[{"tagValue":"Insight Center_AI and Equality fall 2020"},{"tagValue":"New Author"}]}},"users":[{"profile":{"giftingQuota":{"limit":5,"gifted":5},"accountID":"6E9547A5E93C61163E9FEB00031C51DE","dateLastVisit":"2024-12-18","quota":{"limit":2,"remaining":1},"ascendQuota":{"limit":2,"remaining":2},"userState":"Guest","secondsSinceLastVisit":0,"daysSinceLastVisit":0,"guid":"6E9547A5E93C61163E9FEB00031C51DE"}}],"version":"2.2","siteID":"hbrprod","siteType":"Desktop","pageInstanceID":"AI Engineers Need to Think Beyond Engineering:beanstalk-prod"}; if (window.digitalData && window.digitalData.page && window.digitalData.page.pageInfo) { if (!window.digitalData.page.pageInfo.deviceType) { !function (a) { var b = /iPhone/i, c = /iPod/i, d = /iPad/i, e = /(?=.*\bAndroid\b)(?=.*\bMobile\b)/i, f = /Android/i, g = /(?=.*\bAndroid\b)(?=.*\bSD4930UR\b)/i, h = /(?=.*\bAndroid\b)(?=.*\b(?:KFOT|KFTT|KFJWI|KFJWA|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|KFARWI|KFASWI|KFSAWI|KFSAWA)\b)/i, i = /Windows Phone/i, j = /(?=.*\bWindows\b)(?=.*\bARM\b)/i, k = /BlackBerry/i, l = /BB10/i, m = /Opera Mini/i, n = /(CriOS|Chrome)(?=.*\bMobile\b)/i, o = /(?=.*\bFirefox\b)(?=.*\bMobile\b)/i, p = new RegExp("(?:Nexus 7|BNTV250|Kindle Fire|Silk|GT-P1000)", "i"), q = function (a, b) { return a.test(b) }, r = function (a) { var r = a || navigator.userAgent, s = r.split("[FBAN"); if ("undefined" != typeof s[1] && (r = s[0]), s = r.split("Twitter"), "undefined" != typeof s[1] && (r = s[0]), this.apple = { phone: q(b, r), ipod: q(c, r), tablet: !q(b, r) && q(d, r), device: q(b, r) || q(c, r) || q(d, r) }, this.amazon = { phone: q(g, r), tablet: !q(g, r) && q(h, r), device: q(g, r) || q(h, r) }, this.android = { phone: q(g, r) || q(e, r), tablet: !q(g, r) && !q(e, r) && (q(h, r) || q(f, r)), device: q(g, r) || q(h, r) || q(e, r) || q(f, r) }, this.windows = { phone: q(i, r), tablet: q(j, r), device: q(i, r) || q(j, r) }, this.other = { blackberry: q(k, r), blackberry10: q(l, r), opera: q(m, r), firefox: q(o, r), chrome: q(n, r), device: q(k, r) || q(l, r) || q(m, r) || q(o, r) || q(n, r) }, this.seven_inch = q(p, r), this.any = this.apple.device || this.android.device || this.windows.device || this.other.device || this.seven_inch, this.phone = this.apple.phone || this.android.phone || this.windows.phone, this.tablet = this.apple.tablet || this.android.tablet || this.windows.tablet, "undefined" == typeof window) { return this } }, s = function () { var a = new r; return a.Class = r, a }; "undefined" != typeof module && module.exports && "undefined" == typeof window ? module.exports = r : "undefined" != typeof module && module.exports && "undefined" != typeof window ? module.exports = s() : "function" == typeof define && define.amd ? define("isMobile", [], a.isMobile = s()) : a.isMobile = s() }(this); window.digitalData.page.pageInfo.sysEnv = "Desktop"; window.digitalData.page.pageInfo.deviceType = "Desktop"; if (isMobile.phone || isMobile.tablet) { window.digitalData.page.pageInfo.sysEnv = "Mobile"; if (isMobile.phone) { window.digitalData.page.pageInfo.deviceType = "Mobile"; } if (isMobile.tablet) { window.digitalData.page.pageInfo.deviceType = "Tablet"; } } window.digitalData.siteType = window.digitalData.page.pageInfo.deviceType; } window.digitalData.page.pageInfo.pageURL = window.location.origin + window.location.pathname; if (document.referrer) { window.digitalData.page.pageInfo.referringURL = document.referrer; } } </script> <script src="//assets.adobedtm.com/c0857d0b892a/fccd631ba54c/launch-68b2fecf2e9e.min.js"></script> <script type="text/javascript" src="/resources/js/components/overlay-intromercial/intromercial_e7f83d32e87142cc.js"></script> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "WebSite", "url": "https://hbr.org/", "potentialAction": { "@type": "SearchAction", "target": "https://hbr.org/search?term={search_term_string}", "query-input": "required name=search_term_string" } } </script> </head> <body> <script type="text/javascript"> if (typeof generateIntromercial === 'function') { generateIntromercial(); } </script> <!-- column --> <div id="main" class="container"> <div id="" class="component" data-order="0" data-type="webscript" data-moveable="false" data-params="region=openx;location=leaderboard"> <section js-target="openx-container"> <script type="text/javascript"> document.addEventListener('DOMContentLoaded', (event) => { const articleElement = document.querySelector('.article-content-flex2019'); const pageSubtype = articleElement.getAttribute('page-subtype'); if (pageSubtype === 'big-idea') { const adContainerToRemove = document.querySelector('.ad-container-column'); adContainerToRemove.remove(); } }); </script> <div class="row"> <div class="small-12 column text-center ad-container-column"> <div class="mts mbm ad-container"> <div class="ad" id="DFP_ARTICLE_pos1"> <script type="text/javascript"> if (isAdobeSync()) googletag.cmd.push(function() { googletag.display("DFP_ARTICLE_pos1"); }); </script> </div> </div> </div> </div> </section> </div> <div id="" class="component" data-order="1" data-type="webscript" data-moveable="false" data-params="region=header"> <div class="sticky-top-header global-nav-container"> <header data-page="article" class="top-header hide-for-print global-nav-container" role="banner" style="display: flex; flex-direction: row"> <div class="header-desktop-big-logo"> <a href="/"> <div class="hbr-header-area01"> <svg xmlns="http://www.w3.org/2000/svg" width="130" height="148" viewBox="0 0 130 148" fill="none"> <g id="New Branding Logo" clip-path="url(#clip0_2267_1488)"> <g id="Logo"> <path d="M21.3729 54.332V50.78C21.3729 49.2013 20.5031 47.9022 19.0534 47.3102L18.8546 47.228L19.0534 47.154C20.4037 46.6689 21.2072 45.3862 21.2072 43.7171V40.6667C21.2072 37.3531 19.3434 35.6758 15.6736 35.6758H9.05469V59.3229H15.8392C19.509 59.3229 21.3729 57.6456 21.3729 54.332ZM13.9671 39.7869H15.1682C15.8807 39.7869 16.2866 40.2884 16.2866 41.16V43.75C16.2866 44.6216 15.8807 45.1231 15.1682 45.1231H13.9671V39.7869ZM13.9671 55.2036V49.1684H15.1351C15.9884 49.1684 16.4191 49.6618 16.4191 50.6402V53.8222C16.4191 54.7102 16.0132 55.1953 15.2676 55.1953H13.9671V55.2036Z" fill="#282828"/> <path d="M34.8668 35.6758H29.8882V54.036C29.8882 54.9487 29.4823 55.4749 28.7698 55.4749C28.0574 55.4749 27.6184 54.9322 27.6184 54.036V35.6758H22.6729V54.1676C22.6729 57.4647 25.0669 59.5942 28.7698 59.5942C32.4728 59.5942 34.8668 57.4647 34.8668 54.1676V35.6758Z" fill="#282828"/> <path d="M41.908 59.5859C45.6109 59.5859 48.005 57.4563 48.005 54.1592V51.0759C48.005 49.0779 47.392 47.9267 45.7352 46.8332L41.8252 44.0787C41.2287 43.6347 41.0216 43.199 41.0216 42.385V40.9625C41.0216 39.7703 41.6098 39.5236 42.1068 39.5236C42.7861 39.5236 43.1589 40.0334 43.1589 40.9625V43.7827H47.9719V40.831C47.9719 37.4352 45.7766 35.4043 42.1068 35.4043C38.437 35.4043 36.043 37.5339 36.043 40.831V43.3881C36.043 45.3861 36.656 46.5372 38.3128 47.6307L42.2228 50.4181C42.753 50.8127 43.0263 51.1827 43.0263 52.1119V54.0359C43.0263 54.965 42.6536 55.4747 41.9743 55.4747C41.4772 55.4747 40.8891 55.2281 40.8891 54.0359V50.7881H36.043V54.1674C36.043 57.5632 38.2382 59.5941 41.908 59.5941V59.5859Z" fill="#282828"/> <path d="M54.334 35.6758H49.3223V59.3229H54.334V35.6758Z" fill="#282828"/> <path d="M64.3746 59.3229H68.7568V35.6758H64.2752V41.8589L64.3497 47.0142H63.9024L61.2681 35.6758H56.2811V59.3229H60.7628V51.446L60.6965 46.488H61.1355L64.3746 59.3229Z" fill="#282828"/> <path d="M80.1721 40.05V35.6758H70.7118V59.3229H80.1721V54.9404H75.591V49.3082H79.6005V44.9258H75.591V40.05H80.1721Z" fill="#282828"/> <path d="M92.9786 51.0846C92.9786 49.0866 92.3656 47.9355 90.7088 46.842L86.7988 44.0875C86.2024 43.6435 85.9952 43.2078 85.9952 42.3938V40.9713C85.9952 39.7791 86.5834 39.5324 87.0805 39.5324C87.7597 39.5324 88.1325 40.0422 88.1325 40.9713V43.7915H92.9455V40.8398C92.9455 37.444 90.7502 35.4131 87.0805 35.4131C83.4107 35.4131 81.0166 37.5426 81.0166 40.8398V43.3969C81.0166 45.3949 81.6296 46.546 83.2864 47.6395L87.1964 50.4269C87.7266 50.8215 88 51.1915 88 52.1206V54.0446C88 54.9738 87.6272 55.4835 86.9479 55.4835C86.4509 55.4835 85.8627 55.2369 85.8627 54.0446V50.7969H81.0166V54.1762C81.0166 57.572 83.2118 59.6029 86.8816 59.6029C90.5514 59.6029 92.9786 57.4733 92.9786 54.1762V51.0846Z" fill="#282828"/> <path d="M106.076 51.0846C106.076 49.0866 105.463 47.9355 103.806 46.842L99.8965 44.0875C99.3 43.6435 99.0929 43.2078 99.0929 42.3938V40.9713C99.0929 39.7791 99.6811 39.5324 100.178 39.5324C100.857 39.5324 101.23 40.0422 101.23 40.9713V43.7915H106.043V40.8398C106.043 37.444 103.848 35.4131 100.178 35.4131C96.5083 35.4131 94.1143 37.5426 94.1143 40.8398V43.3969C94.1143 45.3949 94.7273 46.546 96.3841 47.6395L100.294 50.4269C100.824 50.8215 101.098 51.1915 101.098 52.1206V54.0446C101.098 54.9738 100.725 55.4835 100.046 55.4835C99.5485 55.4835 98.9604 55.2369 98.9604 54.0446V50.7969H94.1143V54.1762C94.1143 57.572 96.3095 59.6029 99.9793 59.6029C103.649 59.6029 106.076 57.4733 106.076 54.1762V51.0846Z" fill="#282828"/> <path d="M21.696 32.6417V8.98633H16.7091V18.2446H14.0748V8.98633H9.05469V32.6417H14.0748V22.6188H16.7091V32.6417H21.696Z" fill="#282828"/> <path d="M30.8663 27.8651L31.3634 32.6422H36.2095L32.987 8.99512H25.7137L22.5244 32.6422H27.2048L27.6687 27.8651H30.8663ZM28.3977 19.8813L28.8782 15.3345H29.6238L30.1456 19.8813L30.6344 23.9513H27.909L28.3977 19.8813Z" fill="#282828"/> <path d="M49.7285 32.6418C49.4386 31.7785 49.3972 30.5945 49.3972 29.542V24.4032C49.3972 22.6847 48.6599 21.4514 47.3096 20.9334L47.1025 20.8512L47.3096 20.7772C48.6599 20.292 49.4635 19.0094 49.4635 17.3403V13.9938C49.4635 10.6803 47.5996 9.00293 43.9298 9.00293H37.1121V32.65H42.0576V23.03H43.1925C43.7641 23.03 44.4434 23.2849 44.4434 24.5018V29.7065C44.4434 30.652 44.4848 31.8278 44.783 32.6418H49.7285ZM43.3665 18.812H42.0659V13.2127H43.3665C44.0706 13.2127 44.4848 13.7307 44.4848 14.5858V17.4389C44.4848 18.3105 44.0789 18.812 43.3665 18.812Z" fill="#282828"/> <path d="M58.5261 8.9873L57.4989 19.7913L57.0598 25.0782H56.538L56.0989 19.7913L55.0303 8.9873H49.9688L53.5143 32.6426H59.8101L63.3971 8.9873H58.5261Z" fill="#282828"/> <path d="M84.5049 32.6428H89.4422C89.1522 31.7795 89.1108 30.5955 89.1108 29.543V24.4041C89.1108 22.6857 88.3735 21.4524 87.0232 20.9343L86.8244 20.8521L87.0315 20.7781C88.3818 20.293 89.1854 19.0104 89.1854 17.3412V13.9948C89.1854 10.6812 87.3215 9.00391 83.6517 9.00391H76.834V32.651H81.7795V23.031H82.9144C83.486 23.031 84.1653 23.2859 84.1653 24.5028V29.7075C84.1653 30.653 84.2067 31.8288 84.5049 32.6428ZM83.0801 18.813H81.7795V13.2137H83.0801C83.7842 13.2137 84.1984 13.7317 84.1984 14.5868V17.4399C84.1984 18.3115 83.7925 18.813 83.0801 18.813Z" fill="#282828"/> <path d="M103.276 14.414C103.276 11.0675 100.973 8.9873 97.2784 8.9873H90.9246V32.6344H97.2784C100.981 32.6344 103.276 30.5542 103.276 27.2077V14.4057V14.414ZM98.2973 27.0515C98.2973 27.9149 97.8831 28.4246 97.179 28.4246H95.8784V13.2053H97.179C97.8831 13.2053 98.2973 13.7233 98.2973 14.5784V27.0515Z" fill="#282828"/> <path d="M70.6041 27.8651L71.1094 32.6422H75.9555L72.7331 8.99511H65.4598L62.2704 32.6422H66.9509L67.4148 27.8651H70.6041ZM68.1355 19.8813L68.616 15.3344H69.3615L69.8834 19.8813L70.3721 23.9513H67.6467L68.1355 19.8813Z" fill="#282828"/> <path d="M16.7336 86.0129H21.6708C21.3809 85.1496 21.3394 83.9656 21.3394 82.9131V77.7742C21.3394 76.0558 20.6022 74.8225 19.2519 74.3045L19.0531 74.2222L19.2602 74.1482C20.6105 73.6631 21.414 72.3805 21.414 70.7114V67.3649C21.414 64.0514 19.5501 62.374 15.8803 62.374H9.06264V86.0211H14.0082V76.4011H15.1431C15.7146 76.4011 16.3939 76.656 16.3939 77.8729V83.0776C16.3939 84.0231 16.4354 85.1989 16.7336 86.0129ZM15.3087 72.1831H14.0082V66.5838H15.3087C16.0129 66.5838 16.4271 67.1018 16.4271 67.9569V70.81C16.4271 71.6816 16.0212 72.1831 15.3087 72.1831Z" fill="#282828"/> <path d="M32.5472 66.7399V62.3574H23.0869V86.0128H32.5472V81.6303H27.9662V75.9899H31.9756V71.6156H27.9662V66.7399H32.5472Z" fill="#282828"/> <path d="M52.3956 62.3574H47.3838V86.0045H52.3956V62.3574Z" fill="#282828"/> <path d="M63.7367 66.7398V62.3573H54.2764V86.0127H63.7367V81.6302H59.1557V75.9898H63.1651V71.6156H59.1557V66.7398H63.7367Z" fill="#282828"/> <path d="M78.9626 62.3573L77.9851 76.0227H77.2395L77.2313 75.9487L76.3035 62.3573H72.2609L71.3911 76.0227H70.6372L70.2562 71.1058L69.6266 62.3573H64.4491L67.1497 86.0127H72.8408L73.7768 73.3093H74.4478L75.3508 86.0127H81.0419L83.7424 62.3573H78.9626Z" fill="#282828"/> <path d="M41.7842 62.3573L40.757 73.1613L40.3097 78.4482H39.7961L39.3488 73.1613L38.2884 62.3573H33.2186L36.7724 86.0127H43.0682L46.6469 62.3573H41.7842Z" fill="#282828"/> <path d="M64.9959 148L64.0929 147.556C39.1499 135.387 22.9548 124.509 13.1218 113.319C4.05085 103 0 92.1464 0 78.1276V0H130V78.1276C130 92.1464 125.957 103 116.878 113.319C107.045 124.509 90.8418 135.387 65.9071 147.556L65.0042 148H64.9959ZM4.10884 4.07822V78.1276C4.10884 91.0858 7.8449 101.117 16.2117 110.638C25.5643 121.27 41.0801 131.712 64.9959 143.453C88.9116 131.712 104.436 121.27 113.78 110.638C122.155 101.117 125.883 91.094 125.883 78.1276V4.07822H4.10055H4.10884Z" fill="#282828"/> </g> </g> <defs> <clipPath id="clip0_2267_1488"> <rect width="130" height="148" fill="white"/> </clipPath> </defs> </svg> </div> </a> <div class= "hbr-header-vertical-line"></div> <div class="hbr-header-area02"> <div class="hbr-header--area02-region01"> <div id="top-header--panel-icon" class="flex-row top-header--menu-link"> <a href="#" class="link--black hamburger-icon-container" js-target="global-header--search-overlay"> <svg class="hamburger-icon top-header--menu-icon-open" alt="Navigation Menu" aria-labelledby="title"> <title>Navigation Menu</title> <use xlink:href="/resources/css/images/hbr-icons.svg#hamburger"></use></svg> </a> </div> <!-- logo --> <div class="top-header--headline-container"> <article-headline class="article-headline hide-medium-down"> </article-headline> </div> <!-- right aligned items --> <div class="flex-row top-header--bottom-left-align"> <personalization-placement style="margin-right: 28px;" class="flex-row top-header--subscribe hide-small" data-placement-id="topbar_subscribe_engage"> <a href="/subscriptions?ab=topbar-subtout&tpcc=houseads.site.topbar-subtout" target="_blank" rel="noopener" class="baseline-shift-down-more button button--tight mbn new-button-subscribe"> Subscribe </a> </personalization-placement> <a href="/shopping-cart" class="link--black flex-row top-header--shopping-cart mrl do-not-show" js-target="global-header-menu-toggle" data-menu="cart" data-cart-badge="0"> <img class="cart-icon" src="/resources/css/images/cart-icon.png" alt="Cart"> </a> <a href="#" style="height: 40px; border-right: 1px #e2e2e2 solid;" class="global-header-button-v2 flex-row sign-in " js-target="sign-in-register"> <span style="width: 47px;" class="baseline-shift-down-more">Sign In</span> </a> <span class="link--black flex-row "> <div class="top-header--user-dropdown-container non-subscriber-avatar mls flex-row sign-in do-not-show" js-target="global-header-menu-toggle" data-menu="user"> <a href="#" js-target="global-header-menu-toggle" class="top-header--user-dropdown-container-img" > <svg class="unfilled-user-icon" alt="Account Menu" aria-labelledby="title"> <title>Account Menu</title> <use xlink:href="/resources/css/images/hbr-icons.svg#user-nav"></use></svg> </a> </div> <div class="top-header--user-dropdown-container subscriber-avatar mls flex-row sign-in do-not-show" js-target="global-header-menu-toggle" data-menu="user"> <svg class="unfilled-user-icon" alt="Account Menu" aria-labelledby="title"> <title>Account Menu</title> <use xlink:href="/resources/css/images/hbr-icons.svg#user-shield-blue"></use></svg> </div> <div class="top-header--user-name user-header-name mls flex-row sign-in do-not-show " js-target="global-header-menu-toggle" data-menu="user"> Hi, <div js-target="user-header-name"> Guest </div> </div> <div class="top-header--user-dropdown-container has-border-right caret-down-button prl flex-row sign-in do-not-show " js-target="global-header-menu-toggle" data-menu="user"> <span class="icon icon-caret-down sign-in"> </span> </div> </span> <a id="top-header--open-search-overlay" href="#" class="link--black flex-row top-header--search-container mls hide-small" js-target="global-header--search-overlay"> <svg class="search-icon size-24x24" alt="Search Menu" aria-labelledby="title"> <title>Search Menu</title> <use xlink:href="/resources/css/images/hbr-icons.svg#search"></use></svg> </a> </div> <!--END-----------------> </div> <div class="global-nav flex-col " style="width: calc(100% - 218px) !important;"> <div class="top-header--horizontal-list "> <a href="/the-latest" class="link--black " track-target="global-nav-link--the-latest" > Latest </a> <a href="/magazine" class="link--black " track-target="global-nav-link--magazine" > Magazine </a> <a href="/topics" class="link--black " track-target="global-nav-link--topics" > Topics </a> <a href="/podcasts" class="link--black " track-target="global-nav-link--podcasts" > Podcasts </a> <a href="/store" class="link--black " track-target="global-nav-link--store" > Store </a> <a href="/big-ideas" class="link--black " track-target="global-nav-link--big-idea" > The Big Idea </a> <a href="/data-visuals" class="link--black " track-target="global-nav-link--visual-library" > Data & Visuals </a> <a href="/case-selections" class="link--black " track-target="global-nav-link--case-selection" > Case Selections </a> <a href="/learning" class="link--black do-not-show hbr-learning" js-target="hbr-learning" track-target="global-nav-link--hmm" > HBR Learning </a> <a href="/ai-beta" class="link--black do-not-show ai-beta" track-target="global-nav-link--ai-beta" > <svg class="ai-beta-svg size-16x16 svg-fill-current"><use xlink:href="/resources/css/images/header/sparkles-sharp-solid.svg#Layer_1"></use></svg> <span>Ask AI</span> </a> </div> </div> </div> </div> <div class="header-desktop-small-logo"> <a href="/"> <div class="hbr-header-area01-scroll"> <svg xmlns="http://www.w3.org/2000/svg" width="47" height="54" viewBox="0 0 47 54" fill="none"> <g id="New Branding Logo" clip-path="url(#clip0_2267_2017)"> <g id="Logo"> <path d="M29.5562 15.7316V22.5566H25.9894V5.68164H30.8008C33.4388 5.68164 34.7206 6.90039 34.7206 9.28164V11.6629C34.7206 12.7879 34.2005 13.7816 33.1787 14.1566C34.2562 14.5879 34.6649 15.5629 34.6649 16.6691V20.3066C34.6649 21.2066 34.7206 21.9941 34.925 22.5566H31.3582C31.1538 22.0129 31.0981 21.2441 31.0981 20.4191V16.7254C31.0981 16.0879 30.838 15.7316 30.2807 15.7316H29.5376H29.5562ZM30.4107 8.77539H29.5562V12.6379H30.4107C30.8752 12.6379 31.1352 12.3004 31.1352 11.7191V9.69414C31.1352 9.13164 30.8752 8.77539 30.4107 8.77539Z" fill="#282828"/> <path d="M20.6949 5.66211C23.3328 5.66211 24.6146 6.88086 24.6146 9.26211V11.4184C24.6146 12.5434 24.0945 13.5371 23.0727 13.9121C24.1502 14.3621 24.7261 15.3184 24.7261 16.4246V18.9371C24.7261 21.3184 23.4443 22.5371 20.8063 22.5371H16.0134V5.66211H20.6949ZM20.3605 8.69961H19.5802V12.3746H20.3605C20.8249 12.3746 21.085 12.0371 21.085 11.4559V9.61836C21.085 9.03711 20.8249 8.69961 20.3605 8.69961ZM20.3419 15.3559H19.5802V19.5184H20.4348C20.9178 19.5184 21.1779 19.1809 21.1779 18.5996V16.3496C21.1779 15.7121 20.9178 15.3559 20.3419 15.3559Z" fill="#282828"/> <path d="M14.5272 5.66211V22.5371H10.9419V15.4309H9.21418V22.5371H5.61023V5.66211H9.21418V12.2246H10.9419V5.66211H14.5272Z" fill="#282828"/> <path d="M23.5 54L22.9427 53.7188C14.0628 49.3125 8.30395 45.375 4.77431 41.2875C1.48617 37.4813 0 33.4688 0 28.2938V0H47V28.2938C47 33.4688 45.5324 37.4813 42.2257 41.2875C38.696 45.3563 32.9372 49.3125 24.0573 53.7188L23.5 54ZM2.56364 2.5875V28.2938C2.56364 36.075 6.00039 42.3375 23.5 51.1125C40.981 42.3375 44.4364 36.0938 44.4364 28.2938V2.5875H2.56364Z" fill="#282828"/> </g> </g> <defs> <clipPath id="clip0_2267_2017"> <rect width="47" height="54" fill="white"/> </clipPath> </defs> </svg> </div> </a> <div class= "hbr-header-vertical-line-scroll"></div> <div class="hbr-header-area02"> <div class="hbr-header--area02-region01"> <div id="top-header--panel-icon" class="flex-row top-header--menu-link"> <a href="#" class="link--black hamburger-icon-container" js-target="global-header--search-overlay"> <svg class="hamburger-icon top-header--menu-icon-open" alt="Navigation Menu" aria-labelledby="title"> <title>Navigation Menu</title> <use xlink:href="/resources/css/images/hbr-icons.svg#hamburger"></use></svg> </a> </div> <!-- logo --> <div class="top-header--headline-container"> <article-headline class="article-headline hide-medium-down"> </article-headline> </div> <!-- right aligned items --> <div class="flex-row top-header--bottom-left-align"> <personalization-placement class="flex-row mrl top-header--subscribe hide-small" data-placement-id="topbar_subscribe_engage"> <a href="/subscriptions?ab=topbar-subtout&tpcc=houseads.site.topbar-subtout" target="_blank" rel="noopener" class="baseline-shift-down-more button button--tight mbn"> Subscribe </a> </personalization-placement> <a href="/shopping-cart" class="link--black flex-row top-header--shopping-cart mrl do-not-show" js-target="global-header-menu-toggle" data-menu="cart" data-cart-badge="0"> <img class="cart-icon" src="/resources/css/images/cart-icon.png" alt="Cart"> </a> <a href="#" style="height: 40px;" class="link--black global-header-button-v2 flex-row mrm prl has-border-right sign-in " js-target="sign-in-register"> <span class="baseline-shift-down-more">Sign In</span> </a> <span class="link--black flex-row "> <div class="top-header--user-dropdown-container non-subscriber-avatar mls flex-row sign-in do-not-show" js-target="global-header-menu-toggle" data-menu="user"> <a href="#" js-target="global-header-menu-toggle" class="top-header--user-dropdown-container-img" > <svg class="unfilled-user-icon" alt="Account Menu" aria-labelledby="title"> <title>Account Menu</title> <use xlink:href="/resources/css/images/hbr-icons.svg#user-nav"></use></svg> </a> </div> <div class="top-header--user-dropdown-container subscriber-avatar mls flex-row sign-in do-not-show" js-target="global-header-menu-toggle" data-menu="user"> <svg class="unfilled-user-icon" alt="Account Menu" aria-labelledby="title"> <title>Account Menu</title> <use xlink:href="/resources/css/images/hbr-icons.svg#user-shield-blue"></use></svg> </div> <div class="top-header--user-name user-header-name mls flex-row sign-in do-not-show " js-target="global-header-menu-toggle" data-menu="user"> Hi, <div js-target="user-header-name"> Guest </div> </div> <div class="top-header--user-dropdown-container has-border-right caret-down-button prl flex-row sign-in do-not-show " js-target="global-header-menu-toggle" data-menu="user"> <span class="icon icon-caret-down sign-in"> </span> </div> </span> <a id="top-header--open-search-overlay" href="#" class="link--black flex-row top-header--search-container mls hide-small" js-target="global-header--search-overlay"> <svg class="search-icon size-24x24" alt="Search Menu" aria-labelledby="title"> <title>Search Menu</title> <use xlink:href="/resources/css/images/hbr-icons.svg#search"></use></svg> </a> </div> <!--END-----------------> </div> </div> </div> <div class="header-mobile-big-logo"> <a href="/"> <div class="hbr-header-area01-mobile-initial"> <svg xmlns="http://www.w3.org/2000/svg" width="61" height="69" viewBox="0 0 61 69" fill="none"> <g clip-path="url(#clip0_1844_17177)"> <path d="M37.8424 20.0829V28.7957H33.289V7.25316H39.4313C42.7989 7.25316 44.4353 8.80901 44.4353 11.8489V14.8888C44.4353 16.325 43.7712 17.5936 42.4669 18.0723C43.8424 18.6228 44.3641 19.8675 44.3641 21.2798V25.9234C44.3641 27.0723 44.4353 28.0776 44.6961 28.7957H40.1428C39.8819 28.1016 39.8108 27.1202 39.8108 26.067V21.3516C39.8108 20.5377 39.4787 20.0829 38.7673 20.0829H37.8187H37.8424ZM38.9333 11.2026H37.8424V16.1335H38.9333C39.5262 16.1335 39.8582 15.7026 39.8582 14.9606V12.3755C39.8582 11.6574 39.5262 11.2026 38.9333 11.2026Z" fill="#282828"/> <path d="M26.53 7.22823C29.8976 7.22823 31.534 8.78408 31.534 11.824V14.5766C31.534 16.0128 30.87 17.2814 29.5656 17.7601C30.9411 18.3346 31.6763 19.5554 31.6763 20.9676V24.175C31.6763 27.2149 30.0399 28.7708 26.6723 28.7708H20.5538V7.22823H26.53ZM26.1032 11.1059H25.1071V15.7974H26.1032C26.6961 15.7974 27.0281 15.3665 27.0281 14.6245V12.2788C27.0281 11.5367 26.6961 11.1059 26.1032 11.1059ZM26.0795 19.6032H25.1071V24.9171H26.198C26.8146 24.9171 27.1466 24.4862 27.1466 23.7442V20.8718C27.1466 20.058 26.8146 19.6032 26.0795 19.6032Z" fill="#282828"/> <path d="M18.6565 7.22823V28.7708H14.0794V19.699H11.8739V28.7708H7.27308V7.22823H11.8739V15.6059H14.0794V7.22823H18.6565Z" fill="#282828"/> <path d="M30.1111 68.9362L29.3996 68.5771C18.0637 62.9521 10.7119 57.9255 6.20595 52.7075C2.00832 47.8484 0.111084 42.7261 0.111084 36.1197V0H60.1111V36.1197C60.1111 42.7261 58.2376 47.8484 54.0162 52.7075C49.5103 57.9016 42.1585 62.9521 30.8225 68.5771L30.1111 68.9362ZM3.38381 3.30319V36.1197C3.38381 46.0532 7.77116 54.0479 30.1111 65.25C52.4273 54.0479 56.8384 46.0771 56.8384 36.1197V3.30319H3.38381Z" fill="#282828"/> </g> <defs> <clipPath id="clip0_1844_17177"> <rect width="60" height="68.9362" fill="white" transform="translate(0.111084)"/> </clipPath> </defs> </svg> </div> </a> <div class= "hbr-header-vertical-line-mobile-initial"></div> <div class="hbr-header-area02-mobile-initial"> <div class="hbr-header--area02-region01"> <div id="top-header--panel-icon" class="flex-row top-header--menu-link"> <a href="#" class="link--black hamburger-icon-container" js-target="global-header--search-overlay"> <svg class="hamburger-icon top-header--menu-icon-open" alt="Navigation Menu" aria-labelledby="title"> <title>Navigation Menu</title> <use xlink:href="/resources/css/images/hbr-icons.svg#hamburger"></use></svg> </a> </div> <!-- logo --> <div class="top-header--headline-container"> <article-headline class="article-headline hide-medium-down"> </article-headline> </div> <!-- right aligned items --> <div class="flex-row top-header--bottom-left-align-mobile-initial"> <personalization-placement class="flex-row mrl top-header--subscribe hide-small" data-placement-id="topbar_subscribe_engage"> <a href="/subscriptions?ab=topbar-subtout&tpcc=houseads.site.topbar-subtout" target="_blank" rel="noopener" class="baseline-shift-down-more button button--tight mbn"> Subscribe </a> </personalization-placement> <a href="/shopping-cart" class="link--black flex-row top-header--shopping-cart mrl do-not-show" js-target="global-header-menu-toggle" data-menu="cart" data-cart-badge="0"> <img class="cart-icon" src="/resources/css/images/cart-icon.png" alt="Cart"> </a> <a href="#" class="link--black global-header-button flex-row mrm prl has-border-right sign-in " js-target="sign-in-register"> <span class="baseline-shift-down-more">Sign In</span> </a> <span class="link--black flex-row "> <div class="top-header--user-dropdown-container non-subscriber-avatar mls flex-row sign-in do-not-show" js-target="global-header-menu-toggle" data-menu="user"> <a href="#" js-target="global-header-menu-toggle" class="top-header--user-dropdown-container-img" > <svg class="unfilled-user-icon" alt="Account Menu" aria-labelledby="title"> <title>Account Menu</title> <use xlink:href="/resources/css/images/hbr-icons.svg#user-nav"></use></svg> </a> </div> <div class="top-header--user-dropdown-container subscriber-avatar mls flex-row sign-in do-not-show" js-target="global-header-menu-toggle" data-menu="user"> <svg class="unfilled-user-icon" alt="Account Menu" aria-labelledby="title"> <title>Account Menu</title> <use xlink:href="/resources/css/images/hbr-icons.svg#user-shield-blue"></use></svg> </div> <div class="top-header--user-name user-header-name mls flex-row sign-in do-not-show " js-target="global-header-menu-toggle" data-menu="user"> Hi, <div js-target="user-header-name"> Guest </div> </div> <div class="top-header--user-dropdown-container has-border-right caret-down-button prl flex-row sign-in do-not-show " js-target="global-header-menu-toggle" data-menu="user"> <span class="icon icon-caret-down sign-in"> </span> </div> </span> <a id="top-header--open-search-overlay" href="#" class="link--black flex-row top-header--search-container mls hide-small" js-target="global-header--search-overlay"> <svg class="search-icon size-24x24" alt="Search Menu" aria-labelledby="title"> <title>Search Menu</title> <use xlink:href="/resources/css/images/hbr-icons.svg#search"></use></svg> </a> </div> <!--END-----------------> </div> </div> </div> <div class="header-mobile-small-logo"> <a href="/"> <div class="hbr-header-area01-mobile-collapsed"> <svg xmlns="http://www.w3.org/2000/svg" width="41" height="47" viewBox="0 0 41 47" fill="none"> <g clip-path="url(#clip0_1865_9065)"> <path d="M25.27 14.3376V20.1514H22.2316V5.77644H26.3303C28.5774 5.77644 29.6693 6.81463 29.6693 8.84311V10.8716C29.6693 11.8299 29.2262 12.6764 28.3559 12.9959C29.2737 13.3632 29.6219 14.1938 29.6219 15.1362V18.2348C29.6219 19.0014 29.6693 19.6723 29.8434 20.1514H26.805C26.631 19.6882 26.5835 19.0334 26.5835 18.3306V15.1841C26.5835 14.641 26.3619 14.3376 25.8872 14.3376H25.2542H25.27ZM25.998 8.41186H25.27V11.7021H25.998C26.3936 11.7021 26.6151 11.4146 26.6151 10.9195V9.1945C26.6151 8.71533 26.3936 8.41186 25.998 8.41186Z" fill="#282828"/> <path d="M17.7215 5.7598C19.9686 5.7598 21.0605 6.798 21.0605 8.82647V10.6633C21.0605 11.6216 20.6174 12.4681 19.7471 12.7876C20.6649 13.1709 21.1555 13.9855 21.1555 14.9279V17.0681C21.1555 19.0966 20.0636 20.1348 17.8164 20.1348H13.7336V5.7598H17.7215ZM17.4366 8.3473H16.772V11.4779H17.4366C17.8323 11.4779 18.0538 11.1904 18.0538 10.6952V9.12994C18.0538 8.6348 17.8323 8.3473 17.4366 8.3473ZM17.4208 14.0174H16.772V17.5633H17.4999C17.9114 17.5633 18.1329 17.2758 18.1329 16.7806V14.864C18.1329 14.3209 17.9114 14.0174 17.4208 14.0174Z" fill="#282828"/> <path d="M12.4676 5.7598V20.1348H9.41337V14.0813H7.94165V20.1348H4.87161V5.7598H7.94165V11.3501H9.41337V5.7598H12.4676Z" fill="#282828"/> <path d="M20.111 46.9365L19.6363 46.6969C12.072 42.9435 7.16627 39.5893 4.15953 36.1074C1.35852 32.865 0.0925293 29.4469 0.0925293 25.0386V0.936523H40.1296V25.0386C40.1296 29.4469 38.8794 32.865 36.0626 36.1074C33.0558 39.5733 28.1501 42.9435 20.5858 46.6969L20.111 46.9365ZM2.27637 3.14069V25.0386C2.27637 31.6671 5.20398 37.0018 20.111 44.4768C35.0023 37.0018 37.9457 31.6831 37.9457 25.0386V3.14069H2.27637Z" fill="#282828"/> </g> <defs> <clipPath id="clip0_1865_9065"> <rect width="40.037" height="46" fill="white" transform="translate(0.0925293 0.936523)"/> </clipPath> </defs> </svg> </div> </a> <div class= "hbr-header-vertical-line-mobile-collapsed"></div> <div class="hbr-header-area02-mobile-collapsed"> <div class="hbr-header--area02-region01"> <div id="top-header--panel-icon" class="flex-row top-header--menu-link"> <a href="#" class="link--black hamburger-icon-container" js-target="global-header--search-overlay"> <svg class="hamburger-icon top-header--menu-icon-open" alt="Navigation Menu" aria-labelledby="title"> <title>Navigation Menu</title> <use xlink:href="/resources/css/images/hbr-icons.svg#hamburger"></use></svg> </a> </div> <!-- logo --> <div class="top-header--headline-container"> <article-headline class="article-headline hide-medium-down"> </article-headline> </div> <!-- right aligned items --> <div class="flex-row top-header--bottom-left-align-mobile-collapsed"> <personalization-placement class="flex-row mrl top-header--subscribe hide-small" data-placement-id="topbar_subscribe_engage"> <a href="/subscriptions?ab=topbar-subtout&tpcc=houseads.site.topbar-subtout" target="_blank" rel="noopener" class="baseline-shift-down-more button button--tight mbn"> Subscribe </a> </personalization-placement> <a href="/shopping-cart" class="link--black flex-row top-header--shopping-cart mrl do-not-show" js-target="global-header-menu-toggle" data-menu="cart" data-cart-badge="0"> <img class="cart-icon" src="/resources/css/images/cart-icon.png" alt="Cart"> </a> <a href="#" class="link--black global-header-button flex-row mrm prl has-border-right sign-in " js-target="sign-in-register"> <span class="baseline-shift-down-more">Sign In</span> </a> <span class="link--black flex-row "> <div class="top-header--user-dropdown-container non-subscriber-avatar mls flex-row sign-in do-not-show" js-target="global-header-menu-toggle" data-menu="user"> <a href="#" js-target="global-header-menu-toggle" class="top-header--user-dropdown-container-img" > <svg class="unfilled-user-icon" alt="Account Menu" aria-labelledby="title"> <title>Account Menu</title> <use xlink:href="/resources/css/images/hbr-icons.svg#user-nav"></use></svg> </a> </div> <div class="top-header--user-dropdown-container subscriber-avatar mls flex-row sign-in do-not-show" js-target="global-header-menu-toggle" data-menu="user"> <svg class="unfilled-user-icon" alt="Account Menu" aria-labelledby="title"> <title>Account Menu</title> <use xlink:href="/resources/css/images/hbr-icons.svg#user-shield-blue"></use></svg> </div> <div class="top-header--user-name user-header-name mls flex-row sign-in do-not-show " js-target="global-header-menu-toggle" data-menu="user"> Hi, <div js-target="user-header-name"> Guest </div> </div> <div class="top-header--user-dropdown-container has-border-right caret-down-button prl flex-row sign-in do-not-show " js-target="global-header-menu-toggle" data-menu="user"> <span class="icon icon-caret-down sign-in"> </span> </div> </span> <a id="top-header--open-search-overlay" href="#" class="link--black flex-row top-header--search-container mls hide-small" js-target="global-header--search-overlay"> <svg class="search-icon size-24x24" alt="Search Menu" aria-labelledby="title"> <title>Search Menu</title> <use xlink:href="/resources/css/images/hbr-icons.svg#search"></use></svg> </a> </div> <!--END-----------------> </div> </div> </div> <!-- header search overlay --> <div class="top-header--overlay do-not-show"> <div class="header-menu--overlay" js-target="global-header--search-overlay"></div> <div class="left close-button absolute hide-small-up"> <a href="#" class="link--black flex-row top-header--close-search-overlay" js-target="global-header--search-overlay"> <svg class="size-24x24 top-header--menu-icon-close svg-ie"> <use xlink:href="/resources/css/images/hbr-icons.svg#x"></use> </svg> </a> </div> <div class="hide-small flex-row overlay--first-row"> <a id="top-header--close-search-overlay" href="#" class="link--black" js-target="global-header--search-overlay"> <svg class="size-24x24 top-header--menu-icon-close svg-ie" aria-labelledby="title"> <title>Close menu</title> <use xlink:href="/resources/css/images/hbr-icons.svg#x"></use> </svg> </a> </div> <div class="top-header--overlay-centered mtl"> <div class="top-header--overlay-search"> <form action="/search" method="get"> <div class="search-container "> <input type="hidden" name="search_type" value="search-all"> <input class="pts pbm search-box-desktop" autocomplete="off" name="term" data-type="search-input" placeholder="Search hbr.org"></input> <input class="search-box-mobile" autocomplete="off" name="term" placeholder="Search hbr.org"></input> <button> <svg aria-labelledby="title"> <title>Search</title> <use xlink:href="/resources/css/images/hbr-icons.svg#search"></use> </svg> </button> <a href="#" class="clear-search-box do-not-show" js-target="clear-search-box">CLEAR</a> </div> <div class="backdrop-white width-100pct zindex-highest hide top-header--search-suggest" data-purpose="search-auto-suggest"> <div class="font-gt-america"> <ul class="no-bullet ptm mbs" data-container="results"> <li class="pbm pts line-height-normal font-size-15 darker-medium-gray"></li> <li class="pbm pts line-height-normal font-size-15 darker-medium-gray"></li> <li class="pbm pts line-height-normal font-size-15 darker-medium-gray"></li> <li class="pbm pts line-height-normal font-size-15 darker-medium-gray"></li> <li class="pbm pts line-height-normal font-size-15 darker-medium-gray"></li> <li class="pbl pts line-height-normal font-size-15 darker-medium-gray has-border-bottom"></li> <li class="ptl font-size-xsmall text-gray-light font-bold">SUGGESTED TOPICS</li> <li class="pbm pts line-height-normal font-size-15 darker-medium-gray no-bullet"></li> <li class="pbm pts line-height-normal font-size-15 darker-medium-gray no-bullet"></li> <li class="pbm pts line-height-normal font-size-15 darker-medium-gray no-bullet"></li> </ul> </div> </div> </form> </div> <div class="top-header--overlay-footer"> <div class="flex-row-wrap flex-row justify-between"> <div class="flex-col hide-small nav--explore"> <span class="mbm font-bold">Explore HBR</span> <ul class="no-bullet tidy-list"> <li><a href="/the-latest">Latest</a></li> <li><a href="/magazine">The Magazine</a></li> <li><a href="/podcasts">Podcasts</a></li> <li><a href="/store">Store</a></li> <li><a href="/webinars">Webinars</a></li> <li><a href="/email-newsletters">Newsletters</a></li> </ul> </div> <div class="flex-col hide-small nav--popular"> <span class="mbm font-bold">Popular Topics</span> <ul class="no-bullet tidy-list"> <li><a href="/topic/subject/managing-yourself">Managing Yourself</a></li> <li><a href="/topic/subject/leadership">Leadership</a></li> <li><a href="/topic/subject/strategy">Strategy</a></li> <li><a href="/topic/subject/managing-people">Managing Teams</a></li> <li><a href="/topic/subject/gender">Gender</a></li> <li><a href="/topic/subject/innovation">Innovation</a></li> <li><a href="/topic/subject/work-life-balance">Work-life Balance</a></li> <li><a href="/topics">All Topics</a></li> </ul> </div> <div class="flex-col hide-small nav--subscribers"> <span class="mbm font-bold">For Subscribers</span> <ul class="no-bullet tidy-list"> <li><a href="/big-ideas">The Big Idea</a></li> <li><a href="/data-visuals">Data & Visuals</a></li> <li><a href="/case-selections" track-target="global-nav-link--case-selection">Case Selections</a></li> <li><a href="/learning" class="do-not-show hbr-learning" js-target="hbr-learning-mega" track-target="global-nav-link--hmm">HBR Learning</a></li> <li> <personalization-placement data-placement-id="mag_cover_engage"> <a href="/subscriptions?ab=leftnav-subtout&tpcc=houseads.site.leftnav-subtout" target="_blank" rel="noopener" class="subscribe-link">Subscribe</a> </personalization-placement> </li> </ul> </div> <div class="flex-col hide-small nav--account"> <span class="mbm font-bold">My Account</span> <ul class="no-bullet tidy-list"> <li><a href="/my-library" js-target="validate-user-signed">My Library</a></li> <li><a href="/my-library/topics" js-target="validate-user-signed">Topic Feeds</a></li> <li><a href="/my-library/orders" js-target="validate-user-signed">Orders</a></li> <li><a href="/my-library/settings" js-target="validate-user-signed">Account Settings</a></li> <li><a href="/my-library/preferences" js-target="validate-user-signed">Email Preferences</a></li> <li><a href="/logout" js-target="logout" class="do-not-show">Log Out</a></li> <li><a href="#" js-target="sign-in-register" class="">Sign In</a></li> </ul> </div> <div class="small-flex-col hide-small nav--social"> <ul class="no-bullet tidy-list"> <li class="icon-x"> <a href="http://twitter.com/HarvardBiz" class="link--black" target="_blank" rel="noopener"> <i class="icon icon-x" title="Twitter"> <svg width="14" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <g> <rect width="12" height="12" fill="none"/> <path fill-rule="evenodd" clip-rule="evenodd" d="M7.82741 2L12.8799 9.3532L19.2057 2H20.9321L13.6468 10.4686L21.57 22H15.7425L10.4068 14.2348L3.72649 22H2L9.6403 13.1193L2 2H7.82741ZM16.5548 20.7594H19.2066L7.00037 3.29968H4.34857L16.5548 20.7594Z" fill="#282828" stroke="white" stroke-width="0.3"/> </g> </svg> </i> </a> </li> <li><a href="http://www.facebook.com/HBR" class="link--black" target="_blank" rel="noopener"><i class="icon icon-facebook" title="Facebook"></i></a></li> <li><a href="https://www.linkedin.com/company/harvard-business-review?trk=biz-companies-cym" class="link--black" target="_blank" rel="noopener"><i class="icon icon-linkedin" title="Linkedin"></i></a></li> <li><a href="https://www.instagram.com/harvard_business_review/?hl=en" class="link--black" target="_blank" rel="noopener"><i class="icon icon-instagram" title="Instagram"></i></a></li> </ul> </div> </div> <div class="top-header--mobile-mega-menu"> <personalization-placement data-placement-id="mag_cover_engage"> <a href="/subscriptions?ab=leftnav-subtout&tpcc=houseads.site.leftnav-subtout" target="_blank" rel="noopener" class="subscribe-link button button--tight mbn">Subscribe</a> </personalization-placement> <a href="/the-latest" class="is-block">Latest</a> <a href="/podcasts" class="is-block">Podcasts</a> <a href="/magazine" class="is-block">The Magazine</a> <a href="/store" class="is-block">Store</a> <a href="/webinars" class="is-block">Webinars</a> <a href="/email-newsletters" class="is-block">Newsletters</a> <a href="/topics" class="is-block">All Topics</a> <a href="/big-ideas" class="is-block">The Big Idea</a> <a href="/data-visuals" class="is-block">Data & Visuals</a> <a href="/case-selections" class="is-block" track-target="global-nav-link--case-selection">Case Selections</a> <a href="/learning" class="do-not-show hbr-learning" js-target="hbr-learning-mega" track-target="global-nav-link--hmm">HBR Learning</a> <a href="/my-library" class="is-block" js-target="validate-user-signed">My Library</a> <a href="/my-library/settings" class="is-block" js-target="validate-user-signed">Account Settings</a> <a href="/logout" js-target="logout" class="do-not-show is-block last-link">Log Out</a> <a href="#" js-target="sign-in-register" class=" is-block last-link">Sign In</a> </div> </div> </div> </div> <!-- LOGIN NAV HIDDEN--> <div class="header-menu header-menu--cart-dropdown absolute" js-target="global-header-menu" data-menu="cart"> <div class="header-menu--overlay" js-target="global-header-menu-toggle" data-menu="cart"></div> <svg class="border-caret-white absolute bottom-100pct hide-small" width="24px" height="16px" js-target="global-header-menu-caret"><path stroke-width="2px" d="M 0 16 l 12 -14 l 12 14" /></svg> <div class="right close-button" js-target="global-header-menu-toggle" data-menu="cart"> <a href="#" class="link--black"> <svg class="size-24x24 top-header--menu-icon-close svg-ie"><use xlink:href="/resources/css/images/hbr-icons.svg#x"></use></svg> </a> </div> <h3 class="pbl subheader has-border-bottom flyout-title">Your Cart</h3> <div class="cart-container" js-target="global-header-cart-contents"> <div class="message mbs mtm">Your Shopping Cart is empty.</div> <a href="/store" class="button button--tight expand mbn mtm">Visit Our Store</a> </div> </div> <div class="header-menu header-menu--user-dropdown absolute" js-target="global-header-menu" data-menu="user"> <div class="header-menu--overlay" js-target="global-header-menu-toggle" data-menu="user"></div> <svg class="border-caret-white absolute bottom-100pct hide-small" width="24px" height="16px" js-target="global-header-menu-caret"><path stroke-width="2px" d="M 0 16 l 12 -14 l 12 14" /></svg> <div class="right close-button" js-target="global-header-menu-toggle" data-menu="user"> <a href="#" class="link--black"> <svg class="size-24x24 top-header--menu-icon-close svg-ie"><use xlink:href="/resources/css/images/hbr-icons.svg#x"></use></svg> </a> </div> <div class="mbl is-block has-border-bottom user-data-container"> <div class="font-bold flyout-title" js-target="user-menu-name">Guest User</div> <div class="subscription-access do-not-show" js-target="user-menu-subscription-access"> <span js-target="user-menu-subscription-access-level"></span> Subscriber </div> </div> <div class="header--user-flyout-links"> <a href="/my-library/library" class="is-block" >My Library</a> <a href="/my-library/topics" class="is-block" js-target="global-topic-feeds-anchor">Topic Feeds</a> <a href="/my-library/orders" class="is-block" >Orders</a> <a href="/my-library/settings" class="is-block" >Account Settings</a> <a href="/my-library/preferences" class="is-block" >Email Preferences</a> <a href="/logout" js-target="logout" class="is-block">Log Out</a> </div> </div> <div class="right trigger do-not-show"> <reading-list class="reading-list hide-small"> <div style="display: flex;" class="reading-list-top" js-target="open-reading-list-overlay"> <div style="text-align: center; width: 30px; height: 100%;"><i style="padding: 6px 0px 6px;" class="icon icon-caret-left font-size-default"></i></div> <div style="flex-grow: 1; padding: 4px 0px 4px 6px; color: #888888;" class="font-bold font-size-large baseline-shift-up">Reading List</div> </div> </reading-list> <reading-list-mobile class="reading-list-mobile hide-medium hide-large-up"> <div class="mobile-top" js-target="open-reading-list-overlay"> <div class="right" style="padding-right: 10px;"> <span style="color: #888888;" class="font-bold baseline-shift-up">Reading Lists</span> <span><i class="icon icon-caret-down" style="font-size: 18px;"></i></span> </div> </div> </reading-list-mobile> </div> <!-- LOGIN NAV HIDDEN--> </header> </div> <!-- End .header --> </div> <div id="" class="component" data-order="2" data-type="webscript" data-moveable="false" data-params="region=persistent-banner"> <persistent-banner> <section class="persistent-banner hide-for-print deactivated do-not-show" aria-label="Article count" aria-live="polite" role="dialog" aria-hidden="true"> </section> </persistent-banner> </div> <div id="" class="component" data-order="4" data-type="webscript" data-moveable="false" data-params="region=article;ad-placements=title-300"> <article-content-flex2019 class="article-content-flex2019" page-subtype="standard" isGifted="false"> <div js-target="article-content-flex2019" class=" content-area--left-aligned"> <div class="pre-container"> <div class="headline-wrapper"> <div class="top-components article-width-wrapper"> <div class="site-logo--for-print standard"> <img src="/resources/css/images/HBR_logo_black.svg"> </div> <div class="slug-container"> <a class="slug-content" href="/topic/subject/technology-and-analytics"> Technology and analytics </a> </div> <div class="headline-container"> <h1 class="article-hed"> AI Engineers Need to Think Beyond Engineering </h1> </div> <div class="article-dek-group"> <div class="article-dek">Google AI practitioners argue that partnerships with social scientists and community members can deepen understanding of complex problems and lead to fairer algorithms. <div class="article-byline "> <span class="by-prefix">by </span> <ul class="article-byline-list"> <li class="article-author"><a href="/search?term=donald%20martin%2C%20jr.">Donald Martin, Jr.</a></li> <span class="last-author-joint"> and </span> <li class="article-author"><a href="/search?term=andrew%20moore">Andrew Moore</a></li> </ul> </div> </div> </div> <div class="article-byline detached"> <span class="by-prefix">by </span> <ul class="article-byline-list"> <li class="article-author"><a href="/search?term=donald%20martin%2C%20jr.">Donald Martin, Jr.</a></li> <span class="last-author-joint"> and </span> <li class="article-author"><a href="/search?term=andrew%20moore">Andrew Moore</a></li> </ul> </div> <div class="pub-date"> October 28, 2020 </div> </div> </div> </div> <div class="standard--container"> <div class="article-width-wrapper flexed"> <hero-image > <div class="hero-image-content "> <img src="/resources/images/article_assets/2020/10/Oct20_28_-1136623583.jpg" alt="" title="" aria-label="" sizes="(min-width: 64em) 84vw, 100vw" srcset="/resources/images/article_assets/2020/10/Oct20_28_-1136623583.jpg 1200w, /resources/images/article_assets/2020/10/Oct20_28_-1136623583-300x169.jpg 300w, /resources/images/article_assets/2020/10/Oct20_28_-1136623583-768x432.jpg 768w, /resources/images/article_assets/2020/10/Oct20_28_-1136623583-1024x576.jpg 1024w, /resources/images/article_assets/2020/10/Oct20_28_-1136623583-500x281.jpg 500w, /resources/images/article_assets/2020/10/Oct20_28_-1136623583-383x215.jpg 383w, /resources/images/article_assets/2020/10/Oct20_28_-1136623583-700x394.jpg 700w, /resources/images/article_assets/2020/10/Oct20_28_-1136623583-850x478.jpg 850w" /> <div class="container--caption-credits-hero "> <span class="credits--hero-image">MirageC/Getty Images</span> </div> </div> </hero-image> <page-utils class="article-utils--horizontal-topbar hide-small hide-for-print" data-js-target="page-utils" data-id="tag:blogs.harvardbusiness.org,2007-03-31:999.278372" data-title="AI Engineers Need to Think Beyond Engineering" data-url="/2020/10/ai-engineers-need-to-think-beyond-engineering" data-topic="Technology and analytics" data-authors="Donald Martin, Jr.; Andrew Moore" data-content-type="Digital Article" data-content-image="/resources/images/article_assets/2020/10/Oct20_28_-1136623583-383x215.jpg" data-summary="<p>Google AI practitioners argue that partnerships with social scientists and community members can deepen understanding of complex problems and lead to fairer algorithms.</p> "> <ul> <li class="twitter-icon"> <a href="http://twitter.com/HarvardBiz" target="_blank" rel="noopener noreferrer" js-target="twitter-share"> <i class="updated-twitter-x-icon"> <svg class="" alt="" aria-labelledby="title"> <title></title> <use xlink:href="/resources/css/images/hbr-icons.svg#updated-twitter-x-icon"></use></svg> </i> <div class="utility--icon-label">Post</div> </a> </li> <li class="facebook-icon"> <a href="http://www.facebook.com/HBR" target="_blank" rel="noopener noreferrer" js-target="facebook-share"> <i class="updated-facebook-icon"> <svg class="" alt="" aria-labelledby="title"> <title></title> <use xlink:href="/resources/css/images/hbr-icons.svg#updated-facebook-icon"></use></svg> </i> <div class="utility--icon-label">Post</div> </a> </li> <li class="linkedin-icon"> <a href="https://www.linkedin.com/company/harvard-business-review?trk=biz-companies-cym" target="_blank" rel="noopener noreferrer" js-target="linkedin-share"> <i class="updated-linkedin-icon"> <svg class="" alt="" aria-labelledby="title"> <title></title> <use xlink:href="/resources/css/images/hbr-icons.svg#updated-linkedin-icon"></use></svg> </i> <div class="utility--icon-label">Share</div> </a> </li> <li class="annotate-icon hide do-not-show" js-target="annotate-icon"> <a js-target="handle-mindstone-click"> <i class="mindstone-icon-black" js-target="mindstone-icon-black"> <svg class="" alt="" aria-labelledby="title"> <title></title> <use xlink:href="/resources/css/images/hbr-icons.svg#mindstone-icon-black"></use></svg> </i> <div class="utility--icon-label">Annotate</div> </a> <li> <a href="#" target="_blank" rel="noopener noreferrer" js-target="save-flyout"> <i class="updated-save-icon"> <svg class="" alt="" aria-labelledby="title"> <title></title> <use xlink:href="/resources/css/images/hbr-icons.svg#updated-save-icon"></use></svg> </i> <div class="utility--icon-label">Save</div> </a> </li> <li class="pdf-download hide-for-non-subscriber"> <a rel="noopener noreferrer" href="#" js-target="pdf-download-link" data-reprint-product-id="H05YSK-PDF-ENG"> <i class="updated-download-icon"> <svg class="" alt="" aria-labelledby="title"> <title></title> <use xlink:href="/resources/css/images/hbr-icons.svg#updated-download-icon"></use></svg> </i> <div class="utility--icon-label">Get PDF</div> </a> </li> <li class="buy-copies"> <a target="_blank" rel="noopener noreferrer" href="/product/ai-engineers-need-to-think-beyond-engineering/H05YSK-PDF-ENG" js-target="buy-reprint-link" data-reprint-product-id="H05YSK-PDF-ENG"> <i class="updated-buy-copies-icon"> <svg class="" alt="" aria-labelledby="title"> <title></title> <use xlink:href="/resources/css/images/hbr-icons.svg#updated-buy-copies-icon"></use></svg> </i> <div class="utility--icon-label">Buy Copies</div> </a> </li> <li class="print-page"> <a href="javascript:window.print();" js-target="print-article"> <i class="updated-print-icon"> <svg class="" alt="" aria-labelledby="title"> <title></title> <use xlink:href="/resources/css/images/hbr-icons.svg#updated-print-icon"></use></svg> </i> <div class="utility--icon-label">Print</div> </a> </li> </ul> </page-utils> <div class="article-summary" more-caption="more" close-caption="close"> <span class="summary-header font-bold">Summary. </span> <span class="summary-text"><p>It is very, very easy for a well-intentioned AI practitioner to inadvertently do harm when they set out to do good — AI has the power to amplify unfair biases, making innate biases exponentially more harmful. Because AI often interacts with complex social systems, where correlation and causation might not be immediately clear — or even easily discernible — AI practitioners need to build partnerships with community members, stakeholders, and experts to help them better understand the world they’re interacting with and the implications of making mistakes. Community-based system dynamics (CBSD) is a promising participatory approach to understanding complex social systems that does just that.</p> </span> </div> <div class="article-body standard-content"> <div class="left-rail--container "> <page-utils class="article-utils--vertical hide-for-print" data-js-target="page-utils" data-id="tag:blogs.harvardbusiness.org,2007-03-31:999.278372" data-title="AI Engineers Need to Think Beyond Engineering" data-url="/2020/10/ai-engineers-need-to-think-beyond-engineering" data-topic="Technology and analytics" data-authors="Donald Martin, Jr.; Andrew Moore" data-content-type="Digital Article" data-content-image="/resources/images/article_assets/2020/10/Oct20_28_-1136623583-383x215.jpg" data-summary="<p>Google AI practitioners argue that partnerships with social scientists and community members can deepen understanding of complex problems and lead to fairer algorithms.</p> "> <ul> <li class="twitter-icon"> <a href="http://twitter.com/HarvardBiz" target="_blank" rel="noopener noreferrer" js-target="twitter-share"> <i class="updated-twitter-x-icon"> <svg class="" alt="" aria-labelledby="title"> <title></title> <use xlink:href="/resources/css/images/hbr-icons.svg#updated-twitter-x-icon"></use></svg> </i> <div class="utility--icon-label">Post</div> </a> </li> <li class="facebook-icon"> <a href="http://www.facebook.com/HBR" target="_blank" rel="noopener noreferrer" js-target="facebook-share"> <i class="updated-facebook-icon"> <svg class="" alt="" aria-labelledby="title"> <title></title> <use xlink:href="/resources/css/images/hbr-icons.svg#updated-facebook-icon"></use></svg> </i> <div class="utility--icon-label">Post</div> </a> </li> <li class="linkedin-icon"> <a href="https://www.linkedin.com/company/harvard-business-review?trk=biz-companies-cym" target="_blank" rel="noopener noreferrer" js-target="linkedin-share"> <i class="updated-linkedin-icon"> <svg class="" alt="" aria-labelledby="title"> <title></title> <use xlink:href="/resources/css/images/hbr-icons.svg#updated-linkedin-icon"></use></svg> </i> <div class="utility--icon-label">Share</div> </a> </li> <li class="annotate-icon hide do-not-show" js-target="annotate-icon"> <a js-target="handle-mindstone-click"> <i class="mindstone-icon-black" js-target="mindstone-icon-black"> <svg class="" alt="" aria-labelledby="title"> <title></title> <use xlink:href="/resources/css/images/hbr-icons.svg#mindstone-icon-black"></use></svg> </i> <div class="utility--icon-label">Annotate</div> </a> <li> <a href="#" target="_blank" rel="noopener noreferrer" js-target="save-flyout"> <i class="updated-save-icon"> <svg class="" alt="" aria-labelledby="title"> <title></title> <use xlink:href="/resources/css/images/hbr-icons.svg#updated-save-icon"></use></svg> </i> <div class="utility--icon-label">Save</div> </a> </li> <li class="pdf-download hide-for-non-subscriber"> <a rel="noopener noreferrer" href="#" js-target="pdf-download-link" data-reprint-product-id="H05YSK-PDF-ENG"> <i class="updated-download-icon"> <svg class="" alt="" aria-labelledby="title"> <title></title> <use xlink:href="/resources/css/images/hbr-icons.svg#updated-download-icon"></use></svg> </i> <div class="utility--icon-label">Get PDF</div> </a> </li> <li class="buy-copies"> <a target="_blank" rel="noopener noreferrer" href="/product/ai-engineers-need-to-think-beyond-engineering/H05YSK-PDF-ENG" js-target="buy-reprint-link" data-reprint-product-id="H05YSK-PDF-ENG"> <i class="updated-buy-copies-icon"> <svg class="" alt="" aria-labelledby="title"> <title></title> <use xlink:href="/resources/css/images/hbr-icons.svg#updated-buy-copies-icon"></use></svg> </i> <div class="utility--icon-label">Buy Copies</div> </a> </li> <li class="print-page"> <a href="javascript:window.print();" js-target="print-article"> <i class="updated-print-icon"> <svg class="" alt="" aria-labelledby="title"> <title></title> <use xlink:href="/resources/css/images/hbr-icons.svg#updated-print-icon"></use></svg> </i> <div class="utility--icon-label">Print</div> </a> </li> </ul> </page-utils> </div> <content js-target="article-content" data-key="wGeaMTqMXc1VOGGTpUzTuBMrWvX9Wxel9Zmp24H0DYvL1alN/xTjCU6Rfcp3pybl" data-index="BM5l29iJY6Ee+8B2yfNlrdgbvN4VLOJhHh/T44P8lW7npvQRVx4GLJfb5iQyOHYP3n8M3kO7om6TE/EISWomaQ==" data-waiver="false" data-page-year="2020" data-page-month="10" data-page-seo-title="ai-engineers-need-to-think-beyond-engineering" data-page-adUnit-locations="" data-page-slug="article" data-piano-verified="false" > <p>Artificial Intelligence (AI) has become one of the biggest drivers of technological change, impacting industries and creating entirely new opportunities. From an engineering standpoint, AI is just a more advanced form of data engineering. Most good AI projects function more like muddy pickup trucks than spotless race cars — they are a workhorse technology that humbly makes a production line 5% safer or movie recommendations a little more on point. However, more so than many other technologies, it is very, very easy for a well-intentioned AI practitioner to inadvertently do harm when they set out to do good. AI has the power to amplify unfair biases, making innate biases exponentially more harmful.</p> </content> <!-- citation --> </div> </div> <div class="right-rail--container"> <div class="right-rail--inner"> <div class="hide-for-article-small hide-for-print right-rail-ads"> <div id="DFP_TITLE_pos2"> <script type="text/javascript"> if (isAdobeSync()) googletag.cmd.push(function() { googletag.display("DFP_TITLE_pos2"); }); </script> </div> </div> <personalization-placement class="personalization-placement" data-placement-id="right1"></personalization-placement> <div class="hmm-right-rail-placement do-not-show" js-target="right-rail-tout"> <div class="hmm-right-rail-placement-wrapper" js-target="hmm-right-rail-placement-wrapper"> <div class="relative"><span class="hmm-label">New!</span></div> <div class="hmm-title-wrapper flex-container"> <img class="hmm-learning-icon" src="/resources/css/images/hmm/HBR-learning-icon.png"/> <div>HBR Learning</div> </div> <div class="hmm-tout-image-margin"> <img class="hmm-tout-image" src="/resources/images/hmm/Course_Illustrations/Digital_Intelligence_Course/topic_landing_page_1400.png"/> </div> <div class="hmm-catchphrase">Digital Intelligence Course</div> <div class="hmm-subscribers-hook hmm-marketing-description do-not-show">Accelerate your career with Harvard ManageMentor®. HBR Learning’s online leadership training helps you hone your skills with courses like Digital Intelligence . Earn badges to share on LinkedIn and your resume. Access more than 40 courses trusted by Fortune 500 companies.</div> <div class="hmm-subscribers-hook">Excel in a world that's being continually transformed by technology.</div> <a href="/api/hmm/link?url=%2Fcontent%2Fdigital_intelligence%2Flandingpage.html%3Futm_source%3Dhbrwebsite%26utm_medium%3Darticle-tout" target="_blank" data-course-slug="digital_intelligence"><div class="hmm-start-button"><span class="hmm-button-text">Start Course</span></div></a> <a class="hmm-more-link" href="/learning?ab=articlepage_hmm-landing_hmm-tout-rightrail">Learn More & See All Courses</a> </div> </div> <div class="right-rail-piano-container advertising"></div> <div class="ecommerce-module hide-for-article-small hide-for-print"> <personalization-placement class="personalization-placement" data-placement-id="right_rail3"></personalization-placement> </div> <div class="related-topics--common related-topics--textnotmobile hide-for-print"> <span class="related-topics--links">Read more on <a href="/topic/subject/technology-and-analytics?ab=articlepage-topic"><strong>Technology and analytics</strong></a> </span> </div> </div> </div> </div> <div class="post-container"> <div class="article-width-wrapper"> <ul class="author-bio author-bio--mobile-only"> <li> <div> <author-avatar data-url data-author-name="Donald Martin, Jr." data-js-target="author-avatar"> DM </author-avatar> </div> <div> <span> <a href="/search?term=donald%20martin%2C%20jr.&search_type=search-all">Donald Martin, Jr.</a> is Sr. Staff Technical Program Manager and Social Impact Technology Strategist at Google. </span> </div> </li> <li> <div> <author-avatar data-url data-author-name="Andrew Moore" data-js-target="author-avatar"> AM </author-avatar> </div> <div> <span> <a href="/search?term=andrew%20moore&search_type=search-all">Andrew Moore</a> is Head of Google Cloud AI & Industry Solutions. </span> </div> </li> </ul> <page-utils class="article-utils--horizontal hide-for-print" data-js-target="page-utils" data-id="tag:blogs.harvardbusiness.org,2007-03-31:999.278372" data-title="AI Engineers Need to Think Beyond Engineering" data-url="/2020/10/ai-engineers-need-to-think-beyond-engineering" data-topic="Technology and analytics" data-authors="Donald Martin, Jr.; Andrew Moore" data-content-type="Digital Article" data-content-image="/resources/images/article_assets/2020/10/Oct20_28_-1136623583-383x215.jpg" data-summary="<p>Google AI practitioners argue that partnerships with social scientists and community members can deepen understanding of complex problems and lead to fairer algorithms.</p> "> <ul> <li class="twitter-icon"> <a href="http://twitter.com/HarvardBiz" target="_blank" rel="noopener noreferrer" js-target="twitter-share"> <i class="updated-twitter-x-icon"> <svg class="" alt="" aria-labelledby="title"> <title></title> <use xlink:href="/resources/css/images/hbr-icons.svg#updated-twitter-x-icon"></use></svg> </i> <div class="utility--icon-label">Post</div> </a> </li> <li class="facebook-icon"> <a href="http://www.facebook.com/HBR" target="_blank" rel="noopener noreferrer" js-target="facebook-share"> <i class="updated-facebook-icon"> <svg class="" alt="" aria-labelledby="title"> <title></title> <use xlink:href="/resources/css/images/hbr-icons.svg#updated-facebook-icon"></use></svg> </i> <div class="utility--icon-label">Post</div> </a> </li> <li class="linkedin-icon"> <a href="https://www.linkedin.com/company/harvard-business-review?trk=biz-companies-cym" target="_blank" rel="noopener noreferrer" js-target="linkedin-share"> <i class="updated-linkedin-icon"> <svg class="" alt="" aria-labelledby="title"> <title></title> <use xlink:href="/resources/css/images/hbr-icons.svg#updated-linkedin-icon"></use></svg> </i> <div class="utility--icon-label">Share</div> </a> </li> <li class="annotate-icon hide do-not-show" js-target="annotate-icon"> <a js-target="handle-mindstone-click"> <i class="mindstone-icon-black" js-target="mindstone-icon-black"> <svg class="" alt="" aria-labelledby="title"> <title></title> <use xlink:href="/resources/css/images/hbr-icons.svg#mindstone-icon-black"></use></svg> </i> <div class="utility--icon-label">Annotate</div> </a> <li> <a href="#" target="_blank" rel="noopener noreferrer" js-target="save-flyout"> <i class="updated-save-icon"> <svg class="" alt="" aria-labelledby="title"> <title></title> <use xlink:href="/resources/css/images/hbr-icons.svg#updated-save-icon"></use></svg> </i> <div class="utility--icon-label">Save</div> </a> </li> <li class="pdf-download hide-for-non-subscriber"> <a rel="noopener noreferrer" href="#" js-target="pdf-download-link" data-reprint-product-id="H05YSK-PDF-ENG"> <i class="updated-download-icon"> <svg class="" alt="" aria-labelledby="title"> <title></title> <use xlink:href="/resources/css/images/hbr-icons.svg#updated-download-icon"></use></svg> </i> <div class="utility--icon-label">Get PDF</div> </a> </li> <li class="buy-copies"> <a target="_blank" rel="noopener noreferrer" href="/product/ai-engineers-need-to-think-beyond-engineering/H05YSK-PDF-ENG" js-target="buy-reprint-link" data-reprint-product-id="H05YSK-PDF-ENG"> <i class="updated-buy-copies-icon"> <svg class="" alt="" aria-labelledby="title"> <title></title> <use xlink:href="/resources/css/images/hbr-icons.svg#updated-buy-copies-icon"></use></svg> </i> <div class="utility--icon-label">Buy Copies</div> </a> </li> <li class="print-page"> <a href="javascript:window.print();" js-target="print-article"> <i class="updated-print-icon"> <svg class="" alt="" aria-labelledby="title"> <title></title> <use xlink:href="/resources/css/images/hbr-icons.svg#updated-print-icon"></use></svg> </i> <div class="utility--icon-label">Print</div> </a> </li> </ul> </page-utils> </div> <div class="article-width-wrapper"> <div class="hmm-bottom-placement do-not-show" js-target="hmm-bottom-tout"> <span class="hmm-label">New!</span> <div class="hmm-content-wrapper"> <div class="hmm-title-wrapper flex-container"> <img class="hmm-learning-icon" src="/resources/css/images/hmm/HBR-learning-icon.png"/> <span class="title">HBR Learning</span> </div> <div class="hmm-content-title">Digital Intelligence Course</div> <div class="hmm-dek hmm-marketing-description">Accelerate your career with Harvard ManageMentor®. HBR Learning’s online leadership training helps you hone your skills with courses like Digital Intelligence . Earn badges to share on LinkedIn and your resume. Access more than 40 courses trusted by Fortune 500 companies.</div> <div class="hmm-dek do-not-show">Excel in a world that's being continually transformed by technology.</div> <div class="hmm-explore-cta"> <a href="/api/hmm/link?url=%2Fcontent%2Fdigital_intelligence%2Flandingpage.html%3Futm_source%3Dhbrwebsite%26utm_medium%3Darticle-tout" target="_blank" data-course-slug="digital_intelligence">Start Course</a> </div> <div class="hmm-more"> <a class="hmm-more-link" href="/learning?ab=articlepage_hmm-landing_hmm-tout-bottom" target="_self">Learn More & See All Courses</a> </div> </div> <div class="hmm-tout-image-margin"> <img class="hmm-image-wrapper" src="/resources/images/hmm/Course_Illustrations/Digital_Intelligence_Course/topic_landing_page_1400.png"> </div> </div> </div> <div class="article-width-wrapper"> <div class="related-topics--common related-topics--textmobile hide-for-print"> <span class="related-topics--links">Read more on <a href="/topic/subject/technology-and-analytics?ab=articlepage-topic"><strong>Technology and analytics</strong></a> </span> </div> <div class="next-in-placement hide-for-print"> <personalization-placement class="personalization-placement" data-placement-id="bottom1"></personalization-placement> </div> </div> </div> <div class="content-rec-wrapper"> <personalization-placement class="personalization-placement" data-placement-id="bottom-multiple1"></personalization-placement> <personalization-placement class="personalization-placement" data-placement-id="bottom-multiple2"></personalization-placement> </div> </div> </article-content-flex2019> <div class="annotate-container hide" js-target="annotate-container" data-token="" data-embed-url="https://embed.mindstone.com" data-client-id="client_ANKCRH0ufteHCa7D8L"></div> </div> <div id="" class="component" data-order="5" data-type="webscript" data-moveable="false" data-params="region=piano-paywall"> <script type="text/javascript"> var tp = window["tp"] || []; tp.push(["setCustomVariable", "contentTierPermission", "PERM_ARTICLE"]) tp.push(["setCustomVariable", "ascend", "false"]) tp.push(["setCustomVariable", "ascendQuota", "0"]) tp.push(["setCustomVariable", "contentTierOnlyContent", "false"]) tp.push(["setCustomVariable", "contentPaywallWaiver", "false"]) tp.push(["setCustomVariable", "isReadingList", "false"]) tp.push(["setCustomVariable", "customerQuota", "0"]) tp.push(["setCustomVariable", "customerQuotaRemaining", "1"]) tp.push(["setCustomVariable", "PERM_VISUAL_LIBRARY", "false"]) tp.push(["setCustomVariable", "PERM_INSIDER_NEWSLETTER", "false"]) tp.push(["setCustomVariable", "PERM_TOP_50_ARTICLES", "false"]) tp.push(["setCustomVariable", "PERM_EBOOK", "false"]) tp.push(["setCustomVariable", "PERM_CASES", "false"]) tp.push(["setCustomVariable", "PERM_READING_LIST", "false"]) tp.push(["setCustomVariable", "PERM_VIDEO", "false"]) tp.push(["setCustomVariable", "PERM_ARTICLE", "false"]) </script> <div id="paywall"></div> <div id="paywall-creative-container" class="relative"></div> </div> <div id="" class="component" data-order="97" data-type="webscript" data-moveable="false" data-params="region=openx;location=partner-center"> <section class="partner-center row clearfix" js-target="openx-container"> <div class="column cushion partner-center__container"> <div class="row"> <div class="small-12 column"> <h4 class="section-label">Partner Center</h4> </div> </div> <div class="partner-center__ads-container"> <div class="ad-container ad-230 partner-center__ad"> <div class="ad" id="DFP_PC_pos11"> <script type="text/javascript"> if (isAdobeSync()) googletag.cmd.push(function() { googletag.display("DFP_PC_pos11"); }); </script> </div> </div> <div class="ad-container ad-230 partner-center__ad"> <div class="ad" id="DFP_PC_pos12"> <script type="text/javascript"> if (isAdobeSync()) googletag.cmd.push(function() { googletag.display("DFP_PC_pos12"); }); </script> </div> </div> <div class="ad-container ad-230 partner-center__ad"> <div class="ad" id="DFP_PC_pos13"> <script type="text/javascript"> if (isAdobeSync()) googletag.cmd.push(function() { googletag.display("DFP_PC_pos13"); }); </script> </div> </div> <div class="ad-container ad-230 partner-center__ad"> <div class="ad" id="DFP_PC_pos14"> <script type="text/javascript"> if (isAdobeSync()) googletag.cmd.push(function() { googletag.display("DFP_PC_pos14"); }); </script> </div> </div> </div> </div> </section> </div> <div id="" class="component" data-order="99" data-type="static-content" data-moveable="false" data-params="document=footer"> <!-- Begin Footer --> <footer class="footer hide-for-print flex-row justify-center"> <div class="has-border-top footer-container"> <div class="backdrop-white hide-for-print footer-main-container"> <div class="footer-container--top footer-container-margins"> <span class="hide-for-small" style="flex: 1"></span> <div class="panel-container"> <div class="panel-inner-container"> <span class="panel nowrap flex-col text-center justify-center"> <personalization-placement class="personalization-placement is-inline-block no" data-placement-id="subscribe_now_footer_engage"> <a href="/subscriptions?ab=footer-subtout&tpcc=houseads.site.footer-subtout" class="link--black justify-center align-items-center flex-row nowrap font-size-large font-heavy"><b class="top-header--subscribe">Subscribe</b></a> </personalization-placement> </span> <span class="placeholder"> </span> </div> </div> </div> <footer-menu> <div class="footer-content--container flex-row-wrap justify-between flex-direction--row"> <div js-target="footer-item" class="footer-content--list flex-col"> <div class="flex-row justify-between"> <h6>Explore HBR</h6> <span class="footer-item--arrow icon icon-caret-right font-size-medium mbm mtm"></span> </div> <ul class="no-bullet tidy-list--small hide-for-small--list mbn"> <li><a href="/the-latest">The Latest</a></li> <li><a href="/topics">All Topics</a></li> <li><a href="/magazine">Magazine Archive</a></li> <li><a href="/big-ideas">The Big Idea</a></li> <li><a href="/case-selections">Case Selections</a></li> <!-- The video footer item has been commented out due to several malfunctions and should be uncommented once these issues have been addressed. --> <!-- <li><a href="/video">Video</a></li> --> <li><a href="/podcasts">Podcasts</a></li> <li><a href="/webinars">Webinars</a></li> <li><a href="/data-visuals">Data & Visuals</a></li> <li><a href="/my-library">My Library</a></li> <li><a href="/email-newsletters">Newsletters</a></li> <li><a href="/hbrpress">HBR Press</a></li> </ul> </div> <div js-target="footer-item" class="footer-content--list flex-col"> <div class="flex-row justify-between"> <h6>HBR Store</h6> <span class="footer-item--arrow icon icon-caret-right font-size-medium mbm mtm"></span> </div> <ul class="no-bullet tidy-list--small hide-for-small--list mbn"> <li><a href="/store/articles">Article Reprints</a></li> <li><a href="/store/books">Books</a></li> <li><a href="/store/case-studies">Cases</a></li> <li><a href="/store/collections">Collections</a></li> <li><a href="/store/magazine-issues">Magazine Issues</a></li> <li><a href="/store/landing/guides">HBR Guide Series</a></li> <li><a href="/store/landing/20-minute-managers">HBR 20-Minute Managers</a></li> <li><a href="/store/landing/emotional-intelligence-series">HBR Emotional Intelligence Series</a></li> <li><a href="/store/landing/mustreads">HBR Must Reads</a></li> <li><a href="/store/tools">Tools</a></li> </ul> </div> <div js-target="footer-item" class="footer-content--list flex-col"> <div class="flex-row justify-between"> <h6>About HBR</h6> <span class="footer-item--arrow icon icon-caret-right font-size-medium mbm mtm"></span> </div> <ul class="no-bullet tidy-list--small hide-for-small--list mbn"> <li><a href="/contact-us">Contact Us</a></li> <li><a href="/hbr-advertising-sales">Advertise with Us</a></li> <li><a href="/booksellers-retailers">Information for Booksellers/Retailers</a></li> <li><a href="/about-hbr">Masthead</a></li> <li><a href="/global-editions">Global Editions</a></li> <li><a href="/media-inquiries">Media Inquiries</a></li> <li><a href="/guidelines-for-authors-web">Guidelines for Authors</a></li> <li><a href="/hbr-analytic-services">HBR Analytic Services</a></li> <li><a href="/permissions">Copyright Permissions</a></li> </ul> </div> <div js-target="footer-item" class="footer-content--list flex-col"> <div class="flex-row justify-between"> <h6>Manage My Account</h6> <span class="footer-item--arrow icon icon-caret-right font-size-medium mbm mtm"></span> </div> <ul class="no-bullet tidy-list--small hide-for-small--list mbn"> <li><a href="/my-library" js-target="validate-user-signed">My Library</a></li> <li><a href="/my-library/topics" js-target="validate-user-signed">Topic Feeds</a></li> <li><a href="/my-library/orders" js-target="validate-user-signed">Orders</a></li> <li><a href="/my-library/settings" js-target="validate-user-signed">Account Settings</a></li> <li><a href="/my-library/preferences" js-target="validate-user-signed">Email Preferences</a></li> <li><a href="/subscriber-help">Account FAQ</a></li> <li><a href="https://hbphelp.zendesk.com/hc/en-us">Help Center</a></li> <li><a href="/subscriber-help#contact-customer-service">Contact Customer Service</a></li> </ul> </div> <div class="footer-content--list footer-content--last-list flex-col"> <div class="flex-row justify-between"> <h6>Follow HBR</h6> </div> <ul class="icon-ul tidy-list--small mbn"> <li><i class="icon-li icon icon-facebook"></i> <a href="http://www.facebook.com/HBR">Facebook</a></li> <li> <i class="icon-li icon twitter-x-icon"> <svg width="14" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <g> <rect width="12" height="12" fill="none"/> <path fill-rule="evenodd" clip-rule="evenodd" d="M7.82741 2L12.8799 9.3532L19.2057 2H20.9321L13.6468 10.4686L21.57 22H15.7425L10.4068 14.2348L3.72649 22H2L9.6403 13.1193L2 2H7.82741ZM16.5548 20.7594H19.2066L7.00037 3.29968H4.34857L16.5548 20.7594Z" fill="#282828" stroke="white" stroke-width="0.3"/> </g> </svg> </i> <a href="http://twitter.com/HarvardBiz">X Corp.</a> </li> <li><i class="icon-li icon icon-linkedin"></i> <a href="https://www.linkedin.com/company/harvard-business-review?trk=biz-companies-cym">LinkedIn</a></li> <li><i class="icon-li icon icon-instagram"></i> <a href="https://www.instagram.com/harvard_business_review/?hl=en">Instagram</a></li> <li class="clear-bottom-margin"><i class="icon-li icon line-height-very-very-tight icon-newsreader"></i> <a href="http://feeds.hbr.org/harvardbusiness/">Your Newsreader</a></li> </ul> </div> <div class="footer-links-container-mobile hide-medium-up"> <div class="footer-first-container"> <a href="/corporate/copyright" class="copyright">Copyright Policy</a> <a href="/privacy-policy" class="copyright">Privacy Information</a> <a href="/terms-of-use" class="copyright">Returns Policy</a> </div> <div class="footer-second-container-mobile"> <span>Harvard Business Publishing:</span> <a href="http://hbsp.harvard.edu/" class="copyright">Higher Education</a> <a href="http://www.harvardbusiness.org" class="copyright">Corporate Learning</a> <a href="http://hbr.org/" class="copyright">Harvard Business Review</a> <a href="http://www.hbs.edu" class="copyright">Harvard Business School</a> </div> <div class="footer-third-container"> Copyright © <span id="copyright-year"></span> <script>document.getElementById("copyright-year").innerHTML=new Date().getFullYear();</script> Harvard Business School Publishing. All rights reserved. Harvard Business Publishing is an affiliate of Harvard Business School. </div> <!-- <ul class="piped-inline-list is-inline copyright hide-for-small flex-row flex-direction--row"> <li><a href="http://hbsp.harvard.edu/" class="copyright">Higher Education</a></li> <li><a href="http://www.harvardbusiness.org" class="copyright">Corporate Learning</a></li> <li><a href="http://hbr.org/" class="copyright">Harvard Business Review</a></li> <li><a href="http://www.hbs.edu" class="copyright">Harvard Business School</a></li> </ul> <div class="copyright flex-row flex-direction--row"> Copyright © <span id="copyright-year"></span> <script>document.getElementById("copyright-year").innerHTML=new Date().getFullYear();</script> Harvard Business School Publishing. All rights reserved. Harvard Business Publishing is an affiliate of Harvard Business School. </div> --> </div> </div> </footer-menu> <div class="flex-row"> <div class="footer-logo hide-for-small"> <figure class="footer-logo-container"> <svg xmlns="http://www.w3.org/2000/svg" class="svg-desktop" width="78" height="89" viewBox="0 0 78 89" fill="none"> <g clip-path="url(#clip0_2481_3576)"> <path d="M12.8076 32.8055V30.6935C12.8076 29.7548 12.2863 28.9824 11.4176 28.6304L11.2985 28.5815L11.4176 28.5375C12.2268 28.2491 12.7083 27.4864 12.7083 26.494V24.6802C12.7083 22.71 11.5914 21.7126 9.39228 21.7126H5.42596V35.7731H9.49156C11.6907 35.7731 12.8076 34.7757 12.8076 32.8055ZM8.36967 24.1571H9.08947C9.51638 24.1571 9.75962 24.4553 9.75962 24.9735V26.5135C9.75962 27.0317 9.51638 27.33 9.08947 27.33H8.36967V24.1571ZM8.36967 33.3237V29.7353H9.06961C9.58091 29.7353 9.83905 30.0286 9.83905 30.6104V32.5024C9.83905 33.0304 9.59581 33.3188 9.14904 33.3188H8.36967V33.3237Z" fill="#282828"/> <path d="M20.8937 21.7126H17.9103V32.6295C17.9103 33.1722 17.667 33.4851 17.2401 33.4851C16.8132 33.4851 16.5501 33.1624 16.5501 32.6295V21.7126H13.5866V32.7077C13.5866 34.6682 15.0212 35.9344 17.2401 35.9344C19.4591 35.9344 20.8937 34.6682 20.8937 32.7077V21.7126Z" fill="#282828"/> <path d="M25.1131 35.9294C27.332 35.9294 28.7667 34.6632 28.7667 32.7028V30.8694C28.7667 29.6814 28.3993 28.997 27.4065 28.3468L25.0635 26.709C24.706 26.445 24.5819 26.1859 24.5819 25.7019V24.8561C24.5819 24.1472 24.9344 24.0005 25.2322 24.0005C25.6393 24.0005 25.8627 24.3036 25.8627 24.8561V26.533H28.7468V24.7779C28.7468 22.7588 27.4313 21.5512 25.2322 21.5512C23.0331 21.5512 21.5985 22.8174 21.5985 24.7779V26.2983C21.5985 27.4863 21.9659 28.1708 22.9587 28.821L25.3017 30.4783C25.6194 30.713 25.7832 30.933 25.7832 31.4854V32.6294C25.7832 33.1819 25.5599 33.485 25.1528 33.485C24.855 33.485 24.5025 33.3383 24.5025 32.6294V30.6983H21.5985V32.7076C21.5985 34.7268 22.914 35.9343 25.1131 35.9343V35.9294Z" fill="#282828"/> <path d="M32.5593 21.7126H29.556V35.7731H32.5593V21.7126Z" fill="#282828"/> <path d="M38.576 35.7731H41.202V21.7126H38.5165V25.3891L38.5611 28.4544H38.2931L36.7145 21.7126H33.7261V35.7731H36.4117V31.0895L36.372 28.1415H36.6351L38.576 35.7731Z" fill="#282828"/> <path d="M48.0426 24.3135V21.7126H42.3736V35.7731H48.0426V33.1673H45.2974V29.8184H47.7V27.2126H45.2974V24.3135H48.0426Z" fill="#282828"/> <path d="M55.7168 30.8747C55.7168 29.6867 55.3495 29.0022 54.3567 28.352L52.0136 26.7142C51.6562 26.4502 51.5321 26.1911 51.5321 25.7071V24.8613C51.5321 24.1524 51.8845 24.0058 52.1824 24.0058C52.5894 24.0058 52.8128 24.3089 52.8128 24.8613V26.5382H55.697V24.7831C55.697 22.764 54.3815 21.5564 52.1824 21.5564C49.9833 21.5564 48.5487 22.8227 48.5487 24.7831V26.3035C48.5487 27.4915 48.916 28.176 49.9088 28.8262L52.2519 30.4835C52.5696 30.7182 52.7334 30.9382 52.7334 31.4907V32.6347C52.7334 33.1871 52.51 33.4902 52.103 33.4902C51.8051 33.4902 51.4527 33.3435 51.4527 32.6347V30.7035H48.5487V32.7129C48.5487 34.732 49.8641 35.9395 52.0632 35.9395C54.2623 35.9395 55.7168 34.6733 55.7168 32.7129V30.8747Z" fill="#282828"/> <path d="M63.5655 30.8747C63.5655 29.6867 63.1982 29.0022 62.2053 28.352L59.8623 26.7142C59.5049 26.4502 59.3808 26.1911 59.3808 25.7071V24.8613C59.3808 24.1524 59.7332 24.0058 60.0311 24.0058C60.4381 24.0058 60.6615 24.3089 60.6615 24.8613V26.5382H63.5456V24.7831C63.5456 22.764 62.2302 21.5564 60.0311 21.5564C57.832 21.5564 56.3973 22.8227 56.3973 24.7831V26.3035C56.3973 27.4915 56.7647 28.176 57.7575 28.8262L60.1006 30.4835C60.4183 30.7182 60.5821 30.9382 60.5821 31.4907V32.6347C60.5821 33.1871 60.3587 33.4902 59.9516 33.4902C59.6538 33.4902 59.3013 33.3435 59.3013 32.6347V30.7035H56.3973V32.7129C56.3973 34.732 57.7128 35.9395 59.9119 35.9395C62.111 35.9395 63.5655 34.6733 63.5655 32.7129V30.8747Z" fill="#282828"/> <path d="M13.0012 19.9086V5.84322H10.0128V11.3481H8.43421V5.84322H5.42596V19.9086H8.43421V13.949H10.0128V19.9086H13.0012Z" fill="#282828"/> <path d="M18.4965 17.0684L18.7943 19.9089H21.6983L19.7673 5.84845H15.4088L13.4976 19.9089H16.3023L16.5803 17.0684H18.4965ZM17.0172 12.3213L17.3051 9.61778H17.7518L18.0646 12.3213L18.3575 14.7413H16.7243L17.0172 12.3213Z" fill="#282828"/> <path d="M29.7995 19.9086C29.6258 19.3953 29.6009 18.6913 29.6009 18.0655V15.01C29.6009 13.9882 29.1591 13.2549 28.35 12.9469L28.2259 12.898L28.35 12.854C29.1591 12.5655 29.6406 11.8029 29.6406 10.8104V8.82065C29.6406 6.85043 28.5237 5.85309 26.3246 5.85309H22.2392V19.9135H25.2027V14.1935H25.8828C26.2253 14.1935 26.6324 14.3451 26.6324 15.0686V18.1633C26.6324 18.7255 26.6572 19.4246 26.8359 19.9086H29.7995ZM25.9871 11.6855H25.2077V8.3562H25.9871C26.409 8.3562 26.6572 8.6642 26.6572 9.17265V10.8691C26.6572 11.3873 26.414 11.6855 25.9871 11.6855Z" fill="#282828"/> <path d="M35.0714 5.8438L34.4558 12.2678L34.1927 15.4114H33.88L33.6169 12.2678L32.9765 5.8438H29.9435L32.0681 19.9091H35.8408L37.9903 5.8438H35.0714Z" fill="#282828"/> <path d="M50.639 19.9092H53.5976C53.4239 19.3959 53.3991 18.6919 53.3991 18.0661V15.0106C53.3991 13.9888 52.9572 13.2555 52.1481 12.9475L52.029 12.8986L52.1531 12.8546C52.9622 12.5661 53.4437 11.8035 53.4437 10.811V8.82123C53.4437 6.85101 52.3268 5.85367 50.1277 5.85367H46.0423V19.9141H49.0058V14.1941H49.6859C50.0284 14.1941 50.4355 14.3457 50.4355 15.0692V18.1639C50.4355 18.7261 50.4603 19.4252 50.639 19.9092ZM49.7852 11.6861H49.0058V8.35679H49.7852C50.2071 8.35679 50.4553 8.66479 50.4553 9.17323V10.8697C50.4553 11.3879 50.2121 11.6861 49.7852 11.6861Z" fill="#282828"/> <path d="M61.8874 9.07047C61.8874 7.08069 60.5074 5.8438 58.2934 5.8438H54.486V19.9042H58.2934C60.5124 19.9042 61.8874 18.6674 61.8874 16.6776V9.06558V9.07047ZM58.904 16.5847C58.904 17.098 58.6558 17.4011 58.2339 17.4011H57.4545V8.3518H58.2339C58.6558 8.3518 58.904 8.6598 58.904 9.16825V16.5847Z" fill="#282828"/> <path d="M42.309 17.0684L42.6118 19.9089H45.5158L43.5848 5.84844H39.2263L37.3151 19.9089H40.1199L40.3979 17.0684H42.309ZM40.8297 12.3213L41.1177 9.61778H41.5644L41.8772 12.3213L42.17 14.7413H40.5368L40.8297 12.3213Z" fill="#282828"/> <path d="M10.0275 51.6428H12.9861C12.8123 51.1295 12.7875 50.4255 12.7875 49.7997V46.7441C12.7875 45.7224 12.3457 44.989 11.5366 44.681L11.4174 44.6321L11.5415 44.5881C12.3507 44.2997 12.8322 43.537 12.8322 42.5446V40.5548C12.8322 38.5846 11.7153 37.5873 9.51618 37.5873H5.43073V51.6477H8.39429V45.9277H9.07438C9.4169 45.9277 9.82395 46.0793 9.82395 46.8028V49.8975C9.82395 50.4597 9.84877 51.1588 10.0275 51.6428ZM9.17366 43.4197H8.39429V40.0904H9.17366C9.59561 40.0904 9.84381 40.3984 9.84381 40.9068V42.6033C9.84381 43.1215 9.60057 43.4197 9.17366 43.4197Z" fill="#282828"/> <path d="M19.5037 40.1832V37.5774H13.8347V51.6427H19.5037V49.0369H16.7585V45.6832H19.1612V43.0823H16.7585V40.1832H19.5037Z" fill="#282828"/> <path d="M31.3977 37.5774H28.3944V51.6378H31.3977V37.5774Z" fill="#282828"/> <path d="M38.1938 40.1831V37.5773H32.5248V51.6427H38.1938V49.0369H35.4486V45.6831H37.8513V43.0822H35.4486V40.1831H38.1938Z" fill="#282828"/> <path d="M47.3178 37.5773L46.732 45.7027H46.2853L46.2803 45.6587L45.7243 37.5773H43.3019L42.7806 45.7027H42.3289L42.1005 42.7791L41.7233 37.5773H38.6207L40.239 51.6427H43.6493L44.2103 44.0893H44.6124L45.1535 51.6427H48.5638L50.1821 37.5773H47.3178Z" fill="#282828"/> <path d="M25.0389 37.5773L24.4234 44.0013L24.1553 47.1449H23.8475L23.5795 44.0013L22.9441 37.5773H19.906L22.0356 51.6427H25.8084L27.9529 37.5773H25.0389Z" fill="#282828"/> <path d="M38.9483 88.5L38.4073 88.236C23.4603 81.0005 13.7555 74.5324 7.86314 67.8787C2.42745 61.7431 0 55.2898 0 46.9542V0.5H77.9016V46.9542C77.9016 55.2898 75.4792 61.7431 70.0385 67.8787C64.1461 74.5324 54.4363 81.0005 39.4944 88.236L38.9533 88.5H38.9483ZM2.46219 2.92489V46.9542C2.46219 54.6591 4.701 60.6236 9.71475 66.2849C15.3192 72.6062 24.617 78.8151 38.9483 85.7964C53.2797 78.8151 62.5824 72.6062 68.1819 66.2849C73.2006 60.6236 75.4345 54.664 75.4345 46.9542V2.92489H2.45723H2.46219Z" fill="#282828"/> </g> <defs> <clipPath id="clip0_2481_3576"> <rect width="77.9016" height="88" fill="white" transform="translate(0 0.5)"/> </clipPath> </defs> </svg> </figure> </div> <div class="footer-links-container hide-for-small"> <div class="footer-first-container"> <a href="/corporate/copyright" class="copyright">Copyright Policy</a> <a href="/privacy-policy" class="copyright">Privacy Information</a> <a href="/terms-of-use" class="copyright">Returns Policy</a> </div> <div class="footer-second-container"> <span class="footer-hbr-name-text">Harvard Business Publishing:</span> <a href="http://hbsp.harvard.edu/" class="copyright">Higher Education</a> <a href="http://www.harvardbusiness.org" class="copyright">Corporate Learning</a> <a href="http://hbr.org/" class="copyright">Harvard Business Review</a> <a href="http://www.hbs.edu" class="copyright">Harvard Business School</a> </div> <div class="footer-third-container"> Copyright © <span id="copyright-year"></span> <script>document.getElementById("copyright-year").innerHTML=new Date().getFullYear();</script> Harvard Business School Publishing. All rights reserved. Harvard Business Publishing is an affiliate of Harvard Business School. </div> <!-- <ul class="piped-inline-list is-inline copyright hide-for-small flex-row flex-direction--row"> <li><a href="http://hbsp.harvard.edu/" class="copyright">Higher Education</a></li> <li><a href="http://www.harvardbusiness.org" class="copyright">Corporate Learning</a></li> <li><a href="http://hbr.org/" class="copyright">Harvard Business Review</a></li> <li><a href="http://www.hbs.edu" class="copyright">Harvard Business School</a></li> </ul> <div class="copyright flex-row flex-direction--row"> Copyright © <span id="copyright-year"></span> <script>document.getElementById("copyright-year").innerHTML=new Date().getFullYear();</script> Harvard Business School Publishing. All rights reserved. Harvard Business Publishing is an affiliate of Harvard Business School. </div> --> </div> </div> </div> <div class="piano-content-recs-wrapper"> <div class="piano-content-recs-inline"></div> </div> </footer> <!-- End Footer --> </div> </div><script> window.captchaScoreKey = "6Ld9uNYZAAAAADPb9mj-jQFgYnWu1h6XAdKRLUhH"; window.msUserDomain = "https://platform.hbr.org/hbr/api/user" </script> <script src="https://www.recaptcha.net/recaptcha/enterprise.js?render=6Ld9uNYZAAAAADPb9mj-jQFgYnWu1h6XAdKRLUhH"></script> <!-- javascript --> <script src="/resources/js/common_c760d245d771bd1a.js"></script> <script src="https://embed-player.newsoveraudio.com/scripts/embed-audio-player.js"></script> <script src="/resources/js/pages/article_4f9bf70436b067fd.js"></script> <script src="/resources/js/pages/ascend_8c280aa8f27b4d9b.js"></script> <!-- Begin comScore Tag --> <script> var _comscore = _comscore || []; _comscore.push({ c1: "2", c2: "14457509" }); (function() { var s = document.createElement("script"), el = document.getElementsByTagName("script")[0]; s.async = true; s.src = (document.location.protocol == "https:" ? "https://sb" : "http://b") + ".scorecardresearch.com/beacon.js"; el.parentNode.insertBefore(s, el); })(); </script> <noscript> <img src="http://b.scorecardresearch.com/p?c1=2&c2=14457509&cv=2.0&cj=1" /> </noscript> <!-- End comScore Tag --> <script type="text/javascript"> if (isAdobeSync()) _satellite.pageBottom(); </script> <script type="text/javascript"> var tp = window["tp"] || []; tp.push(["init", function () { tp.experience.init(); }]); </script> </body> </html>