影响软件开发效率的12大杀手.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
影响软件开发效率的12大杀手

影响软件开发效率的12大杀手 ??2008年09月18日?14:47??IT168.com 【IT168 技术文章】   软件开发过程中,我们经常遭遇各种各样的问题,而本文就是要讲解这些问题中最棘手的12个。读完本文后,相信读者会对它们影响开发效率的原委有个初步的认识。 ?   我们发现,有很多的文章、书籍都在阐述软件的开发方法,为什么呢?个人以为那是因为提高团队的开发效率是一场永无止境的战争。软件的开发技术日新月异,开发 团队只能不停地适应这种革新(如果这个团队不是此项技术的领头羊),否则只能消亡。而适应很大的程度表现在效率和时间上,因为客户对软件质量的要求是越来越高,同时却不希望延长开发周期。   我们知道,随着软件外包的到来,同一个团队的开发人员可能来自不同的国家,他们处在不同的时区,有着不同的文化背景。和其它行业的人一样,开发人员往往喜欢把精力用在他们感兴趣的任务上面,却经常忽略了更重要的事情——开发效率。   在软件开发这个繁杂的世界里,作为一个项目经理,也作为一个开发人员,我碰到过各种各样的有趣的问题。这篇文章就罗列出了这些问题中最棘手的12个,并提供一些处理问题的参考意见。   1.维护的开销是效率最大的敌人   软件的维护需要很大的开销,它很自然地把开发团队带向低效。维护的开销往往和代码行数成比例,尤其当代码没有经过很好的测试的时候,这个情况尤为明显。开发团队会发现:随着代码行数的增加,bug的数目也会随之增长,当然,bug产生的原因包括内部因素和外部因素。内部因素的的确确是我们的代码的问题,而外部因素实际上并不是程序的bug,但是无论如何必须修正。   说得更详细点,外部因素可能是你调用的代码改变了,或者是运行环境改变了。例如,一段Java代码在JRE1.4下面工作得很好,客户要求它升级到JRE 1.5下也能运行。这个时候,如果不能运行,你可能会声明原因不在程序上。但是客户可不管那么多,站在他的角度上,这就是你的程序的bug。   实际上,完美的程序是不存在的,在做项目计划的时候必须考虑周全。因此,在开始编码之前,你就应该把维护的开销算到软件开发周期里去。甚至在思考怎样编码之 前就应该思考怎样去测试。而且,你还得考虑怎样让服务器自动测试你的代码——如果一个测试不能做到完全自动化,那么它只能算作半个测试。只有让测试做到完 全自动化,团队才能在新的环境里毫不费劲的测试自己的代码,也可以迅速高效地对测试进行扩展。   刚刚提到的,你必须找到一种可行的方法能够保证你的代码能够被自动地测试,的确如此,但这也是在单元测试中存在的一个问题,因为单元测试不可能面面俱到。事实上,如果对测试进行分层,测试的效率可能会大大提高(关于分层测试,将在后面作具体的阐述)。   2.开发人员讨厌测试,他们不按照测试的规范去做   代码在某个环境中能正常工作,就假想它在其它环境中也能正常工作,这是软件开发人员的通病。在现实生活中,这根本就是不可能的,可开发人员却生活在虚拟的完美世界中,他们认为这个世界里万事万物都是完美的,不可能遭遇任何的问题。例如,一个J2EE程序在JBoss下工作正常,开发人员往往理所当然地认为在WebSphere下也能正常工作,事实却未必。所以,开发人员有必要在所有的目标平台上测试代码。否则,程序就有可能无法通过。   我相信,你一定需要一个框架,使你的程序能够在任何平台下工作,而且能够把测试结果保存到数据库中。概括地讲一下过程:你写好各种语言的测试代码,它就可以 在各种平台下自动测试,保存测试结果。之后,你就可以查阅测试结果了。这个结果包括各个平台下、各个版本的代码的测试的历史。   据我所知,某些工具支持这些功能。例如,BuildBot 开源项目正在为之而努力,至少在不久的将来可以实现这个目标。   3.出现bug时,分析原因比修正错误更耗时间   当开发人员修改好代码,并把它提交到代码库里的时候,你必须反应迅速,及时地测试他(她)提交的代码,这样,如果测试不通过,开发人员就还记得他(她)刚刚修正过的地方,也很容易找到bug的原因所在。   时间一长,他可能就忘了,Bug出现时不得不查看代码历史,比较不同版本的代码,直到代码原因分析出来。很有可能光找原因就白白的耗费了几个小时,太不值得了!   4.开发人员在转换项目过程中花费了太多的时间   通常来说,搭建一个项目的开发环境是不容易的。如果对项目没有很好的了解,不具备一定的专业知识,要搭建好环境几乎是不可能的。如果仅仅是搭建环境就花费很 长的时间,开发人员往往更希望长期呆在同一个项目环境中。比较理想的状况是:开发人员有能力毫不费力的从一个项目转到另一个项目,不存在技术难题,“项目 文化”已经不是个难题了。   对此,我有个建议:使用项目管理工具,比如Apache

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档