开发效率主要取决于开发速度和开发质量,我们都希望速度越快越好,质量越高越好,也就是开发效率高,但明显速度和质量是鱼和熊掌不可兼得,所以提升开发效率就要从这两个角度去平衡了。
影响开发效率的因素太多了,我们就先来总结一下如何利用工具来达到目的。
开发工作中会用到各种工具,我们不妨将他们分分类。
用于支持业务建模、业务分析、架构设计、详细设计等活动的工具,比如Enterprise Architect、starUML等。这些工具往往会提供全程建模的支持,提供UML等图形化表示,甚至有的还能提供代码与模型的正反向工程,有利于复杂项目的模型管理和维护,有利于开发质量的得高。
这个不用多说了,是软件工程师用得最多的工具,比如Visual Studio、Eclipse等。开发环境为代码编辑、浏览、编译、重构提供了必要的支持,有利于开发速度的提高。
除了主要的开发环境以外,还有一些工具或以插件形式、或以独立应用的形式提供给开发人员,用以辅助开发,比如Findbugs、Visual Assist X等,是对开发环境有效的增强,对开发速度和质量都有提升。
测试是开发过程中必不可少的环节,测试工具的引入能提高测试的速度和质量,比如一些单元测试工具、自动化测试工具、压力测试工具等。
代码管理最大的好处就是维护历史版本,从而支持多人协同开发。有了代码管理,才可有效的部署持续集成工具,从而支持每日构建、快速迭代等开发模式。会带来质量的提升。
团队和企业的长期积累和沉淀,会形成一些可复用的类库,这些类库也可以看作是工具的一种,对提高开发速度和质量都有好处。
当然,还有太多的工具没有列进来,最重要的是我们可以看到,几乎在软件开发的全生命周期中都有工具的支持。还是那句老话,“工欲善其事,必先利其器”,如果通过有效的引入工具的话,可能是最易于看到开发效率提升的途径。
虽然有这么多工具支持,但是工具也是需要消耗成本的,主要的成本包括:
可见,使用工具是有代价的,这就提出了如何选择工具的问题。
有了这么多工具,但不能眉毛胡子一把抓,反而冲击了主要的开发工作。我认为在选择工具时可以遵循这样几个原则:
选择必要的工具。比如做移动应用开发的,往往在建模上没有必要像企业应用那样复杂,因此建模工具就不是必要的,可以采用手绘UML图存档或者借助简单的绘图工具即可。
选择合适的工具。同样是做移动客户端应用,为了画个类图,动用了IBM Rational Rose,就变成了大炮打蚊子了。这个问题普遍存在,一提到要先个工具,就奔着最贵的、最复杂的工具去了,结果支出了高额的成本,却未必能在开发效率的提升上产生收益。
选择符合团队环境的工具。工具是要人来使用的,因此务必要切合使用者的习惯、能力、文化氛围,同时也要符合团队采用的开发方法、开发过程。对采用结构化开发方法的团队引入面向对象建模工具会让大家无所适从,对敏捷开发的团队不使用持续集成也会为开发效果打折扣。
综合以上,选择正确的开发工具能很快带来开发效率的提升,是值得去重视、去尝试的一件事情。
——欢迎转载,请注明出处 http://blog.csdn.net/caowenbin ——