写点什么

程序员誓言

  • 2017-10-12
  • 本文字数:2137 字

    阅读完需:约 7 分钟

Robert Martin 认为,我们的社会要求人们对职业行为作出承诺;我们需要一份程序员誓言,因为我们的生命和财产依赖与软件能否正确地构建和运行。根据他介绍,程序员誓言必须由专业协会的成员来实行。

Robert Martin 是敏捷软件开发宣言的签署者之一,他建议程序员的道德规范应该符合程序员义务

(…) 事实是,程序员所服务的对象还不太了解我们程序员所拥有的巨大力量;我们程序员自己也不大了解。

正所谓能力越强、责任越大。我们程序员应该承担这份责任,尽心尽责地服务好社会。我们应该制定我们行为的框架和标准。既不是雇主、也不是政府,而是我们程序员自己应该决定,与已经掌握的权力而言,哪些是我们应该承担的责任。

在 2014 年 11 月发表的这篇文章中,Martin 首次分享了他对程序员道德规范的想法。他建议(程序员道德规范)应该包括几点:

  • 我们不会故意造成伤害。
  • 我们将按照预定的目的和生命周期来编写软件。
  • 我们的行为以荣誉和纪律为准绳。

这篇文章根据工程师职责协会的章程,为程序员提供了一个誓言。

Nils Löwe 写了一篇构建完善和可靠软件的软件开发者的责任

在过去几十年中,关于如何构建完善和可靠的软件我们已经学到了很多。软件危机让我们知道了我们的技术缺陷,作为优秀的工程师,我们发明了控制复杂性的流程和方法。不幸的是,我们忽视了除了技术上的挑战,还有需要承担的日益增长的责任。

我们的软件开发者在如此短的时间内积累了如此强大的影响力。但是我们不得不以同样短的时间去面对由这种影响带来的责任。

在他的文章中,Löwe 提到他的“负责任的软件开发宣言”旨在鼓励思考和讨论软件开发人员的责任。

2015 年 11 月,Robert Martin 发表了程序员誓言。他的誓言旨在捍卫和拯救专业计算机程序员的荣誉。誓言开篇写道:

  1. 我不会生产有害的代码。
  2. 我生产的代码将永远是我最好的成果。我不会故意允许结构或者行为存在缺陷的代码长期存在。
  3. 我将在每个正式版本中生成一个快速、可靠和可复现的证据,证明代码中的每个元素都按照应其有的样子运行。
  4. (…)

在 freeCodeCamp 上的那些年我写过的垃圾代码一文中,Bill Sourour 讲述了他为一个在线测验并推荐药物的网站编写软件的故事。虽然他所工作的网站表面上是一个药物综合信息网站,但客户的要求总是推广他们的药品。在文章的最后,他总结道:

作为开发者,我们通常是阻止潜在危险和不道德行为的最后一道防线之一。

随着越来越多的软件继续接管我们生活中的方方面面,对于我们来说,采取立场并确保我们的道德准则永远融入我们的代码中将变得越来越重要。

希腊2017 年敏捷峰会上,Martin 将发表题为“The Scribe’s Oath”的开幕式主题演讲。希腊2017 年敏捷峰会将于9 月22 日在雅典开幕,这是为开发者、团队领导、经理和高层主管举行的为期一天的会议。InfoQ 将以问答、总结和文章的形式报道本次峰会。

InfoQ 就“程序员誓言”的必要性、誓言的主旨以及如何实现采访了 Martin。

InfoQ:为什么我们需要为一个程序员誓言?

Robert Martin:大多数人、包括大多数程序员都没有意识到,我们的文明已经如此依赖于软件。如今,生命和财产取决于软件的正确构建和运行。每当生命和财产受到威胁时,我们的社会都强烈要求对专业行为作出承诺。誓言就是对这个承诺的一份声明。

InfoQ:你在 2015 年发布了程序员誓言。人们是什么反应?

Martin:很多程序员对此都很热情,有些人认为这很愚蠢。我不认为整个群体的反应真的多重要。真正重要的是外行人对此怎么看——以及立法者对此怎么看。最后,日常普通民众将强烈要求对专业行为作出承诺;并将要求对专业行为强制执行承诺和进行监督。

InfoQ:誓言第一条是‘我不会生产有害的代码。’你可以详细解释一下吗?

Martin:一个软件开发者可以对他的用户造成两种伤害。第一种最明显,就是软件出现了故障。毫无疑问,我们应该尽最大努力来保证软件不会出现故障。

程序员通常带给用户的第二种伤害是破坏软件的 _ 结构 _,用户认为软件很容易修改,毕竟它只是 _ 软 _ 件嘛。用户需要让他们的软件系统和社会的变化以及技术的变迁保持同步。这看起来也合情合理,我们应该保证尽最大努力来确保软件是 _ 软 _ 的。

InfoQ:誓言还建议,程序员应尽一切努力来保持高效率。他们如何在保证高质量的情况下做到这一点?

Martin:啊,这是一个棘手的问题。保持高质量时我们如何保持高效……质量和效率相互矛盾的看法是多年来我们一直自欺欺人的最大谎言。

每个有经验的程序员都会被糟糕的结构和混乱的代码所困扰。这部分代码“容易”写,但是会让系统拖累剩下的所有人。每个人越慢,使系统摆脱恶化状态的压力就越大。最后整个项目都慢下来,不可阻挡地向着零生产力发展。

重复一下我的话:“保证效率的唯一途径就是保证质量。”

InfoQ:大力推行程序员誓言是对的吗?如何实现?

Martin:最终可能需要通过诸如一些专业协会的会员制来实现。雇主只会聘请具有良好信誉的会员(可能借助法规),会员资格也可能因严重违反协会行为守则而被取消。

我知道目前没有人认为致力于讨论这些事情恰逢其时;但这一定是个必然趋势。

查看英文原文: Oath for Programmers


感谢冬雨对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-10-12 19:002905
用户头像

发布了 64 篇内容, 共 23.7 次阅读, 收获喜欢 11 次。

关注

评论 1 条评论

发布
用户头像
作为软件开发行业的一员,我们应该以客户的利益和自我责任为首要原则,绝不编写恶意程序,认真对待客户所需要的要求
2018-12-18 12:17
回复
没有更多了
发现更多内容

Java & Go 定时任务

FunTester

如何挑选最佳项目协同软件?实用指南

爱吃小舅的鱼

项目协同 项目进度管理

随着5G技术加速亚太地区的数字化转型,其移动经济预计到2030年将增至1万亿美元

财见

全链路追踪 & 性能监控,GO 应用可观测全面升级

阿里巴巴云原生

阿里云 云原生 可观测

ToB企业市场部四分之三的工作都需要企业全历史行为数据的支持

客户在哪儿AI

ToB营销 活动营销 ToB增长 大客户营销

欢迎提报!2024 龙蜥社区年中三大奖项评选来了

OpenAnolis小助手

开源 操作系统 龙蜥社区

IBM 发布 2024 年第二季度业绩报告:软件业务持续引领增长,全年现金流预期上调

财见

全能数据分析工具:Tableau Desktop 2019 for Mac 中文激活版

你的猪会飞吗

mac软件下载 mac破解软件下载

JavaScript单行技巧:高效处理数据

南城FE

JavaScript 前端

流量回放新形态:基于网关 Access Log 发起

阿里巴巴云原生

阿里云 云原生 流量

PPT AI生成软件有哪些?10款顶级的AI合成PPT工具推荐!

彭宏豪95

人工智能 效率工具 PPT AIGC AI生成PPT

蓝易云 - Linux中7种文件类型

百度搜索:蓝易云

云计算 Linux 运维 云服务器 高防服务器

蓝易云 - 免费云服务器主机永久使用

百度搜索:蓝易云

云计算 云主机 云服务器 服务器租用 高防服务器

基于 MelosBoom ,捕获 DePIN 赛道发展红利

石头财经

龙蜥社区第五届理事大会圆满结束!深度探讨 AI 浪潮下的合作模式

OpenAnolis小助手

AI 操作系统 龙蜥社区 CentOS迁移 龙蜥理事大会

需求缺陷管理工具推荐:如何选对?

爱吃小舅的鱼

缺陷管理 需求缺陷管理

蓝易云 - iftop工具详解网络流量监控利器

百度搜索:蓝易云

云计算 Linux 运维 云服务器 iftop

蓝易云 - java解析xml的几种方式

百度搜索:蓝易云

Java 云计算 Linux 运维 云服务器

基于Java+SpringBoot+vue前后端分离大型商场应急预案管理系统设计实现

hunter_coder

后端开发

一个典型的性能分析案例

老张

性能测试 需求分析 云存储 TOS

基于 MelosBoom ,捕获 DePIN 赛道发展红利

BlockChain先知

《龙蜥理事说》第三期对话中兴通讯 探索下一代新型算力和智能化技术

OpenAnolis小助手

AI 操作系统 龙蜥社区 中兴通讯 龙蜥理事说

基于Java+SpringBoot+vue前后端分离宠物领养系统设计实现

hunter_coder

后端开发

基于 MelosBoom ,捕获 DePIN 赛道发展红利

大瞿科技

如何选择人力资源管理软件?2024年顶级10款评测

爱吃小舅的鱼

研发团队 人力资源管理 人力资源管理系统

实时数仓Hologres TPC-H及点查性能开箱测试

阿里云大数据AI技术

实时数仓 OLAP hologres

基于Java+SpringBoot+vue前后端分离大学城水电管理系统设计实现

hunter_coder

后端开发

参与OpenTiny征文活动,赢取500元开发者大礼包!

OpenTiny社区

开源 前端 低代码 组件库 TinyVue

蓝易云 - laragon为php安装Xdebug扩展

百度搜索:蓝易云

php 云计算 Linux 云服务器 Laragon

聚焦创新巅峰 | 5000台Gather G-BOX矿机于7月23日全面上线

股市老人

叮!2024 龙蜥操作系统大会议题征集正式启动

OpenAnolis小助手

AI 操作系统 龙蜥社区 龙蜥操作系统大会

程序员誓言_语言 & 开发_Ben Linders_InfoQ精选文章