写点什么

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

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

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

关注

评论

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

共筑数据库未来 | 2021 OceanBase 原生分布式数据库论坛回顾

OceanBase 数据库

开源 分布式 #数据库 云栖大会 圆桌论坛

杨冰:OceanBase助力数字化转型,原生分布式数据库成核心系统首选

OceanBase 数据库

数据库 开源 分布式 云栖大会 核心系统

互联网+质量基础设施服务平台,NQI一站式服务平台搭建

电微13828808271

周傲英:替代工程只是契机,转型升级才是大势所驱

OceanBase 数据库

数据库 开源 数字化转型 云栖大会

如何用WebIDE打开并运行CRM Fiori应用

汪子熙

Cloud SAP 11月日更

MySQL Operator 01 | 架构设计概览

RadonDB

MySQL 数据库 Kubernetes RadonDB

“你好,天津”网络短视频大赛月内启动

InfoQ 天津

解决大数据分布式计算痛点:腾讯正式开源分布式远程Shuffle服务Firestorm

科技热闻

“初雪”与“向量化” | StarRocks Hacker Meetup 小记

StarRocks

数据库 大数据

个人项目管理软件解决方案

低代码小观

项目管理 管理系统 企业管理系统 项目管理工具 企业管理工具

腾讯大数据全场景在离线混部系统Caelus正式开源

科技热闻

SAP x EMQ 碳中和方案亮相进博会,数据基础设施支撑低碳发展

EMQ映云科技

物联网 IoT mqtt 进博会 SAP

Python代码阅读(第55篇):获取字典的所有键或所有值的列表

Felix

Python 编程 阅读代码 字典 Python初学者

git submodule 添加/删除

webrtc developer

OceanBase 创始人阳振坤 | 十余年打磨 国产数据库之路砥砺前行

OceanBase 数据库

数据库 开发者 趋势 1024 CSDN

使用 OpenCV 和 Python 识别数字

AI浩

OCR

Cube 技术解读 | 详解「支付宝」全新的卡片技术栈

蚂蚁集团移动开发平台 mPaaS

大前端 支付宝 移动开发 mPaaS cube

新赛季集结!“百度AI创意派”正在寻找有创意的你

科技热闻

Nocalhost 亮相 CD Foundation 国内首届 Meetup,Keith Chan 将出席致辞

CODING DevOps

Linux Nocalhost Meetup CDF

出自清华大牛之手的Redis源码核心手册,已被列为GitHub首推书籍

Java redis 编程 程序员

长隆熊猫酒店联合番禺消防大队开展“我是小小消防员”活动

江湖老铁

京东三面(后端)凭借这份Java面试复盘手册,已斩获60K*15offer

Java spring 程序员 算法 JVM

加速拥抱支持开源生态 | OceanBase 开源版3.1.1正式发布

OceanBase 数据库

数据库 开源 开发者 成绩单 DTCC

测试编排必要性

FunTester

敏捷 测试 敏捷测试 FunTester 测试编排

阿里云云合计划走进深圳,实践助推生态持续创新

技术 科技革命 生态 “互联网+”

如何巧妙使用Camtasia库中的素材?

淋雨

Camtasia

杨传辉:深挖 OceanBase 背后的技术逻辑,助力数据库核心系统升级

OceanBase 数据库

数据库 开源 分布式 数字化转型 核心系统

OceanBase 3.2 正式发布 | 更硬核的 HTAP,TPC-H 性能提升6倍!

OceanBase 数据库

数据库 分布式 云栖大会 核心系统 一体化架构

融合通信技术趋势和演进方向

网易云信

云通信 通信云 传输协议

OpenMLDB v0.3.0 正式发布,支持快速部署使用的单机模式

第四范式开发者社区

开源 第四范式 OpenMLDB

浪潮云说丨GPU云服务器,助力AI计划轻松实现

云计算

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