敏捷开发的实战经验
作者:网络转载 发布时间:[ 2013/12/31 15:33:44 ] 推荐标签:敏捷 开发
6、流水化安排开发环节与测试环节。
如何安排测试与开发,是从项目一开始我们反复思考和尝试的问题。经过一段时间的实践,我们目前采用流水化的方式来安排开发环节与测试环节。具体来说,是在开发sprint结束后再开始测试这个sprint的产出版本;而在开发的sprint内,开发团队解决上一个sprint的产出版本测试出的bug。虽然这意味着开发团队要在测试环节还未开始之时(Sprint计划会上),要估计并预留出上个sprint产出版本的bug修改时间,但在实际操作中,开发团队能够通过历史数据做出比较准确的估计。因此这种方式的效果是良好的。
7、版本发布基本按照sprint周期。
我们通常在一个或者多个sprint之后(在测试环节之后)发布版本。具体选取几个sprint往往会参考一些市场情况的考虑,比如说将一个做了较多重构的sprint与一个做了较多新功能开发的sprint打包作为一个新版本发布出来。我们基本上不会为某个大版本打乱我们的sprint周期。
8、Scrum需要配备合适的工程实践,例如单元测试、代码审核、持续集成、项目管理工具。
我们要求研发工程师必须要写单元测试和相互审核代码。测试驱动开发和结对编程目前还有许多争议,我们也不建议贸然尝试。在实践中,我们采用了简化版本,对可以写单元测试的模块都要求测试覆盖,并且通过测试覆盖率来量化单元测试的力度。此外我们将研发工程师两两结对,相互检查对方的代码,只有经过检查的代码才能终提交。
此外,我们对代码进行了持续集成。每天凌晨持续集成系统会自动下载前的代码,进行编译和部署。Web端会直接部署到Web测试服务器,而客户端(PC、iPhone、iPad、Android)会自动拷贝到一个内部服务器上。测试人员或者感兴趣的人每一上班可以用到新的版本。
关于Scrum的任务管理,我们采用过不同的项目管理工具,包括白板、开源软件等等。总的来说,工具只是简化了一些统计,Scrum重要的还是敏捷开发本身的思想。
敏捷开发:相对于传统的版本式(瀑布式)开发模式。以往的开发模式中,一次会做一个大版本,在这个版本的开发过程中定义需要开发哪些功能,需要多少资源,需要多长周期,终一次性交付这样一个版本。敏捷开发则是将一个很大的版本尽量细分为小的功能、模块或阶段,每次做其中一部分,做完以后立即发布一个小版本给用户。
Scrum:敏捷开发的一种项目管理方法,通常表示敏捷开发所承担的一个阶段性任务,做完这个任务可以发布小版本。在做这个任务的过程中团队称作Scrum团队,负责人是Scrum Master。这种Scrum团队和以往的团队相比,要求每一个团队成员掌握更全面的知识,而不是以往软件开发不懂测试,软件测试不懂开发。每个人都需要有独立解决问题的能力。对Scrum Master来说,需要了解整个Scrum的全貌,并具备整个过程中各个领域的知识,因此通常是技术牛人,而不是项目管理者去做Scrum Master。
Sprint:表示Scrum中的一个阶段,是对Scrum继续的细分。比如分给某个人开发50行代码的一个任务,他的第一个sprint可以是阅读需求文档,第二个是写代码,第三个是debug。好的敏捷开发中每个Sprint的任务量需要有较好的定义,不能太少,也不能让人做不完,因为每个Sprint的时间是固定的。

sales@spasvo.com