第一篇:软件工程师的十个“不职业”行为
软件工程师的十个“不职业”行为
职业化是软件工程师的必然选择。本文根据我在教学和软件开发管理方面的实践,列举几个软件工程师“不职业”的行为或习惯,从另外一个侧面进一步探讨什么是真正的软件工程师职业化。
职业化之于软件工程师非常重要。因为:软件是看不见也摸不着的,它的进度也看不见摸不着,需要软件工程师严格自律、善于沟通;软件开发是创造性的劳动,创造性劳动依赖个人主观能动性,没有自我激励是不可能成为出色的软件工程师的;软件在国民经济和人们日常生活中发挥着越来越重要的作用,软件工程师的道德行为规范成为备受关注的问题。下面是软件工程师十个“不职业”行为。在一些特定领域工作的人们可能会认为这些不具有非常广泛的代表性。例如,IEEE和ACM联合发布的关于软件工程师职业道德规范里,认为软件工程师首先要遵守的是社会公众原则,即所开发的软件要给人类带来福利,不能制造类似于计算机病毒那样的具有危害性的软件。由此,制作病毒显然是最大的“不职业”。然而,在一般的商业型公司里这个问题不是最突出的,因此制作病毒并没有包含在本文列举的十大不职业行为之内。
行为一:对外交付半成品
我们的态度反映在我们的工作上,职业化的人士从不从自己手上交出不合格的工作产品。那些不职业的软件工程师满足于把工作做成半成品,等着让别人来纠正他们的错误。开发者总是不好好做单元测试,没有确认自己的代码符合不符合要求,就盲目自信地认为没有问题,提交给别人供集成和测试。殊不知,没有经过单元测试的代码,往往在集成和系统测试阶段发现大量的问题,要修复这些问题需要付出更大的代价,这个代价比你自己发现并修复要大得多,给组织造成了巨大损失。
行为二:不遵守标准和规范
职业化的重要特征是遵守行业标准,不能肆意按照自己的想象来发挥。每个行业都有自己的技术规范,软件行业也同样如此,如IEEE发布的国际软件工程标准等;各个软件开发组织也有相应的代码规范、文档模板、代码审查清单等;有一定管理水平的软件开发组织还有相应的过程文件。
这些都是软件工程师在软件开发过程需要遵守的规定。特别强调的是,自人们认识到软件危机以来,无论是学术界还是工业界都在不断地总结出软件开发的失败教训和成功经验,并把他们总结成为最佳实践,进而形成标准,这些最佳实践是在大量实践的基础上提炼而成的,要充分利用这些最佳实践和标准指导自己的行动。
行为三:不积极帮助他人
技术人员最容易犯的错误是“保守秘密”,觉得自己开发的成果属于自己,不喜欢和别人共享。生怕影响自己在组织内的地位。
帮助别人也是帮助自己,这个简单的道理却被高智商的软件开发人士忽视。在其他行业中,帮助别人可能仅仅是一个美德,但在软件开发组织中,帮助别人还能为组织降低成本、缩短开发周期、提高产品质量,所有这些正是软件工程学科所研究、并试图解决的问题。
行为四:版权意识不敏感
我们既是软件的制造者,也是软件最积极的使用者。如果我们自身不遵守版权,就会给其他人造成极大的、负面的示范作用,也是对我们自己劳动成果的不尊重。在实际生活中我们看到太多的例子,大量的软件工程师盗版使用了其他公司的产品,并以此炫耀自己的能力。
不尊重版权的另一个例子是:不认真阅读开源代码的使用限制条款就随意使用;随便找到一个开发包,不问来龙去脉就嵌入到自己的系统;错误地认为它在组织内所做的工作成果是自己的,在离职后转让给他人;看到别人使用盗版软件不制止,而且还继续传播。
行为五:对待计划不严肃
软件工程强调计划性。在软件项目管理里,任何项目都要经过策划(Planning),策划的结果是项目计划。项目管理者跟踪项目计划的执行情况,记录计划执行过程中存在偏差的地方,对任何与计划有出入的想法都要事先经过评审和批准,然后才能付诸行动。
因此计划是严肃的。计划是大家沟通的平台,是检查项目状态(Project Status)的依据,也是控制项目变更的手段。计划还是一种承诺,因为策划过程是所有开发者都参与的,或者是征求过开发者意见的,承认了计划中的各种安排,就意味着你已经对外承诺了这些。
软件计划具有难以精确估计并动态变化的特性,因此需要我们软件工程师更加严肃地对待计划,而不应该成为我们不按计划行事的借口。
行为六:公事私事相混淆
公私分明是职业化的另一个重要特征。利用公司设备做自己的事情;在上班时间浏览自己感兴趣、和工作无关的网站,如上班炒股票,都是不职业化的行为和习惯,属于假公济私。
反过来也一样是不职业的:用自己私人的设备处理公司的事务,用免费的邮箱发送和接收公司的邮件;带个人的电脑来办公室处理公司的业务。这样做,可能给组织的软件安全性造成危害,也可能对组织的工作造成麻烦、惹出版权官司。在公和私之间画上一道红线,做到公私分明,是职业化软件工程师必备的素质。
行为七:不注意更新自己
职业的与非职业的软件工程师一个重要区别就在于职业化的人士经常学习,不断更新自己的知识,保持自己在本行业的竞争能力。
我接触到的很多工程师,他们想走捷径,对技术浅尝辙止;知其然不知其所以然;他们畏难而退:不想在一线战斗,喜欢搞他们想象的所谓的管理;想做测试,因为他们错误地认为测试对技术的要求不高„„这些都是和职业化的软件工程师很不相称的。
行为八:不主动与人沟通
沟通,在软件开发领域,是责任问题,不是性格问题。
不主动沟通,其背后隐藏的更为重要的原因是工程师的责任感不够。主动和上级、同行、下属沟通是职业化所必需的,因为软件开发需要团队协作,任何一个工程师的工作都可能会影响别人,进而影响全局。软件工程的实践表明,个别人缺乏主动沟通,往往导致整个团队的技术方案出现偏差,或整个项目的进度受到影响。
报告(Report)是沟通的一个方式,有时显得特别重要。当你承担的任务进展顺利的时候,要报告;特别当任务进展遇到困难、可能会影响别人或引起变更的时候,更要报告。配合项目经理和QA人员跟踪项目的计划执行情况,是每一个工程师分内的职责。
行为九:不遵守职场规则
一些工程师不能很好地遵守软件行业的职场规则。比如:互相告知或打听工资和奖金的多少;离职时带走公司的源代码和文档;或急于到新单位工作而不专心交接等等。
软件计划的不精确性,导致开发任务的分布不均匀,特别是重要里程碑(如产品发布)之前,往往需要一定程度的加班。对此,职业化的软件工程师应给予理解和配合。
行为十: 不够诚实和正直
配合项目经理做好计划是工程师不可推脱的职责。进度的安排是根据任务承担者的经验、水平来确定的,对所安排的任务,工程师本人应该有比较正确的判断。实际工作中,却碰到有些工程师一天能完成的任务故意说成是两天,为自己争取到过分宽松的环境。虽然,也有组织要求软件工程师对工作量和进度有一定的判断和估计能力,但这和故意虚报计划的性质是不一样的,前者是水平问题,后者是诚信问题。
工程师的正直来自于强烈的社会责任感。只有维护行业的道德水准和职业规范,软件行业才能持久健康发展。牺牲职业道德和规范水准,换来了暂时的经济利益,伤害的却是整个软件职业的荣誉和信任度。
作者简介:
陈尚义,1989年毕业于北京航空航天大学计算机系。现任中软通用产品研发中心总经理,北京航空航天大学兼职教授、硕士研究生导师,中科院研究生院硕士生导师,IEEE授权培训结构高级讲师。
第二篇:软件工程师的十个“不职业”行为
职业化之于软件工程师非常重要。因为:软件是看不见也摸不着的,它的进度也看不见摸不着,需要软件工程师严格自律、善于沟通;软件开发是创造性的劳动,创造性劳动依赖个人主观能动性,没有自我激励是不可能成为出色的软件工程师的;软件在国民经济和人们日常生活中发挥着越来越重要的作用,软件工程师的道德行为规范成为备受关注的问题。
下面是软件工程师十个“不职业”行为。在一些特定领域工作的人们可能会认为这些不具有非常广泛的代表性。例如,IEEE和ACM联合发布的关于软件工程师职业道德规范里,认为软件工程师首先要遵守的是社会公众原则,即所开发的软件要给人类带来福利,不能制造类似于计算机病毒那样的具有危害性的软件。由此,制作病毒显然是最大的“不职业”。然而,在一般的商业型公司里这个问题不是最突出的,因此制作病毒并没有包含在本文列举的十大不职业行为之内。
行为一:对外交付半成品
我们的态度反映在我们的工作上,职业化的人士从不从自己手上交出不合格的工作产品。那些不职业的软件工程师满足于把工作做成半成品,等着让别人来纠正他们的错误。
开发者总是不好好做单元测试,没有确认自己的代码符合不符合要求,就盲目自信地认为没有问题,提交给别人供集成和测试。殊不知,没有经过单元测试的代码,往往在集成和系统测试阶段发现大量的问题,要修复这些问题需要付出更大的代价,这个代价比你自己发现并修复要大得多,给组织造成了巨大损失。
行为二:不遵守标准和规范
职业化的重要特征是遵守行业标准,不能肆意按照自己的想象来发挥。每个行业都有自己的技术规范,软件行业也同样如此,如IEEE发布的国际软件工程标准等;各个软件开发组织也有相应的代码规范、文档模板、代码审查清单等;有一定管理水平的软件开发组织还有相应的过程文件。
这些都是软件工程师在软件开发过程需要遵守的规定。特别强调的是,自人们认识到软件危机以来,无论是学术界还是工业界都在不断地总结出软件开发的失败教训和成功经验,并把他们总结成为最佳实践,进而形成标准,这些最佳实践是在大量实践的基础上提炼而成的,要充分利用这些最佳实践和标准指导自己的行动。
行为三:不积极帮助他人
技术人员最容易犯的错误是“保守秘密”,觉得自己开发的成果属于自己,不喜欢和别人共享。生怕影响自己在组织内的地位。
帮助别人也是帮助自己,这个简单的道理却被高智商的软件开发人士忽视。在其他行业中,帮助别人可能仅仅是一个美德,但在软件开发组织中,帮助别人还能为组织降低成本、缩短开发周期、提高产品质量,所有这些正是软件工程学科所研究、并试图解决的问题。
行为四:版权意识不敏感
我们既是软件的制造者,也是软件最积极的使用者。如果我们自身不遵守版权,就会给其他人造成极大的、负面的示范作用,也是对我们自己劳动成果的不尊重。在实际生活中我们看到太多的例子,大量的软件工程师盗版使用了其他公司的产品,并以此炫耀自己的能力。
不尊重版权的另一个例子是:不认真阅读开源代码的使用限制条款就随意使用;随便找到一个开发包,不问来龙去脉就嵌入到自己的系统;错误地认为它在组织内所做的工作成果是自己的,在离职后转让给他人;看到别人使用盗版软件不制止,而且还继续传播。
行为五:对待计划不严肃
软件工程强调计划性。在软件项目管理里,任何项目都要经过策划(Planning),策划的结果是项目计划。项目管理者跟踪项目计划的执行情况,记录计划执行过程中存在偏差的地方,对任何与计划有出入的想法都要事先经过评审和批准,然后才能付诸行动。
因此计划是严肃的。计划是大家沟通的平台,是检查项目状态(Project Status)的依据,也是控制项目变更的手段。计划还是一种承诺,因为策划过程是所有开发者都参与的,或者是征求过开发者意见的,承认了计划中的各种安排,就意味着你已经对外承诺了这些。
软件计划具有难以精确估计并动态变化的特性,因此需要我们软件工程师更加严肃地对待计划,而不应该成为我们不按计划行事的借口。
行为六:公事私事相混淆
公私分明是职业化的另一个重要特征。利用公司设备做自己的事情;在上班时间浏览自己感兴趣、和工作无关的网站,如上班炒股票,都是不职业化的行为和习惯,属于假公济私。
反过来也一样是不职业的:用自己私人的设备处理公司的事务,用免费的邮箱发送和接收公司的邮件;带个人的电脑来办公室处理公司的业务。这样做,可能给组织的软件安全性造成危害,也可能对组织的工作造成麻烦、惹出版权官司。在公和私之间画上一道红线,做到公私分明,是职业化软件工程师必备的素质。
行为七:不注意更新自己
职业的与非职业的软件工程师一个重要区别就在于职业化的人士经常学习,不断更新自己的知识,保持自己在本行业的竞争能力。
我接触到的很多工程师,他们想走捷径,对技术浅尝辙止;知其然不知其所以然;他们畏难而退:不想在一线战斗,喜欢搞他们想象的所谓的管理;想做测试,因为他们错误地认为测试对技术的要求不高„„这些都是和职业化的软件工程师很不相称的。
行为八:不主动与人沟通
沟通,在软件开发领域,是责任问题,不是性格问题。
不主动沟通,其背后隐藏的更为重要的原因是工程师的责任感不够。主动和上级、同行、下属沟通是职业化所必需的,因为软件开发需要团队协作,任何一个工程师的工作都可能会影响别人,进而影响全局。软件工程的实践表明,个别人缺乏主动沟通,往往导致整个团队的技术方案出现偏差,或整个项目的进度受到影响。
报告(Report)是沟通的一个方式,有时显得特别重要。当你承担的任务进展顺利的时候,要报告;特别当任务进展遇到困难、可能会影响别人或引起变更的时候,更要报告。配合项目经理和QA人员跟踪项目的计划执行情况,是每一个工程师分内的职责。
行为九:不遵守职场规则
一些工程师不能很好地遵守软件行业的职场规则。比如:互相告知或打听工资和奖金的多少;离职时带走公司的源代码和文档;或急于到新单位工作而不专心交接等等。
软件计划的不精确性,导致开发任务的分布不均匀,特别是重要里程碑(如产品发布)之前,往往需要一定程度的加班。对此,职业化的软件工程师应给予理解和配合。
行为十: 不够诚实和正直
配合项目经理做好计划是工程师不可推脱的职责。进度的安排是根据任务承担者的经验、水平来确定的,对所安排的任务,工程师本人应该有比较正确的判断。实际工作中,却
碰到有些工程师一天能完成的任务故意说成是两天,为自己争取到过分宽松的环境。虽然,也有组织要求软件工程师对工作量和进度有一定的判断和估计能力,但这和故意虚报计划的性质是不一样的,前者是水平问题,后者是诚信问题。
工程师的正直来自于强烈的社会责任感。只有维护行业的道德水准和职业规范,软件行业才能持久健康发展。牺牲职业道德和规范水准,换来了暂时的经济利益,伤害的却是整个软件职业的荣誉和信任度。
注:本文由唱歌软件http:// 收集整理供稿,如需转载,请注明出处。
第三篇:软件工程师职业分析
软件工程师职业分析
首先什么是软件工程师?软件工程师主要进行软件前期的项目需求的分析,然后对项目进行风险评估并试图解决这些风险,然后开始进行软件的开发,后期对软件的进度做相关的评估。软件工程师是从事软件开发相关工作的人员的统称。它是一个广义的概念,包括软件设计人员、软件架构人员、软件工程管理人员、程序员等一系列岗位。这些岗位的分工不同,职位和/或级别不同,但工作内容都是与软件开发生产相关的。
软件工程师是IT行业需求量最大的职位,稳居IT行业职位需求TOP10的第一位(第二位是高级软件工程师)。软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)、.NET平台技术、C#、C/S B/S程序开发,还有诸多如JAVA SCRIPT、AJAX、HIBERNATE、SPRING、J2EE、WEB SERVICE、STRUTS等前沿技术。
除此之外,关于网络工程和软件测试的其他技术也要有所涉猎,以利于操控全局。软件工程师可谓是软件项目开发的掌舵者。一名优秀的软件工程师应当具有较强的逻辑思维能力,对于技术的发展有敏锐的嗅觉。虽然要求技术全面,但无须偏执于门门技术都精通,任何软件工程师都有自己的技术特长和偏向,对于自己手中的技术,可有精通-掌握-熟悉-了解之分,根据工作需要和职业发展的具体情况来划分。
从最新的数据看出目前软件行业成为目前最热的行业之一,3G工程师、嵌入式工程师、Java软件工程师、.net软件工程师的开发前景怎么样,成为我们即将毕业的大学生们最关心的问题,下面笔者就从这四个方面分析软件开发工程师的就业前景,参考来源《2013-NIIT软件行业分析》;
3G工程师就业前景分析:中国被世界公认为全球最大的3G移动市场,但是,3G相关的人才却严重失调。专业从事3G应用软件开发从业人员不足千人,据工信部预测,仅2010年,中国3G人才市场缺口就在100万以上,其中3G软件工程师缺口就在50万左右。
3G人才短缺现状,使得3G行业已经成为新的高薪行业,基于3G软件开发人员变得格外抢手。人力资源专家表示,3G软件开发是未来几年最热门和最受
欢迎的职业之一。根据前程无忧网发布的薪资报告,具有10年工作经验的高级嵌入式软件工程师年薪在30万元左右。即使是初级的嵌入式软件开发人员,平均月薪也在5000元左右,中高级的嵌入式软件工程师月薪平均已超过万元,而且随着3G应用的进一步深入发展,3G软件研发人才的薪水还会进一步水涨船高!
嵌入式工程师就业前景分析:嵌入式领域较新,目前发展非常快,很多软硬件技术出现的时间都不太长(如ARM处理器、嵌入式操作系统、LINUX操作系统),大多数人没有条件接触或进入嵌入式行业,更谈不上能有机会接受专业人士的指导。因此,踏进这个行业的难度比较大,嵌入式人才稀缺。
权威部门统计,我国嵌入式人才缺口每年50万人左右。根据相关的的调查报告称,嵌入式软件开发是未来几年最热门和最受欢迎的职业之一,具有10年工作经验的高级嵌入式工程师年薪在30万元左右。即使是初级的嵌入式软件开发人员,平均月薪也达到了3000-5000元,中高级的嵌入式工程师月薪平均超过10000元。
Java软件工程师就业前景分析:目前,虽然Java人才的薪水很高,但是对该类人才需求旺盛的IT企业却很难招聘到合格的Java软件工程师。其中,最根本的原因就是许多计算机专业的毕业生在读期间没有掌握实用的技能与经验,距离企业的实际用人要求有较大的差距。因此,计算机专业的大学生欲成为Java软件工程师,最便捷的一条路就是参加以实战项目为主要教学方法的Java职业技能培训,从而有效地缩短同企业具体用人要求之间的差距。Java软件工程师的未来发展方向大致分为两类: 一是成为管理人员,例如产品研发经理,技术经理,项目经理等;
二是继续他的技术工作之路,成为高级软件工程师、需求工程师等。.net软件工程师就业前景分析:据有关权威部门统计,未来几年内我国软件行业的从业机会十分庞大,每年对软件人才的需求将达到 80万-100 万人,而现有行业从业人员只有 50 万人左右,专业开发人员不到25万,目前大部分院校出来的应届计算机系学生,真正能当年进入软件公司工作的只有10%~20%左右,缺口很大。
.Net作为新一代的程序开发语言其中的一员,同样也具有很多的优势,并且弥补了前一代语言的缺点,因而更加受到人们的喜爱。.Net具有很多明显的优点,可以提高开发人员的效率,减少bug,加快应用开发并简化使用。IT人员对.Net保持了应有的警惕,因为它毕竟还是个新事物,需要有一个比较艰难的学习曲线。但是对于大多数组织而言,其优点远远多于缺点。有了.Net,可以在未来的开发项目中赢得更高的生产力。越来越多的人开始加入到.Net学习的队伍中来,其中也有不少人参加培训。
第四篇:软件工程师职业规范
软件工程师职业道德规范和实践要求
原则
原则0守则
软件工程师的基本要求,树立软件产业界整体优良形象:
0.01自觉遵守公民道德规范标准和中国软件行业基本公约。
0.02讲诚信,坚决反对各种弄虚作假现象,不承接自己能力尚难以胜任的任务,对已经承诺的事,要保证做到,在情况变化和有特殊原因,实在难以做到时,应及早向当事人报告和说明;忠实做好各种作业记录,不隐瞒、不虚构,对提交的软件产品和及其功能,在有关文档上不作夸大不实的说明。
0.03讲团结、讲合作,有良好的团队协作精神,善于沟通和交流,在业务讨论上,积极坦率地发表自己的观点和意见,对理解不清楚和有疑问的地方,决不放过,在做同级评审和技术审核时,实事求是地反映和指出问题,对事不对人,要自觉协助项目经理做好项目管理,积极提出工作改进建议。
0.04有良好的知识产权保护观念,自觉抵制各种违反知识产权保护法规的行为,不购买和使用盗版的软件,不参与侵犯知识产权的活动,在自己开发的产品中不拷贝、复用未获得使用许可的他方内容。0.05树立正确的技能观,努力提高自己的技能,为社会和人类造福,绝不利用自己的技能去从事危害公众利益的活动,包括构造虚假信息和不良内容、制造电脑病毒、参与盗版活动、非法解密存取、黑客行为和攻击网站等行为,提倡健康的网络道德准则和交流活动。应大力鼓励和提倡利用自己的计算机知识,积极参与科学普及活动和应用推广活动。
0.06认真履行签定的合同和协议规定,有良好的工作责任感,不能以追求个人利益为目的,而不顾协议合同规定,不顾对已承诺的项目开发任务的影响,甚至以携带原企业的资料提高自己的身价。应自觉遵守保密规定,不随意向他人泄露工作和客户的机密。
0.07面对飞速发展的技术,能自觉跟踪技术发展动态,积极参与各种技术交流、技术培训和继续教育活动,不断改进和提高自己的技能,自觉参与项目管理和软件过程改进活动。能注意对个人软件过程活动的监控和管理,积累工程数据,研究和不断改进自己的软件生产效率和质量,并积极参与发展高效的团队软件过程管理,使各项软件产出,都能达到国际和国家标准与规范。
0.08努力提高自己的技术和职业道德素质,力争做到与国际接轨,提交的软件和文档资料能符合国际和国家的有关技术标准,在职业道德规范上,也能符合国际软件工程师职业道德规范标准。
原则1公众
软件工程师应当以公众利益为目标,特别是在适当的情况下软件工程师应当:
1.01对他们的工作承担完全的责任;
1.02以公众利益为前提,合理分配软件工程师、雇主、客户和用户的利益;
1.03批准软件,应该在确信该软件是安全的、符合规格说明的、经过合适测试的、不会降低生活品质、不影响隐私权或者有害环境的前提之下;
1.04当他们有理由相信有关的软件和文档,可以对用户、公众或环境造成任何实际或潜在的危害时,应该向适当的人员或当局举报;
1.05通过合作解决由于软件本身及其安装、维护、支持或文档引起的社会严重关切的各种事项;1.06在所有有关软件、文档、方法和工具的申述中,特别是与公众相关的,力求公正,避免欺骗;1.07认真考虑诸如使用者身体残疾、资源分配限制、经济贫困和其他可能影响软件使用的各种因素;1.08应致力于将自己的专业技能应用于公益事业和公共教育。
原则2客户和雇主
在保持与公众利益一致的原则下,软件工程师应注意满足客户和雇主的最高利益,特别是在适当的情况下软件工程师应当:
2.01在其可胜任的领域提供服务,对其经验和教育方面的不足应持诚实和坦率的态度;
2.02不使用非法或非合理渠道获得的软件,不明知故犯;
2.03 在客户或雇主知晓和同意的情况下,只在准许的范围内使用客户或雇主的资产;
2.04 保证他们所遵循的文档是按要求经过授权批准的;
2.05只要工作中所接触的机密文件不违背公众利益和法律,对这些文件所记载的信息须严格保密;2.06根据判断,如果一个项目有可能失败,或者费用过高,或违反知识产权法规,或者存在其它问题,应立即确认,将文档记录、收集的证据和报告提交客户或雇主;
2.07当他们知道软件或文档有涉及到社会明显关切的问题时,应进行确认,并将文档记录和报告提交给雇主或客户;
2.08 不接受不利于当前雇主工作的外部工作;
2.09不提倡与雇主或客户的利益冲突,除非出于符合更高道德规范的考虑。在后者情况下,应通报雇主或其他涉及这一道德规范的适当的当事人。
原则3产品
软件工程师应当确保他们的产品和相关的改进符合最高的专业标准,特别是在适当的情况下软件工程师应当:
3.01 努力保证高质量、可接受的成本和合理的进度,确保任何有意义的折衷方案是雇主和客户清楚和接受的,且从用户和公众角度是适合的;
3.02确保他们所从事或建议的项目有适当和可达到的目标;
3.03识别、定义和解决他们工作项目中有关的道德、经济、文化、法律和环境问题;
3.04通过适当地结合教育、培训和实践经验,保证他们能胜任正从事和建议开展的工作项目;3.05保证他们在从事或建议的项目中使用合适的方法;
3.06只要适用,遵循最适合当前工作的专业标准,除非出于道德或技术考虑,并在可认定的情况下才允许有所变通;
3.07努力做到充分理解所从事软件的规格说明;
3.08保证他们所从事的软件说明是良好的文档、可满足用户需要和经过适当批准的;
3.09保证对他们从事或建议的项目,做出实际和定量的估算,包括成本、进度、人员、质量和输出,并对估算的不确定性做出评估;
3.10确保对其从事的软件和文档资料有合适的测试、排错和评审;
3.11保证对其从事的项目,有合适的文档,包括列入从中发现的重要问题和采取的解决办法;
3.12开发的软件和相关的文档,应尊重那些受软件影响的人的隐私;
3.13谨慎使用从正当、合法渠道获得的精确数据,并保证只在准许的范围内使用;
3.14注意维护那些容易过时或有出错情况时的数据的完整性;
3.15 处理各类软件维护时,应保持与开发时一样认真的职业态度。
原则4判断
软件工程师应当维护他们职业判断的完整性和独立性,特别是在适当的情况下软件工程师应当:4.01所有技术性判断应服从支持和维护人类价值的需要;
4.02只有在对本人监督下准备的文档,或在本人专业知识范围内并经本人同意的情况下才签署文档;4.03对受他们评估的软件或文档,应保持职业的客观性;
4.04不参与欺骗性的经济行为,如行贿、重复收费或其他不正当经济行为;
4.05对无法回避和避免的利益冲突,应告示所有有关方面;
4.06当他们、他们的雇主或客户之间存有未公开和潜在利益冲突时,拒绝以会员或顾问身份参加与软件事务相关的私人、政府或职业团体;
原则5管理
软件工程的经理和领导人员应赞成和促进对软件开发和维护合乎道德规范的管理,特别是在适当的情况下软件工程师应当:
5.01对其从事的项目保证良好的管理,包括提高质量和减少风险等有效手段;
5.02保证软件工程师在遵循标准之前便知晓它们;
5.03保证软件工程师知道雇主是如何保护对雇主或其他人保密的口令、文件和信息的有关策略和方法;5.04布置工作任务应先考虑其教育和经验有相应的水平,再加上有进一步教育和成长的要求;
5.05保证对他们从事或建议的项目,做出现实和定量的估算,包括成本、进度、人员、质量和输出,并对估算的不确定性做出评估;
5.06在雇佣软件工程师时,需实事求是地介绍雇佣条件;
5.07提供公正和合理的报酬;
5.08不能不公正地阻止一个人取得可以胜任的岗位;
5.09保证对那些在软件、过程、研究、写作、或其它知识产权的所有权方面做出贡献的软件工程师,有一个公平的协议;
5.10应对违反雇主利益或道德观念的指控,提供正规的听证过程;
5.11不要求软件工程师去做任何与道德规范相违背的事;
5.12不能处罚对项目表露出道德关切的人;
原则6专业
在与公众利益一致的原则下,软件工程师应当保证其专业的完整性和声誉,特别是在适当的情况下软件工程师应当:
6.01协助发展一个适合执行道德规范的组织环境;
6.02推进软件工程的共识性;
6.03通过适当参加各种专业组织、会议和通过出版物,扩充软件工程知识;
6.04作为一名职业人员,支持其他软件工程师努力遵循本道德规范;
6.05不以牺牲职业、客户或雇主利益为代价,谋求自身利益;
6.06服从所有监管作业的法规,除非这种要求与公众利益有不一致时例外;
6.07要精确叙述自己所从事软件工作的特性,不仅避免错误的断言,也要防止那些可能造成猜测投机、空洞无物、欺骗性、误导性或者有疑问的断言;
6.08对所从事的软件和相关文档,负起检测、修正和报告错误的责任;
6.09保证让客户、雇主和主管人员知道软件工程师对本道德规范的承诺,以及这一承诺带来的后果和影响;
6.10避免靠近与本道德规范有冲突的业务和组织;
6.11 要认识违反本规范是与成为一名专业工程师不相称的;
6.12在出现明显违反本规范时,应向有关当事人表达自己的担忧,除非在没有可能、会影响生产或有危险时才可例外;
6.13当与明显违反道德规范的人无法磋商,或者会影响生产或有危险时,应向有关当局报告;
原则7同行
软件工程师对其同行应持平等、互助和支持的态度,特别是在适当的情况下软件工程师应当:
7.01鼓励同行遵守本道德规范;
7.02在专业发展方面帮助同行;
7.03充分信任和赞赏其他人的工作,杜绝追逐不应有的赞誉;
7.04评审别人的工作,应客观、直率和进行适当的文档记录;
7.05持良好的心态听取同行的意见、关切和抱怨;
7.06协助同行充分熟悉当前的标准工作规范,包括保护口令、文件和保密信息等有关的政策和规定,以
及其他常规的安全措施;
7.07 出于客户、雇主或公众利益的考虑,软件工程师可以以善意态度质询同行的胜任能力,但不要以不公正的手段干涉同行的职业发展;
7.08在出现超越本人胜任范围的情况时,应主动征询其他熟悉这一领域的专业人员的意见;
原则8自身
软件工程师应当参与终生职业实践的学习,并促进合乎道德的职业实践方法,特别是软件工程师应不断致力于:
8.01深化他们的开发知识,包括软件的分析、规格说明、设计、开发、维护和测试、相关的文档,以及开发过程的管理;
8.02提高他们在合理的成本和时限范围内,开发安全、可靠和有用质量保证的软件的能力;8.03提高他们编写正确、有技术含量的和良好的文档能力;
8.04提高他们对所从事软件和相关文档资料,以及应用环境的了解;
8.05提高他们对从事软件和文档的有关标准和法律的熟悉程度;
8.06提高他们对本规范,及其解释和如何应用于本身工作的了解;
8.07不因为某些难以接受的偏见而不公正地对待他人;
8.08不影响他人在执行道德规范时所采取的任何行动;
8.09要认识到违反本规范是与成为一名专业软件工程师不相称的;
第五篇:软件工程师职业分析
软件工程师
一、职业简介
我是中国科学技术大学07级计算机学院的学生,我的专业是计算机科学技术。科大的计算机研究软件多于硬件,而且鉴于我的专业和兴趣以及今后的发展,我选择研究的职业是——软件工程师。
软件工程不等同于软件开发或者简单的编程工作,软件工程是一个工程学科,其指导意义较之软件开发更为广泛。有一个比较贴切的比喻:把一款软件比做一座大桥,那么软件工程师相当于施工总指挥,而一般的软件开发人员相当于建筑工人!
其次,我说软件工程是一个工程学科,但它同时也是一个管理学科,你必须学会怎样来领导你的小组是他们能够完全理解贯彻你的意图。应此必须具有良好的沟通能力当然这个东西不是读一本书参加一个培训班就能作到的,这要依赖于平时的培养。
另外,不要以为你掌握了软件工程的理论就一定能做软件工程相应的事情,软件工程只是一个理论一个知道思想。搞软件开发的都必须了解这些基本理论并在平时的工作中认真的去贯彻执行。
二、典型的生涯路径
我将软件工程师的职业路径分为三个阶段:
(1)初级阶段:在这个阶段,所作的工作相当于普通的软件开发和编程人员,主要进行一些小的程序开发,熟练技术工作,学习一些与自己工作发展方向有关的技术知识。这是为以后在技术工作方面取得成就的基础阶段。
(2)发展阶段:逐步在公司的一些大型研究项目中发挥更加重要更加核心的作用,对于大部分编程语言以及算法能熟练掌握,对于技术运用纯熟,成为软件开发的高级人才。(3)高级阶段:由技术型人才逐渐向管理型人才转化,由于自己的技术能力以及管理经验在自己的工作领域成为公司的中坚力量,能领导一些企业大型项目,对于自己的研究项目有独到的见解,传授刚刚进入职场的职员一定的工作经验。为企业以及该领域培养后备力量,这是职业生涯路径的最后阶段,也是职业生涯路径最辉煌的阶段。
大致的职位路径:程序员——助理工程师——工程师——高级工程师——企业CEO
三、发展趋势
信息产业是二十一世纪最具发展前景的工作领域之一,随着经济技术的持续快速发展,信息技术越来越展现出其突出的重要性,二十一世纪是信息时代,所以计算机科学也必然有着广阔的市场与发展前景,再加上3G时代即将到来,未来对于软件=工程师的需求量也会越来越大。08年至今金融危机席卷全球,软件计算机行业也受到了很大的冲击,大量计算机人员失业。IT业就业压力增大,但这并不意味着计算机人才已经饱和!虽然整体上IT业不是很景气,但对于高级软件工程师的需求从未减少过,相比反而增长!只是大部分高校毕业生难以满足各企业以及机关需要,缺少实际应用型人才。所以从总的趋势来看,只要认真学好基础课,提高自己的应用与就业能力,未来的信息产业的发展还是十分光明的。
四、薪水水平
薪水往往与其工作经验有较大的关系。按照上文所说的不同的工作阶段基本可以划分不同的薪金水平。按科大毕业生的水平来说,本科毕业生直接进入到IT行业平均月薪可以达到四五千,博士毕业生可以拿到15万-20万的年薪,主要是因为博士生已经在学校里有了很长时间的研究和工作经验。虽说薪金水平和工作经验有关,但软件方面的工作可以被称为“青春饭”,因为这项工作压力较大,耗费精力也很多。随着年龄的增长,一些把握住机会的人的薪金可以达到很高的水平(50万-100万),并且呈上升趋势,而那些没把握住机会的人,他们的薪水并不会有较多的增长。
五、所需要的技能(1)编程能力
编程能力是软件工作人员最基本也是最典型的能力,软件工作人员至少熟练掌握两到三种开发工具的使用,其中C/C++和JAVA是我重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在。
(2)软件工程
作为一个软件工程师,他应该具备一些普通程序员所没有的素质或者技能,软件工程就是这项技能。现代大型软件系统的开发中,工程化的开发控制取代个人英雄主义,成为软件系统成功的保证,一个优秀的软件工程师是将出色的编程能力和开发技巧同严格的软件工程思想有机结合,编程只是软件生命周期中的其中一环,优秀的软件工程师应该掌握软件开发各个阶段的基本技能,如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。
(3)英语知识
由于计算机是美国人发明的,并且我们现在所用的系统都是国外的,很多软件也是国外软件工程师编出来的,我们想要看懂操作系统的源代码、想要理解那些优秀软件的编程思想、想要编写出好程序,就必须要有过硬的英语基础!仅仅一张4级或6级的证书是远远不够的!
六、雇佣机构
对于软件开发这个反映世界发展前沿的产业,高科技、信息化是其代名词。但是由于计算机技术的快速发展,信息产业几乎涉及生活中的方方面面,可以从事合资企业、金融服务业、制造业、商品流通业、服务业的信息采集、分析和处理、网络营销、商品进出口业务操作、网站的维护、信息安全等许多产业方向。所以雇佣机构也十分广泛,雇佣机构多为高新企业,其中包括多数中外合资企业。也包括政府机构,军事部门等。
七、妇女与少数民族
本职业对男女、民族没有限制,但为男性较多,同等情况下,女士在竞争时略有劣势。
八、被雇佣过程
以科大学生来谈,主要的就业途径是参加企业招聘会并向中意的企业投简历,并参加笔试或面试来竞聘。也可以通过实习等方式参加工作。
九、工作条件
软件工程师的工作主要都是在办公室内面对着电脑完成的,软件行业是很艰苦的,时时刻刻都面临着各个方面的激烈竞争,所以工作压力很大,加班工作是经常发生的事情。由于常需要合作交流,出差甚至出国机会也很多。甚至很多大型企业要求员工长期在外工作。
在工作初级阶段,与客户交流机会不会太多,但此工作需要团结协作,所以与员工领导交流较多,但随职位发展,与客户的良好交流也成为必备的素质之一。
十、教育/培训
软件开发技术以及程序开发人员往往在工作前就拥有良好的知识背景,但学习培训对于此职业来说也是比较重要的,很多大公司为了增强职员的能力和归属感,帮助职员了解最新技术开展一定的培训工作。但一般每次培训工作不会经历很长时间,对于很多初级工作者来说,培训是经常经历的也是很重要的发展阶段。
十一、证书/资格证
要求具有国家计算机等级资格证书,具体工作会有不同的等级要求(科大学生不需要,名牌大学的优势„„)。软件工程师还要通过“软件工程师资格考试”,拿到证书。在职业高级阶段拥有国家高级工程师是我的目标。但是,对于软件开发而言,具有真正的工作能力才是最重要的。
十二、组织关系
由于软件开发技术工作的可工作领域十分广泛,所以具有一定能力水平的网络技术工作者会在社会的各个方面发光发热,对于杰出人才,在国防、软件开发等等方面都会有较大成就与广泛的组织会员关系。
十三、前景
虽然经过金融危机的冲击,IT业受到了巨大的冲击,但是我对我所向往的职业的就业前景还是比较乐观的。以IT中心地带北京市来看,北京市人事局发布近期的人才市场供需情况的排名却显示,用人单位招聘专业职位数量排名前20位的依次是:市场营销、行政管理、财会、土建、机械与仪器仪表、企业管理、国际经济、计算机网络、计算机应用与维护、翻译、计算机软件、医药卫生、轻工粮食食品、人力资源管理、通信工程、自动控制、环境工程、广告、材料、化工制药。计算机软件排在11位。就其排名来说,不是很理想,但是,根据软件开发行业实际情况来说,现在的就业情况还算乐观。
据有关权威部门统计:将来几年内我国软件行业的从业机会十分庞大:中国每年对软件人才的需求将达到35万-40万人左右,而每年高校培养出来的计算机相关专业的毕业生只有6万人左右。而处于软件人才金字塔结构的底部的软件“蓝领”,需求自然是最大。
十四、对生活方式的影响
由于这个工作工作时间较长,压力较大,可能会影响自己与家人的相处时间,相应的休闲时间也会相应减少。很多软件工程师无奈走入“单身贵族”的行列。但总的来说,还是会有一定的空余时间供自己支配。总之,这种职业的生活节奏是比较快的,尤其是在外企工作,工作压力较大,对于自己的婚姻、家庭、休闲也会受到一定的影响。
十五、总结
结合目前我所学习的专业以及我自己的兴趣爱好,软件工程师比较符合我今后的工作方向,但是这项职业毕竟是青春饭,在步入中年之后,工作以及生活压力会逐渐加大,所以我希望在此职业有一定的业绩后,逐步向管理者迈进,最好可以拥有自己的事业。虽然这项工作压力较大,但我对这项工作的前景感到乐观,虽然竞争比较激烈,但只要把握好自己,按照自己的规划努力学习,相信一定会取得成功。
任何成功的道路都不是一帆风顺的,做这份职业同样如此,但我相信我会做好这份职业,也相信这份职业会适合我,帮助我一步一步的实现我的人生理想。