《构建之法》(十二)

软件工程师的职业道德

软件工程师的誓言(一)

这节 内容主要说一说作为软件工程师,应该遵守自己的行业守则。

程序本身没有伦理和职业道德, 但是程序员和软件企业要有。书上 举例了好些例子都说明了这一点。每个行业都有自己要遵守的职业规则。

正如书上所说,在医学上有著名的希波克拉底誓言,我们还知道,学生在学校入团入党也宣誓,法官警察入职也宣读誓言等等一样,软件工程师有类似的誓言。如 -  IEEE/ACM 在前几年就发布了 Software Engineering Code of Ethics and Professional Practice。  现在已经是5.2 版。

为了对软件工程师这一职业有更深的认识,下面摘抄一遍翻译:

目前,计算机已经成为推动经济、工业、政治、医疗、教育、娱乐和整个社会发展的核心技术。而在这当中,软件工程师通过亲身参与或者教授软件系统的分析、说明、设计、开发、授权、维护和测试等实践工作,为社会做出了巨大贡献。正是由于他们在软件系统开发中起到的重要作用,软件工程师有很大的机会去造福或者危害社会,并有能力去促使或影响他人造福或者危害社会。为了尽可能确保这些影响是有利于社会的,软件工程师必须承诺自己所从事的职业能造福社会, 并且能够得到大众认可尊重。这一承诺要求软件工程师必须遵守下列《职业道德规范和实践标准》。

这一《规范》包括了有关职业软件工程师的行为和决断的八项准则,涉及软件工程方面的实际工作者、教育工作者、经理、主管、决策制定者以及相关的受训人员和学生。这些准则指出了个人、小组和团体参与软件工程的道德责任关系,以及这些关系中的主要责任。每一条原则都是对这些关系中的责任做出的说明。这些责任覆盖了软件工程师的人性,他们对那些受软件工程师工作影响的人们的特别关照,以及软件工程实践的独特因素。《规范》规定任何已经成为或者想成为软件工程师的人必须遵守这些原则。

本规范的每个部分都不应该被断章取义, 孤立使用去判断人们有意或无意犯下的错误。因此这些原则和条款并不是非常完善详尽的。在实际使用过程中,不应当将条款中的可接受部分和不可接受部分分开来讲。同时,《规范》也不是一个简单的道德算法,可以产生所有的道德上的决定。在某些情况下,一些标准可能会相互抵触或者与其他地方的标准相互抵触。在这种情况下,就要求软件工程师能够运用自己的道德判断能力,在特定的情况下做出最符合《规范》的行为。

解决道德冲突最好的方法是对基本原则进行全面的思考,而不是去盲目的依靠一些具体条目。这些原则应当会促使软件工程师们去更广泛的思考哪些人是他们工作的受众,去思考他和他的同事是否给予其他人足够的尊重,去思考对他们工作有足够了解的公众会如何看待他们的决定,去思考他们的决定如何影响最小,以及去思考他们的行为是否符合一名优秀的专业软件工程师的标准。在所有这些思考中,对公众健康、安全与福利的关注是最主要的。也就是说,“公众利益”是《规范》的核心。

由于软件工程这一行业的多变性与苛刻性,它需要一份相关的规范去应对自身不断出现的新情况。《规范》记录了这个行业的道德立场与标准。因此即使是对于这样普遍性的要求,《规范》依然为软件工程师以及他们的经理提供了支持。《规范》无论是对团队中的个人还是团队本身来说都提供了一个道德基础。《规范》也规定了那些对软件工程师或其团队来说道德上不正当的要求。

这份《规范》不仅仅能用来对那些遭到质疑的行为的性质进行判断,它还具有非常重要的教育功能。由于这份《规范》表达了这个行业对于职业道德的一致认识,因此它是教育公众和那些有抱负的专业人员有关软件工程师道德责任的一种工具。

 

时间: 2024-10-22 00:25:11

《构建之法》(十二)的相关文章

构建之法(二)

团队开发模式. 这学期我们主打的就是团队开发模式.对于团队而言,我算是有了一点儿基本的理解.书中什么各种团队模式,明星模式,秘密团队,特工团队.但是我发现在我身边的都是一个人担当起整个团队.文中说这是主治医生模式的退化版.就是“一个学生干活,其他学生跟着打酱油”.这也算是团队的一种把.对于团队的沟通也是很重要的.我们一起开发设计,有时候我们的沟通确实很不到位.导致工作进度一直跟不上计划.很多时候也就是30分种解决的问题,但是就是一直拖着. 开发流程被采纳的是瀑布模式.之前看大道至简的时候也提到了

【老孙点评】古人读书十二法

书,人人都可以去读,但是有的人就读不懂.读不通.读不进,甚至越读越糊涂.这里说明读书是有得法与不得法的区别的,但要相信方法总是可寻的.读书不得法,就如上面所说的那样,反之,也有不少人把书读懂而且读通了.读书的方法,也不止一种,现在选列了古人读书十二法,以供借鉴与参考: [法一]."思·问·习"读书法.这是孔子主张的读书方法. [例]1.重视思考.在学习过程中,要动脑筋.他说:"学而不思则罔,思而不学则殆."(<论语·为政>) [例]2.不懂就问.读书在于

读《构建之法》之一,二,十六章有感

大二下学期已经过去两周了,个人感觉,课程方面压力与动力并存,相信一步一步走下去终将得到自己的一份收获. 这几天阅读了<构建之法>的第一,二,十六章,我个人的阅读速度应该属于比较慢的那种,遇到什么不确定的,不理解的概念总要停下来好久,各种百度,否则继续阅读的时候总有种急躁的感觉,老想着前面的停顿,到头来一头雾水,还是跑去理解前面的概念.作业中关于精读的part1,2,3一开始我觉得可能不适合我这种节奏慢又钻牛角尖的,但贵在尝试,以前我的阅读习惯是只读一两遍,虽然第一遍把不理解的概念都慢慢弄明白了

构建之法第一、二、十六章

<构建之法>第一.二.十六章疑问 我通过阅读发现这是一本十分有趣的书.不同于别的书的晦涩难懂,<构建之法>利用浅显易懂的语言,贴近生活的例子向我们讲述了软件工程的内容. 第一章  概论 软件=程序+软件工程 扩展:软件企业=软件+商业模式 软件工程是把系统的.有序的.可量化的方法应用到软件的开发.运营.和维护上的过程.软件的特殊性有a.复杂性 b.不可见性 c.易变性 d.服从性 e.非连续性.软件工程与计算机科学的区别:计算机科学中与实践相关的部分,都和数据以及其他学科发生关系:

《构建之法》读书笔记之:第一、二、十六章

这周看了邹欣老师<构建之法>的1,2,16章,获益匪浅.这本书写得妙趣横生,用阿超小飞几个人的生活场景和幽默的比喻帮我理解着软件工程的相关概念,让我对软件工程有了初步的了解:原来开发软件并不是我们想的那样简单:上手直接敲代码就可以了,而是会有一套详细的流程规范.下面是我看书时的一些心得笔记,和一些无法自己解答的疑惑,烦请各位老师批评指教. 第一章: 笔记: 软件=程序+软件工程,是否可以通俗地理解为,程序只是死的机器的东西,为什么做(需求分析),做什么(软件设计),做完后这东西是否可行(软件测

《构建之法》第十一、十二章学习总结

第十一章的内容是软件设计与实现. 在第一节中,讲的是关于分析和设计方法,向我们介绍在"需求分析"."设计与实现"阶段."测试""发布"阶段该搞清楚的问题. 在第二节中,讲的是关于图形建模和分析方法.在表达实体和实体之间的关系时,可以用到思维导图(Mind Map).实体关系图(ERD).UCD ;在表达数据的流动时,可以用到DFD工具:在表达控制流的时候可以用到FSM工具:前面提到的这些图形建模方法各有特点,UML却可以有一个

阅读《构建之法》十一、十二、十三章

第十一章 问题:为了避免误解,我们是不是可以把我们理解的告诉用户,并且最好是图像的形势或是其他方式展示给用户? 第十二章(P230) 问题:为了让用户满意,是否可以在用户的原来基础上创新,体现出一些人文关怀,请问这是一些好的想法吗?还是这是程序员的顾忌?

阅读《构建之法》十一、十二、十三章之感

第十一章 问题:为了避免误解,我们是不是可以把我们理解的告诉用户,并且最好是图像的形势或是其他方式展示给用户? 第十二章 问题:为了让用户满意,是否可以在用户的原来基础上创新,体现出一些人文关怀,请问这是一些好的想法吗?还是这是程序员的顾忌? 第十三章 问题:(220)文中提到用户需要帮助,但是用户没有那么蠢.是一个人非常典型的例子,但是这个例子问题太过突出.有时候就算我们记住了用户的选择,考虑了用户的感受,但是还是难免把握住那住个度,那么我们如何准确的把握住那个度.

《构建之法》读后感系列之二

关心自己更关爱你 “本是同根生相煎何太急”,大家都是程序员,规范自己的代码结构不光方便自己还方便看代码的人. 还记得大二的操作系统上机,我的代码因为是在vim里编写的,实在是懒得缩进,大括号也没有对齐,结果在编译时候出错,当时找错误真是找瞎了眼.虽然结果最终是正确了,但是助教检查的时候还是善意地指出了我代码结构的规范性问题. 所以看到邹欣老师在<构建之法>第四章指出的代码规范性问题,给我的共鸣还是很明显的.我认为,程序员在成长的过程中,不仅是知识的不断堆砌,更重要的是不断规范自己的过程.书中指

Android学习路线(二十二)运用Fragment构建动态UI——构建一个灵活的UI

先占个位置,下次翻译 :p When designing your application to support a wide range of screen sizes, you can reuse your fragments in different layout configurations to optimize the user experience based on the available screen space. For example, on a handset devi