随着企业应用开发竞争日益激烈,需求变更的更加频繁,而指导软件开发的方法学和各种软件过程也色彩纷呈,百花争艳。除却外部的激烈竞争环境,软件企业自身
也存在各种各样需要面对的难题:开发效率低下,品质问题突出。。。大家都在寻求能更好的方式解决这些问题提高企业的竞争能力的方法。这些方法大概可以分为
三类:1)提高开发人员的素质 2)规范开发过程和开发方法 3)寻找和利用工具;
对于第一种方法是各个企业追求的终极目标,提高开发人员的素质无外乎通过1)企业培训2)员工利用个人时间充电
3)高水平的项目锻炼。这三种方法对于企业和个人的投入都有要求,是最难实施也是最慢见成效的一种方法,但不管怎么样这是企业要获得持续发展的必然途径。
对于第二种方法是每个软件企业都在实施的一种通用的方法,现在存在着很多开发过程和开发方法,重量级的如:RUP(统一软件过程)、CMM、CMMI,轻
量级的如:自适应、水晶、XP等。这些方法和过程自身就是相互学习,互相融合,在企业实施过程中也都是结合各自的优点,形成自有的一套体系。企业在能够形
成自己一套行之有效的体系前必须不断经历尝试,裁减再尝试这样一个痛苦的过程的,是不可能一蹴而就的。最好的方法是就是从已经形成自有特色的企业处获得指
导。
第三种也是最为大家认同的:使用工具,工具使得执行开发过程变得简单。对于一些大家公认的开发过程的步骤,比如:代码规范:CODE STANDARD
# 测试驱动开发:TEST-DRIVEN DEVELOPMENT
# 日构建:DAILY BUILDING
# 持续集成:CONTINUOUS INTEGRATION
# 小步发布:SMALL RELEASE
我们都能找到工具很好的进行支持。这种方法除去学习工具所花去的时间,应该是最容易看见成效的。而且充分利用工具能够很快地帮助新手进入角色,比如说:利
用代码规范检测工具checkstyle,我们很容易帮助新手规范代码的编写,而不用我们人为地进行codereview检察代码规范。
所以,我的观点是尽可能地利用已有的工具遵循软件企业既定的软件开发过程来完善软件的开发,应该善假于物。