软件工程 软件工程师的誓言

有人说 程序 = 算法 + 数据结构

有人说 软件 = 程序 + 软件工程,  软件企业 = 软件 + 商业模式。

 

程序没有伦理和职业道德, 但是程序员和软件企业要有。 我们听说过很多例子: 

 

  •  
    •  
      • 一个在银行工作的程序员曾说, 每次给客户计算利息的时候那些除不尽的小数, 如果程序自动转给我的账户上就好了…
      • 一个程序员奉命实现一个功能, 把用户机器上的另一个公司的程序给卸载掉; 或者要求用户卸载另一个程序, 否则本程序退出。
      • 绝大多用户在安装软件或使用网络服务的时候都不看使用协议 (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.

你可能感兴趣的:(数据结构,算法,网络协议,交通)