开发流程及使用的工具
在不影响现有功能的前提下,进行快速迭代开发满足顾客要求。
从开发方法的角度来讲,我们采用的是scrum+XP的敏捷开发。并采用TDD(Test Driven Development)、BDD(Behavior Driven Development)、DDD(Domain Driven Design)等设计开发方法,以及CI(Continuous Integration)、CD(Continuous Delivery)等开发实践。
另外,我们使用了很多工具来支持这些开发实践。例如bug管理系统,版本管理系统,自动测试工具,代码静态解析工具,以及代码review工具,自动部署工具等。
您在开发的时候是怎么做的呢?
在这里介绍一下我们团队开发的流程,包括需求管理,版本管理,测试以及产品发布。
从开发方法的角度来讲,我们采用的是scrum+XP的敏捷开发。并采用TDD(Test Driven Development)、BDD(Behavior Driven Development)、DDD(Domain Driven Design)等设计开发方法,以及CI(Continuous Integration)、CD(Continuous Delivery)等开发实践。
另外,我们使用了很多工具来支持这些开发实践。例如bug管理系统,版本管理系统,自动测试工具,代码静态解析工具,以及代码review工具,自动部署工具等。
您在开发的时候是怎么做的呢?
在这里介绍一下我们团队开发的流程,包括需求管理,版本管理,测试以及产品发布。
敏捷开发
我们采用敏捷开发的Scrum框架进行开发。我们的sprint周期是一个月,每个月的月初开始计划和故事点的工时估计然后进行开发测试。
早上进行每日例会,确认燃尽图之后开始每天的开发测试工作。
产品backlog的管理我们使用 Pivotal Tracker 。
每次sprint里都会召开的会议有sprint开始时的计划会议,每天早上进行每日例会,sprint结束前的review会议,以及sprint结束后的回顾会议。回顾会议里面总结本次sprint里面的不足然后大家达成共识在下个月进行改善。这样周而复始的不断改善进行开发。
代码review
在shanon所有提交到代码库的代码都要经过review。代码review工具我们使用 Review Board ,最近同时也使用 github 的review功能。
进行代码review的理由有一下几点。
- 提高代码质量
- 提早发现bug
- 学习其他人的代码中的优点
github
合理使用版本管理工具,是团队开发可以顺利进行的最基本条件。能否正确理解版本管理的概念和意义,直接左右着团队所开发产品的品质。
shanon使用github进行版本管理。使用github的最大好处是可以使用fork和pull request这两个功能。 如果想修改其他人的项目,可以简单的clone(fork)这个项目,修改后向元项目发送patch(pull request)。
另外,通过向pull request加钩子(hook),可以实现在jenkins中自动执行测试,保证提交过来的patch都是经过测试的。
通过这一方法可以初步保证文件的漏提交、没经过本地测试的提交等问题。
自动测试及自动构建环境
每天在自动构建环境中通过执行自动化回归测试来保证提交的代码没有引发其他bug。按照上述一个月的sprint周期,产品每个月都进行新版本发布。
关于自动测试请参照 品质管理 页面。