通能力。对于规模大,生命周期长(特别是衍生生命周期长)的软件项目而言,德行更
重要。
德行的标准
软件开发离不开企业,企业的文化决定着程序员的行为规范,比较理想的企业文化
是:
沟通方式开放、自由、平等,个人长期发展和企业发展的有限度统一。这样的企业
文化,必然会造就具有长远眼光和冒险精神的将帅之才。
这方面的楷模是微软公司,该公司全球员工平均年龄只有28岁,无论在全球的哪家
公司,微软评判人才的标准都是相同的。挑选员工的第一标准是应聘者是否具有良好的
品德。微软认为,良好的品质是职业道德的基础。其次,看应聘者解决问题的能力如何
,在面对困难时是退缩,还是勇往直前,因为实际工作中常有新问题需要解决。第三,
要测试应聘者有没有快速学习的能力,日新月异的技术发展要求有快速学习能力。另外
,团队精神、责任心、工烂猛雹作热情、创新精神和独立工作能力都是必须的。
好的企业文化熏陶出来的程序员,必然是关注个人长远发展的职业精英,这样的程
序员必然会较早地设定自己的职业发展管道。比如:
管理序列:程序员->项目管理人员->中级管理人员->高级管理人员;
技术序列:程序员->高级程序员->需求分析师\\架构工程师\\质量管理;
市场序列:程序员->售前支持->销售;
与这样的个人职业发展管道相适应的个人技能是:
——软件基础理论扎实;
——系统分析与设计能力较强;
——具有熟练的系统开发、系统测试与系统维护技术和管理技能;
——较强的项目管理能力和交流与组织协调能力;
——在企业既能适应软件产品研发,又能适应项目管理岗位;
——具备独立工作能力和创新意识。
在项目开发过程中,有效沟通非常重要,沟通的形式多种多样,除了常见的几种方
式外,下面讲几种比较有特点的沟通方式:
* 历史和现在
如何最大程度地挖掘过去成果的价值,需要讲过去的成果(算法,code,设计思想等
)进行再组织,使之可以被快速检索。
* 标准化
“最好的沟通是没有沟通”,通过标准化的技术手段,使个人的输出可以被他人非
常容易地了解,这样可以避免沟通带来的效率低下。
* 技术一致性
软件技术的发展,使得程序员这个职业需要不断细分,这带来的最大问题是不同技
术间的互通问题。为此,在程序开发过程中,需要不断进行的技术预研变得越来越重要
。并且,只要满足功能需求,就采用最简单的实现技术。
* 简单性
程序规模变得越来越庞大的同时,修正Bug的代价程指数级增长。因此,饥帆尽量少用比
较容易犯错误的编程技术(比如C语言的指针),尽量采用简单(牺牲效率)的算法,接
口间尽量少一些“合并点”,将是非常有价值的。
不良的德行
尽管国内程序员有一些普遍的优点:比如有雄心壮志,面对困难时比较坚毅,理论
基础、尤其是数学功底扎实,编程能力强,吃苦耐劳、讲纪律、讲服从等。
而缺点也是突出的:创新精神不足,做事缺乏主动,独立从事研究的能力弱,对很
多事没有主见,而且有想法不直接说,对新知识了解不够,不善于与人交流,缺乏合作
精神。
还有一些缺点:不诚实——表现在答应了的事不去做;贪小便宜——用公司设备办
私事;不够踏实——急功近利,擅长做表面文章。
这些不良德行在实际的程序开发中表现如下:
* 滥用不变量,以自己模块调试通过为最高目的
大家知道,程序中到处存在着“瓶颈”,这些瓶颈是造成程序运行时不稳定的最重
要的因素之一。比方说,在模块接口间定义了一个用常数开辟的内存空间。消除这些瓶
颈要从几个方面入手:
——采用技术手段减少不变量的使用,不要给别人造成麻烦;
——集中使用不变量,方便自己的上司作出Bug修正决定;
——应用各种异常捕获机制,在不变量导致的异常出现点进行精确定位;
* 不尊重文档,契约意识淡薄
应该把文档看成法律合同,要认真书写,完全彻底地遵守。并且,一旦发现定义模
糊的地方,应该及时通报作者进行适当修正。
* 不写或少写知裂注释,小农思想严重
程序是共有的,模块是不能独活的,注释可以帮助测试人员和维护人员的工作,并
且,特别利于软件重用,最大限度地延长模块的生命周期;
* 不关心他人的进度,个人利益高于以前
开发进度的平衡是一个项目成功的重要标志。个人的能力是不平衡的,每个人的工
作量也是不平衡的。关心他人的进度,并在适当时机施以援手,将最大程度地消除开发
进度中“人的瓶颈”。要知道:团队成功是个人成功的前提;
* 不借鉴他人的闪光点,偏重技术,忽视德行,难成大器
创新分精神创新和内容创新。有一个有趣的现象,大家大概都经历过,比如:A在他
负责的模块内用了一个算法,得到领导表扬;B就另外写一个算法,可能B的算法要好,
但,站在整个项目的角度看,B的行为是有害的,因为他损害了沟通的效率(领导要分别
看两个算法,测试员要策两种算法,维护人员就更苦了)。
企业的德行
IT界普遍认为国内IT教育在课程设置上存在不足,比如课程陈旧,学生的动手能力
差,缺乏实践经验。很多企业抱怨,学生到了企业后,不好用,企业不得不再培训一段
时间才能用,所以,很多企业不愿选择应届生,而喜欢从社会上招聘。实际上是这样吗
?
这实际上反映了国内软件企业的规模比较小,偏重只有较短生命周期的应用软件开
发,所以,这些企业在自身资源有限和发展定位上的“鼠目寸光”决定了他们对人才需
求的的急功近利。
实际上,培养刚从学校出来的大学生是最合适的人才选拔方式。学生刚刚踏上社会
,对职业的理解可以从0开始塑造,这样建立起来的团队特别整齐。这可以从每年跨国公
司的校园招聘会上得到证明。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)