近期热点
·信息网络安全防范的几种措施
·企业网络安全的规划设计与实践
·网络安全之我见
·制造执行系统(MES)的应用与发展
·PDM与CAX、ERP集成技术研究
·微波EDA电磁仿真软件应用
 相关文章
·网络环境下的科技研发管理系统建设
·透视企业研发管理五大误区
·项目管理如何应用在涂料企业新产品研发中
·项目计划管理在软件研发中的应用研究
·SmarTeam在汽车研发部门的应用
·产品研发PDM理念演变
 相关博客
·跨越中国设计师的供求鸿沟
·中国航空工业深度分析报告
·美国兰德公司最近对中国评价(转帖)
·中国神马集团实施红帆OA提升国际竞争力
·中国企业为什么做不大?核心因素是塌陷的用人观!
·也谈什么国产PLM软件厂商做不大?
 相关新闻
·
甲骨文在上海建立研发中心
·
SAP全球研发技术大会正式登陆中国
·
清软英泰携手京城重工共同打造研发体系管理平台
·
TH-PDM化解互联网带宽瓶颈,实现异地数据同步
·
07年电子发展基金招标出炉 TD研发再次为赢家
·
“精益环球研发,引领创新中国”高层研讨会成功举行
 相关热贴
·交大MBA学生研发新型密码输入技术
·[推荐]PTC 9月20号世界顶尖汽车制造商产品研发管理网络会议演讲PPT——(图片版)
·专业的模具软件研发公司欢迎您!
·UGS上海研发中心招聘Teamcenter核心开发人员
·南京东大软件公司PDM销售研发厂家
·我有个同学是在上海Infor公司做研发的,咱们请他来讨论一下,如何?
 相关商城商品
 
 
当前位置:企业管理 -> 研发管理
 
中美两国软件开发管理的比较与启示
——《CVS和Nightly Build技术》序文
发表时间:2006-8-16 杨锦方   来源:希赛博客
关键字:研发 软件 中国 
一些非常有价值,实施起来代价相对较低的技术,能够帮助国内许许多多的软件公司走出作坊时代,进入软件开发流程化的阶段。

    在美国学习和工作期间,我注意比较了中美两国软件公司在软件开发管理和技术方面的不同之处。下面以我在硅谷一家从事企业语音识别平台软件开发的公司工作的经历为例,介绍我的一些观点。
   
    第一,软件工程师年龄和经验的反差。我工作过的是一家NASDAQ上市公司,公司只有5年时间,但是近一半的软件工程师、软件项目经理和软件设计师都不算很年轻,并有着5年以上的软件开发经验(不包括在校期间的经验)。其中部分软件设计师(softwarearchitect)更是年龄在35岁以上(有的甚至已经45岁),有着15年以上的软件开发经验。在开发过程中,这些软件设计师的经验成为公司的宝贵财富。他们在多年开发过程中积累的大量经验、教训能够让系统在设计阶段就避免许多后来让人走弯路的事情。权威的软件工程专家RogerS.Pressman在他的SoftwareEngineering:口practitionerapproach一书中指出,软件质量保证体系最重要的是软件项目刚刚开始的需求和设计阶段。反观国内的软件工程师,绝大部分是刚从学校毕业不久,而且多半的软件工程师都定位在将来做管理者,这样,经验无法积累,低水平重复的现象就在所难免了。
   
    第二,软件开发管理职位设置的差异。在国内,软件公司通常只指派一位项目经理,由他全面负责单个项目的开发和管理工作。如果项目经理不是技术高手,手下的软件工程师们就会有牢骚,如“凭什么你没我水平高,却坐着比我高的职位,拿着比我高的薪水?”这使得许多软件公司雇佣技术高手担任项目经理。他们中许多人缺乏管理方面的能力和意识,由他们领导的软件开发难以实现规范化和工程化。实际上,项目管理更多的是需要管理技能而并非开发经验,而管理水平高的人大多数并不擅长技术,更有一些管理人员原来不是受高等计算机专业教育出身,而是半路出家。在美国,我接触过的所有软件公司(或者有软件研发部门的计算机、通信技术公司)的软件项目小组都设有两个管理者的职位:软件项目经理(proiectmanager)和软件设计师(softwarearchitect)。软件项目经理负责小组人力资源、激励、非技术方面的管理,并向上级负责。软件设计师负责项目的规划设计、技术方案选择等并为此负责。就像项目经理有一个职业发展道路,从项目经理到部门经理,再到总经理,甚至总裁一样,软件设计师也有其职业发展道路,从软件项目小组的软件设计师到软件部的软件设计师,再到公司的首席软件设计师。我想大多数人都注意到比尔·盖茨的头衔,是微软公司chairman和chiefsoftwarearchitect,也就是微软公司董事长兼首席软件设计师。可以想见,首席软件设计师的地位也是很高的。在更大规模的软件项目中,系统工程师(systemengineer)和测试部门是单独设置的。
   
    第三,开发管理应用软件水平的差异。美国绝大多数软件公司的软件开发管理应用了大量的先进软件,而国内的软件开发管理几乎是纯手工操作。本来,软件公司是为所有需要软件应用技术和解决方案的行业提供软件,其中也包括软件行业自身。具有讽刺意味的是,国内许多从事软件开发的公司为别人提供了非常有价值的软件,创造了很高的效益,却没有意识到(或者没有决心)自己也需要投资购买或者自行开发用于管理软件开发过程的软件。许多美国公司根据自己的实际需要,开发用于辅助软件项目管理的软件,例如,著名的电信设备制造商朗讯公司的大型软件工程管理软件(Sablime)就是自己开发的;许多软件工程师自己用脚本语言写小工具,优化工作流程,提高工作效率。本书的主题CVS系统正是从一些软件工程师在自己工作过程中写的一些脚本程序起源的。在美国,流行的脚本语言,如Peri、BournShell/CShell、Python、TCL/TK等应用非常广泛:而在国内,这些语言应用十分有限。
   
    第四,软件开发流程的差异。美国水平比较高的软件公司软件开发流程十分规范,技术文档和使用文档非常细致,量非常大。在大项目的开发过程中,各种各样的表格更是数不胜数。按照一位经理的说法,是“所有的事情都有文档记录”。不仅如此,美国更有technicalwriter(技术写作师)这个职业,许多公司聘用专门的技术写作师完成部分技术文档和使用文档,尤其是给最终用户使用的使用指南一类的文档,更需要专业水平才能达到实用和易用。国内这方面的差距较大:软件工程师视文档为负担:项目经理本身是软件工程师出身,更加没有动力实施这些规范;公司老总可能又不懂软件开发管理。于是低水平现状是想躲都躲不掉了。
   
    可喜的是,目前CMM认证正逐渐地在国内流行起来,有越来越多的软件公司重视流程。更重要的是,不把通过CMM认证作为目的,而是真正贯彻规范和经过实践证实有效的软件流程。不过,对于许多规模小、实力不强的公司而言,CMM认证负担太重,而且不一定实用。记得有一位中型软件公司的老总对我说,“CMM那些东西全都是文档,不管用。”这件事情可以得出三个结论:一是CMM这种先进管理技术真正得到认同还有一个过程,二是CMM的实用价值在一些管理阶段还不是太大,三是CMM可能的确需要进行适当的改造以适合中国的国情。
   
    我接触过国内许多软件公司,这些公司中的绝大部分其开发管理的混乱状况让我非常吃惊。我也一直听到这样的议论,“国内绝大部分的软件公司都是软件作坊,基础不行,软件业怎么发展壮大?”我相信造成国内软件业落后的原因是多方面的,但是,我们的确需要认真思考如何补上提高软件开发管理水平这一课。
   
    有人说,中国的软件工程技术水平低下和中国人的特点有关系。我认为这是无稽之谈,是为管理水平过于低下找借口。在国外,同样是中国人做软件工程师,同样是中国人做软件研发管理,为什么他们做得那么出色,赢得同事们的尊敬?
   
    我接触到的中小型软件公司大部分都抱着提高开发管理水平的美好愿望,也有些公司在进行着各种努力。例如,CMM正在一些中、大型软件企业中兴起。但是,CMM流程模型引入的代价很高,而且在水平很低的情况下过分强调CMM中的模型恐怕也没有太大价值。CMM的有效实施实际上是建立在强大的CASE工具基础之上的。
   
    我在美国软件公司的工作经历告诉我,有一些非常有价值,实施起来代价相对较低的技术,能够帮助国内许许多多的软件公司走出作坊时代,进入软件开发流程化的阶段。这就是我们准备写作出版“软件研发管理技术丛书”的主要目的。真切地希望这套丛书能够为广大软件工程师和软件公司带来实实在在的变化。

 责任编辑:张敏