写点什么

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

  • 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:003785
用户头像

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

关注

评论

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

自助洗车或许要比自动洗车更干净

共享电单车厂家

自助洗车 自助洗车加盟 车白兔自助洗车 自动洗车

从云原生到智能化,深度解读行业首个「视频直播技术最佳实践图谱」

阿里云CloudImagine

音视频 直播 视频云

从一线开发到技术总监,你就差一个赶鸭子上架

融云 RongCloud

程序员

阿里云联合平行云推出云XR平台,支持沉浸式体验应用快速落地

阿里云弹性计算

视觉计算 云XR平台

【刷题记录】16. 最接近的三数之和

WangNing

7月月更

适合新手的12个Mybatis-Plus常用注解

华为云开发者联盟

后端 开发

架构训练营模块七作业

融冰

到底什么是自助洗车?来科普下

共享电单车厂家

自助洗车加盟 车白兔自助洗车 什么是自助洗车

执行ls /dev/pts为什么这么慢?

BUG侦探

内核 ebpf devpts

Python函数默认参数避坑指南

和牛

测试

如何搭建一个知识库网页?

Baklib

自助洗车费用居然比雪糕还便宜?

共享电单车厂家

自助洗车加盟 车白兔自助洗车 自助洗车费用 自助洗车价格

海外APP推送(上篇):厂商通道与谷歌FCM通道的差异

极光JIGUANG

【盲盒APP商城系统】在线拆盒后的功能介绍

WDL22119

盲盒小程序开发 盲盒APP开发 盲盒源码 盲盒H5开发 盲盒系统开发

专业创作本华硕ProArt 创16 2022预售,高效创作新旗舰

科技热闻

怎样才能让企业知识管理发挥出它的真正价值?

Baklib

云渲染,设计行业的“新贵”

Finovy Cloud

渲染 云渲染 GPU算力 渲染技术

那一年,春晚拓荒牛背后的故事

优必选科技

机器人

Starfish OS:以现实为纽带,打造元宇宙新范式

西柚子

活动报名|揭露 Apache Doris 数据湖分析技术内幕?稀土开发者大会免费报名中!

SelectDB

数据库 数据湖 云原生 Doris 技术分享

如何实现随叫随到的客户服务

Baklib

更智能!AIRIOT加速煤炭行业节能减排升级

AIRIOT

低代码 物联网 低代码,项目开发

龙蜥社区发布首个 Anolis OS 安全指南 为用户业务系统保驾护航

OpenAnolis小助手

阿里云 操作系统 龙蜥社区 sig 统信软件

如何设计业务异地多活架构 - 作业

阿拉阿拉幽幽

自助洗车为洗车行业注入新活力

共享电单车厂家

自助洗车 自助洗车加盟 车白兔自助洗车 洗车行业市场

让软件开发民主化的低代码

力软低代码开发平台

结合pyqt5开发办公文档一键转换软件,以后再也不用开会员转文件了

迷彩

打包 7月月更 自动化办公

【Docker 那些事儿】初始 Kubernetes 容器管理平台(上)

Albert Edison

Docker Kubernetes 容器 云原生 7月月更

Pr视频剪辑师如何选笔记本?华硕灵耀Pro16 2022带你玩转内容创作

科技热闻

王者荣耀商城异地多活架构

intelamd

Web3流量聚合平台Starfish OS,给玩家元宇宙新范式体验

鳄鱼视界

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