程序没有伦理和职业道德, 但是程序员和软件企业要有。 我们听说过很多例子:
一个在银行工作的程序员曾说, 每次给客户计算利息的时候那些除不尽的小数, 如果程序自动转给我的账户上就好了…
一个程序员奉命实现一个功能, 把用户机器上的另一个公司的程序给卸载掉; 或者要求用户卸载另一个程序, 否则本程序退出。
一个程序员写了一个手机游戏软件, 然后把用户的通讯录信息悄悄上传。
绝大多用户在安装软件或使用网络服务的时候都不看使用协议 (EULA), 直接点 “同意” 或者 “下一步”, 万一程序在这里搞了些猫腻怎么办?
我们每天走过卖麻辣烫的小摊; 我们要打听如何送 “赞助费”才能让小孩上学; 走在路上, 自称房屋中介的人会给你发许多彩色资料; 电视里我们看到新闻发言人振振有词的发言; 关掉电视, 我不禁要说 - 职业道德不是万能的, 但是没有职业道德是万万不能的啊…
批评别的行业和别人都很容易, 我们IT 行业本身又怎么样呢? 越来越多的人们把自己的账户名, 密码, 手机号, 身份证号… 交给程序, 希望程序后面的程序员不做坏事; 许多社会功能如查询信息, 彩票, 汽车摇号, 交通管理, 甚至核电站运行都交给了软件工程师创造的软件来管理。 那么在所有法律条文被严格制定和执行之前, 有没有什么伦理来约束这些人的行为?
在医学上有著名的希波克拉底誓言, 其中一个版本如下:
“我保证履行由于我的专业我自愿承担的治疗和帮助病人的义务。我的义务是基于病人所处的软弱不利的地位,以及他必然给予我和我的专业能力完全信任。所以,我保证把病人多方面的利益作为我的专业伦理的第一原则。由于承认这种约束,我接受下列义务,只有病人或病人的合法代理人才能解除我这些义务:
①将病人的利益置于我专业实践的中心,并在情况需要时置于我自己的自我利益上。
②拥有和保持我的专业要求的知识和技能的能力。
③承认我的能力的局限,只要我的病人病情需要,我应向我的各种卫生专业的同事求助。
④尊重其他卫生专业同事的价值和信念,并承认他们作为个人的道德责任。
⑤用同等的关切和献身精神关怀所有需要我帮助的人,不管他们有没有能力付酬。
。。。
那么软件工程师有类似的誓言么? 这个可以有 - IEEE/ACM 在前几年就发布了 Software Engineering Code of Ethics and Professional Practice。 现在已经是5.2 版, 一个简化版是:
PREAMBLE
The short version of the code summarizes aspirations at a high level of the abstraction; the clauses that are included in the full version give examples and details of how these aspirations change the way we act as software engineering professionals. Without the aspirations, the details can become legalistic and tedious; without the details, the aspirations can become high sounding but empty; together, the aspirations and the details form a cohesive code.
Software engineers shall commit themselves to making the analysis, specification, design, development, testing and maintenance of software a beneficial and respected profession. In accordance with their commitment to the health, safety and welfare of the public, software engineers shall adhere to the following Eight Principles:
1. PUBLIC - Software engineers shall act consistently with the public interest.
2. CLIENT AND EMPLOYER - Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest.
3. PRODUCT - Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.
4. JUDGMENT - Software engineers shall maintain integrity and independence in their professional judgment.
5. MANAGEMENT - Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.
6. PROFESSION - Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.
7. COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues.
8. SELF - Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.
以上内容的版权说明:
This Code may be published without permission as long as it is not changed in any way and it carries the copyright notice. Copyright (c) 1999 by the Association for Computing Machinery, Inc. and the Institute for Electrical and Electronics Engineers, Inc.
这也是清华大学 <现代软件工程> 课程的一个团队作业, 希望各个小组能分工翻译, 发布在小组博客上, 要求文字精炼典雅, 以便流传百世。-----
下面是同学们详细翻译的汇编:
目前,计算机已经成为推动经济、工业、政治、医疗、教育、娱乐和整个社会发展的核心技术。而在这当中,软件工程师通过亲身参与或者教授软件系统的分析、说明、设计、开发、授权、维护和测试等实践工作,为社会做出了巨大贡献。正是由于他们在软件系统开发中起到的重要作用,软件工程师有很大的机会去造福或者危害社会,并有能力去促使或影响他人造福或者危害社会。为了尽可能确保这些影响是有利于社会的,软件工程师必须承诺自己所从事的职业能造福社会, 并且能够得到大众认可尊重。这一承诺要求软件工程师必须遵守下列《职业道德规范和实践标准》。