可点击的空白:一个开发者关于技术伦理的反思
像我这样在这个领域摸爬滚打了二十年的人,谈论道德规范要容易得多。我可以不同意雇主的决策,甚至可以选择离开。可我仍记得自己职业生涯早期曾陷入的那种两难境地。
有一次,主管开发人员站在我身后,看着我做一项功能,只让我把一个 div 元素设成可点击的——就这么简单。从技术上讲,这几乎是最基础的操作。
可我却犹豫了。他站在后面,眼睁睁地看着我在电脑上切换各个应用程序,就是不去按他的要求去做。“你就让它能点呗。”他又说了一次。
在那不算长的职业生涯里,我把 div 设成可点击的次数已经数不清了;我也清楚,HTML 标准不过是一种建议。可这一次,我心里总觉得别扭。
于是我说:“下面已经有锚标签了,这个 div 不用非得能点啊。”
“你他妈在说什么?照我说的做!”
我们吵了起来,最后我还是照做了。代码提交后没多久,他又回过头来,在我的点击事件里加了个微小的延迟——用 setTimeout 把用户的操作与后续发生的动作隔开。
如果我这么说听起来还有些模糊,那是因为当时整个事情就是这样被包装起来的:我们把“让这个 div 可点击”这样的技术需求,和“让页面上的空白区域也变得可点”的实际功能彻底割裂开了。
让我再解释得更明白一点。
你用过那些优惠券网站吗?比如你在 nike.com 上买了一件商品,到了结算页,会看到一个小框写着“输入优惠码享受折扣”。于是你满世界搜寻能让你少掏点钱的优惠券。
你来到我们的网站,上面列着十几种优惠,但它们都半遮半掩的。栏目上写着“点击展开”。你一按,蹦出个莫名其妙的弹窗,然后优惠码才露出来,让你复制粘贴,接着你就美滋滋地拿着折扣继续下单了。
听上去好像挺正常的。可你不知道的是,这笔交易的功劳算在那个优惠券网站头上。你付的钱里有一部分会直接进他们的腰包,不管你到底有没有享受到折扣。
他们靠引流拿提成,这就是联盟营销的运作方式。
那么,为什么要把 div、甚至把页面上的空白区域都设成可点击,会成为一件大事呢?因为这样一来,连那些无意间的误点都会被算进去。
公司根本不在乎你到底是不是真找到了划算的优惠;甚至连优惠码能不能用都不重要——他们只希望你点一下,那个弹窗一打开,他们就能拿到那笔提成。
我的任务被包装成了一个单纯的技术需求,而不是赤裸裸地告诉你:“想办法骗用户去点。”等到 Honey 那桩丑闻曝出时,我还纳闷:这怎么也算新闻?
在联盟营销里,这种“欺骗”本来就是家常便饭。
我们常常把自己的工作与背后的 现实世界的后果 彻底脱钩。
2019 年,我在朋友的生日聚会上认识了一个姑娘。她在一家银行的软件开发部门工作,跟我聊起她正在做的项目。他们的系统会从各种渠道收集申请金融服务(比如贷款)的人的信息,判断对方是否符合资格,或者直接拉响警报。一旦触发后者,就得面对繁琐的额外审批流程,而且往往到头来还是贷不到款。她对自己的工作颇为自豪,还告诉我,团队上周还在全公司面前做了演示。他们展示了系统为每个人生成的报告。轮到她的时候,系统把她标记为“高风险”,不具备贷款资格。她的祖母是伊朗人,而伊朗又经常出现洗钱等违规现象,所以她也被立刻列入黑名单。尽管她是荷兰公民,在荷兰土生土长,也在这家荷兰金融机构任职,但在雇主看来,她的血统“太危险”,不能借钱给她。1 我当时很困惑,说实话,心里也很难受。这个人正得意洋洋地跟我讲,他们花了大力气打造了一个系统,却偏偏要根据血统来歧视她。我问她对此怎么看,她支吾了几句:“嗯……规则就摆在那里……”——她停顿了好几次——“规则就摆在那里……”我默默听着,她反复说了几遍,最后才把话说完:“规则是为了保护我们。” 尽管这事已经过去六年了,每次想起那一幕,我依然感到深深的悲哀。眼前这个人,辛辛苦苦搭建了一个会歧视自己的系统,却依然理直气壮地为它辩护。
我们很少觉得自己有责任去质疑这套体系。只要看不到立竿见影的后果,我们就乐于埋头干活。每当我看到街边装着的“鹰眼”摄像头,都会有同样的感受。
设计它们的人、写代码的人、测试的人、确保其性能达标的人,还有负责安装的人——他们都在做着出色的技术活。可我敢肯定,要是让他们自己也被这套系统监控,他们绝不会高兴。
这也正是为什么当 Anthropic 发表宣言,宣称要反对监控本国公民、只允许监控外国人时,我会觉得愤怒。这两者从来都是相伴相生的:我们先监控所有人,再择机加以区别对待。
这也是我反对年龄验证系统的原因,无论其技术多么先进。到头来,还得是我自己把身份证上传到一个根本信不过的系统里。
有了人工智能,把日常工作与其后果割裂开来就更容易了。我理解,刚入行时很容易选择视而不见,但总有一天,你必须把自己的立场表达出来。