NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

为什么说软件开发人员应考虑道德问题

  • 2018-03-29
  • 本文字数:1945 字

    阅读完需:约 6 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

很多影响人们行为的软件,在创建时并未认真考虑道德上的建设。软件开发人员需扪心自问一些道德问题,例如“哪些人将会受影响?”、“哪些人会从中受到伤害”,以及“会对哪些人有利,抑或是产生不利?”。开发人员应该尽量回答这些问题,但对无法回答的问题也应坦然面对。

QCon 伦敦 2018 大会上,Circonus 的 CEO Theo Schlossnagle 就软件开发人员的职业道德问题做了演讲。InfoQ 以问答、展示、总结和文章覆盖本次大会。

InfoQ 采访了 Schlossnagle,内容涉及道德问题的重要性、软件开发人员在集成道德问题上应该怎么做,并探讨了不道德软件的后果。

InfoQ:为什么道德问题对软件开发人员十分重要?

Theo Schlossnagle:如果我们看看周边的人,做我们这一行的,编写代码并做出一些影响用户的决策。但是我们中的绝大多数并未受过严格的道德操守教育。在高中时期,没有上过道德课程;在大学期间,也没有参加过道德课程。这并不意味着我们不明白道德问题。伦理对人类而言是近乎天生的。

存在讨论道德问题的剧本,也存在思考道德问题的剧本,但是并不存在一个给出了答案的剧本。问题在于,人们的心理模式是自身去回答这些问题,而不是回避问题并视若无睹。

软件开发已经历了三十多年发展历程,最近十到十五年中,开发呈现出超级加速态势。影响人类行为的软件无处不在,但我们在创建软件时,并未围绕其进行强大的道德建设。

InfoQ: 您能举例说明开发人员可能会面对哪些道德问题吗?

Schlossnagle: 当然。在机场,有一些给皂机会自动检测使用者的伸手情况。但是,自动装置无法检测到非裔美国人的伸手情况。使用者需要在给皂器下放置一张白纸才能触发给皂装置。究其原因,并非在于工程师认为剥夺非裔美国人和黑肤色人的利益非常有趣的。这是一个缺失了道德质疑这一层的千层蛋糕。只是因为人们选择不提出质疑,并非是在受到质疑后回应以“我们就是要做坏事”。

重要的是我们应具有一个提出问题的开放式框架,因为道德问题几乎总是开放式的。例如,这将会对哪些人产生影响? 软件会出现什么问题?问题并非在于软件缺陷,并非在于代码行,并非在软件崩溃时,而是在于不对哪些人提供服务? 这些问题都是很难回答的,我们可能会搞砸。我希望人们能做到提出问题,并将其作为软件开发周期的一部分。

就肤色检测器而言,我根本不知道它有什么技术可言。但是如果这是一个简单的计算机视觉系统,其中可能使用了一个计算机视觉软件库。对于计算机视觉库而言,或许应该对在错误模型上训练肤色检测的后果进行一场小规模的道德辩论? 例如,我们还可以检测曲奇饼上是否存在像是巧克力块的老鼠粪便。还存在其它一些场景,不在一群不同的人身上进行训练,我们就有可能会剥夺少数人的权利。

InfoQ: 开发人员应如何将道德考虑集成于他们的工作中?

Schlossnagle:我认为软件开发人员已经做了大量工作,他们在开发代码时会尽量考虑安全问题。但是,他们并没有质疑自己,这样做会有什么道德后果?谁会因此受到伤害?谁会因此高人一等?会对谁有利或产生不利? 他们没有质疑这些问题。我的目标是将这些自然而然的过程引入到软件开发中。

有人应就此提出问题。每个开发者都会从你这里了解软件的受众是什么人。每位逐行编写代码行的底层开发人员,都应有能力将这些问题合并到他们所做的工作中,并且这种能力应从上到下贯穿始终。

InfoQ:开发人员应被问及哪些类型的问题?

Schlossnagle:问题高度依赖于开发人员的工作,他们使用哪种类型的软件。我自己要问的一个简单问题就是,这是否会对某些人造成伤害。我认为,人们所写的软件最终都会与人进行交互。我们是软件的最终消费者。我们构建软件是为了改善人类的生活,而不是让机器人的生活变得更好。即使我们这样做了,也是因为机器人会使人类的生活变得更好。链条的末端总是以人类作为技术的受众。只需质疑我的代码将如何被人所使用。

InfoQ:在支持道德问题上,软件社区应如何做?

Schlossnagle:鼓励软件社区在开发过程中专门增加道德问题。或许首先应在它们的代码库中添加一个给出问题和答案的 ethicalconsiderations.md 文件,并鼓励 Pull 请求。

InfoQ:不道德软件是否存在后果?

Schlossnagle:是的。我认为如果一个人做了不道德的事情,应该具有一定的法律后果。但伦理并不是由惩罚驱动的,而是由相互间的社会利益驱动的。在大学期间,我学会了如何提出问题,甚至是一些难以回答的问题,并坦然面对一些我至今依然无法回答的问题。道德问题就是其中之一。

Theo Schlossnagle 曾在 InfoQ 播客上探讨过“软件伦理与正确做事的必要性”问题。InfoQ 也曾就“更好的交流实现更好的工程”问题采访过他。

查看英文原文: Why Software Developers Should Take Ethics Into Consideration

2018-03-29 19:002680
用户头像

发布了 391 篇内容, 共 127.2 次阅读, 收获喜欢 256 次。

关注

评论

发布
暂无评论
发现更多内容

总结篇:10个常用的 JavaScript 函数

devpoint

filter 12月日更

volatile 为什么不保证原子性

悟空聊架构

volatile 原子性 28天写作 悟空聊架构 12月日更

VR就是下一代平台

mtfelix

28天写作

黑客竟然需要掌握这些知识

喀拉峻

黑客 网络安全

毕业总结

4anonymous

团队基建系列 - 组织知识传承 6 成功要素

搬砖的周狮傅

团队文化 团队成长

Eureka非分区集群部署

李子捌

微服务 28天写作 12月日更

工作到退休,会是什么样子的?(11/28)

赵新龙

28天写作

高效的部署微服务

卢卡多多

28天写作 12月日更

元宇宙100讲--0x001

hackstoic

元宇宙

「如何从零到一实现一个玩具浏览器🌏」

速冻鱼

前端 浏览器 签约计划第二季 12月日更

面试官:Chrome和Chromium的区别

喵叔

28天写作 12月日更

刷新

Nydia

如何够量-训练你的主题演讲

将军-技术演讲力教练

100% 展示 MySQL 语句执行的神器-Optimizer Trace

程序员历小冰

MySQL 28天写作 12月日更

模块六

小何

「架构实战营」

【Java技术开发专题】系列之「Guava RateLimiter」针对于限流器的入门到实战(含源码分析介绍)

洛神灬殇

ratelimiter Guava 限流器 RateLimit 12月日更

微信朋友圈高性能复杂度分析

drizzle

「架构实战营」

数据存储淘汰专题 | 内容合集

卢卡多多

内容合集 签约计划第二季

【LeetCode】最小基因变化Java题解

Albert

算法 LeetCode 12月日更

模块六作业:拆分电商系统为微服务

dean

架构实战营

数据大体系(二)——数仓的一般命名规范

圣迪

大数据 数仓 命名

Rust 元宇宙 16 —— 里程碑,二人世界

Miracle

rust 元宇宙

Zilliz 顾钧:开源是协调技术供应商、开发者和用户之间利益的一种更健康的方式 I OpenTEKr 大话开源 Vol.2

OpenTEKr

大话开源

瞰见 | 黯然退市的 Cloudera, 让我们开源人情何以堪?

OpenTEKr

狄安瞰源

[Pulsar] 一个消息的生命历程

Zike Yang

Apache Pulsar 12月日更

Android 文件重定向下载 & 通知问题小结

阿策小和尚

28天写作 Android 小菜鸟 12月日更

技术人员需要加强推动力

张老蔫

28天写作

毕业设计

4anonymous

我可能误会了理性的作用

Justin

心理学 创意 理性 28天写作

拿它们练Python爬虫,是在法律边缘试探吗?爬虫圈香饽饽之视频网站的评论区采集

梦想橡皮擦

12月日更

为什么说软件开发人员应考虑道德问题_语言 & 开发_Ben Linders_InfoQ精选文章