软件开发又快又好的解决之道
大多数组织都有需要竞标的软件项目。
竞标,就要求软件必须在短时间内就开发出来,而且还要具备一定的质量。
软件开发又快又好,说起来容易,做起来总是顾此失彼——软件如期拿出来了,竞标现场演示却暴露出测试不足,Bug不断的问题,竞标结果可想而知。
那么,软件开发能不能实现又快又好呢?
也许我们可以借鉴下谷歌公司的软件开发经验。
作为一家跨国大公司,谷歌目前仍然保持着如同初创小公司一样的开发效率。他们是怎么做到的呢?
谷歌一直贯彻敏捷开发的思想,坚持开发与测试混合的原则,这大概就是软件开发又快又好的解决之道。
开发测试混合
谷歌的测试人员很少,他们要求开发人员要会测试,特别是单元测试、集成测试,主要都是由开发人员完成。由于这样一来,开发人员交付的软件产品已经具备一定的质量水平,后续的站在用户角度的系统测试压力自然就减少了。
而且,谷歌公司一直实践着测试驱动开发——在实现一个功能之前,先编写测试代码,在功能实现后,必须通过测试。
这种开发测试混合的开发方式比传统的先编码后测试的开发方式效率要高得多。
软件开发三种角色
开发人员的主要任务是实现软件的功能,而让开发人员承担了测试任务,这会加重开发人员的负担,由此可能会造成开发人员因工期紧张只顾开发放弃测试的情况。为此,谷歌公司设置了软件测试开发工程师,他的职责是审查开发人员的代码,制定测试框架,协助开发人员完成单元和集成测试。
软件开发人员侧重于功能实现,软件测试开发工程师侧重于代码质量,二者协作确保软件开发又快又好。
除此之外,谷歌的测试工程师则是站在用户角度负责系统测试。软件测试工程师关注软件整体质量。
测试部门独立
谷歌公司的测试部门是独立于各业务部门的一个专注产品质量的部门。这样的设置可以避免因测试人员从属于业务部门时,业务部门因为交付工期的压力而降低质量要求的情况。
这样的设置可以确保软件出厂之时具备一定质量水平。
共享代码库
谷歌公司建立了服务和代码共享库。一个新的项目开始,都可以从共享的服务和代码库中获取可重用的构件。
软件重用无疑会极大地提高软件开发效率。
所以,如果要使得组织的竞标软件项目又快又好地开发完成,可以学习谷歌公司那样开发测试混合、实践软件重用。
这正是:
软件开发快又好,这里浅谈解决道
开发测试要混合,软件重用少不了
参考书目:Google软件测试之道,作者:(美)惠特克(Whittaker,J.),(美)阿尔邦(Arbon,J),(美)卡罗洛(Carollo,J),译者:黄利,李中杰,薛明,出版社:人民邮电出版社