大部分组织都有需要竞标的软件项目。
投标要求软件必须在短时间内开发,并具有一定的质量。
软件开发又快又好,说起来容易,做起来总是顾此失彼——软件如期拿出来,竞标现场演示却暴露出测试不足,Bug持续的问题,投标结果可想而知。
所以,软件开发能否实现又快又好呢?
也许我们可以借鉴谷歌的软件开发经验。
谷歌作为一家大型跨国公司,仍然保持着和初创小公司一样的发展效率。他们是怎么做到的??
Google一直贯彻敏捷开发的理念,坚持开发与测试混合的原则,这大概是软件开发又快又好的解决方案。
- 开发测试混合
谷歌的测试人员很少,他们要求开发人员进行测试,尤其是单元测试和集成测试,主要由开发人员完成。因此,开发人员交付的软件产品已经具备了一定的质量水平,从用户的角度来看,系统测试的后续压力自然会减轻。
而且谷歌一直在实践测试驱动开发——在实现一个功能之前,先写一个测试代码,功能实现后一定要通过测试。
这种开发测试混合的开发方式比传统的先编码后测试的开发方式效率要高得多。
- 软件开发三个角色
开发人员的主要任务是实现软件的功能,让开发人员承担测试任务,这将增加开发人员的负担,从而可能导致开发人员因工期紧张而放弃测试。为此,谷歌成立了软件测试开发工程师。他的职责是审核开发人员的代码,制定测试框架,协助开发人员完成单元和集成测试。
软件开发者侧重于功能实现,软件测试开发工程师侧重于代码质量,两者合作确保软件开发快良好。
此外,谷歌的测试工程师从用户的角度负责系统测试。软件测试工程师关注软件的整体质量。
- 测试部门独立独立
谷歌的测试部门是独立于各业务部门的专注于产品质量的部门。这种设置可以避免测试人员从属于业务部门时,业务部门因工期压力而降低质量要求。
这种设置可以保证软件出厂时具有一定的质量水平。
- 共享代码库
谷歌公司建立了服务和代码共享库。当一个新项目开始时,可以从共享的服务和代码库中获得可重用的组件。
软件重用无疑会大大提高软件开发效率。
因此,如果要使组织的竞标软件项目又快又好地开发完成,可以向谷歌公司学习开发测试混合,实践软件重用。
这正是:
软件开发又快又好,这里浅谈解决方案
开发测试需要混合,软件重用不可或缺
参考书目:Google作者:(美)惠特克(Whittaker,J.(美)阿尔邦(Arbon,J(美)卡罗洛(Carollo,J),译者:黄利、李中杰、薛明、出版社:人民邮电出版社
作者简介:王小双,长期从事GJB5000推广、实施、评价、改进工作,创建软件工程之思微信公众号,共享软件工程之思GJB5000、CMMI、软件工程的知识和感悟。现致力于GJB5000咨询和软件流程改进和软件工程能力提高的研究工作。