50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

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

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

关注

评论

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

强大的文件查找器Find Any File for mac

晨光熹微

YashanDB数据库分布式事务设计与应用实践

数据库砖家

实测提速 60%!Maven Daemon 全面加速 SeaTunnel 编译打包效率

白鲸开源

maven 编译 打包 Seatunnel Maven Daemon

Yate for mac 音乐标签管理工具

晨光熹微

最好用的办公套件Microsoft Office 2024 for mac中文版

晨光熹微

鸿蒙5开发宝藏案例分享---性能体验设计

莓创技术

Mac超强全能视频播放器Infuse Pro中文版

晨光熹微

打破交互困局:科大讯飞这样出手

脑极体

AI

YashanDB数据库分布式事务实现与挑战解析

数据库砖家

Mac上好用的视频音频格式转换工具Permute

晨光熹微

Mac电子邮件客户端Mimestream

晨光熹微

玩转 MCP 第二弹|一文教你用 Trae 实现网页自动化测试

火山引擎开发者社区

MCP Trae

SQL Server CDC 机制全解:如何用 SeaTunnel 构建高效实时数据同步方案

白鲸开源

sql 数据集成 CDC Seatunnel

mac上最好用的视频下载工具Downie

晨光熹微

Pandabuy崛起,系统搭建秘诀在这!

tbapi

淘宝代购系统 Pandabuy 反向海淘系统 pandabuy系统

Mac上好用的文件提取工具File Juicer

晨光熹微

Mac上软件闪退(意外退出)的解决方法

柠檬与橘子

全球 DaaS 市场研究报告上线,聚焦数据服务化趋势与行业演进路径

tapdata

DaaS市场研究报告 数据即服务报告 数据服务行业解决方案 什么是数据即服务 数据服务化趋势

Trae - 非科班在建模比赛中的 AI 编程手|AI编程社知识库精选

火山引擎开发者社区

Trae AI 编程

将两台 Mac 显示器设置为单个屏幕

柠檬与橘子

zFuse Pro For Mac 轻量级视频播放器软件

晨光熹微

DSIP-91提案解读:简化工作流调试和发布的方案,等你来探讨!

白鲸开源

GitHub 开源 工作流调度 Apache DolphinScheduler

(网页CAD插件)WEB CAD二开焊接符号

WEB CAD SDK

鸿蒙5开发宝藏案例分享---性能优化案例解析

莓创技术

为未来企业实现数据驱动的决策积累专业财务技能

智达方通

数据分析 全面预算管理 财务管理

菜单栏上面的文件管理器File Cabinet Pro for mac

晨光熹微

应用深度清理卸载工具App Cleaner & Uninstaller Pro中文版

晨光熹微

YashanDB数据库分布式架构设计实战指南

数据库砖家

高考报志愿别只看一个AI,多AI比较+大数据才更稳

脑极体

AI

鸿蒙5开发宝藏案例分享---埋点开发实战指南

莓创技术

3分钟搞懂 Apache SeaTunnel CDC 数据同步

白鲸开源

开源 数据集成 CDC Seatunnel

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