变更管理
1、许多项目环境需要引入某种形式的变更管理工作流,或者说所有的变更需要经历多个阶段(比如开发、测试、生产上线)以及相应的许可批准从而进行至下一阶段。这一问题通常被称为变更管理(Change Request Management)。
变更可以是开发系统上的某个配置更改,某个代码commit或是若干bug fix的集合;变更具有不同类型(来适配对应的生命周期);变更可以来源于某个issue,或是某个新功能需求。变更管理会涉及特定的人员角色如变更经理(Change Manager)等履行不同的职责。 (http://projects.puppetlabs.com/projects/1/wiki/Change_Management)
构建这一流程的优势在于:减少变更对于业务的影响、增加变更的透明度和沟通、减少可能的变更撤销、适应大规模的变更、为进行影响分析(impact analysis)提供可能
Q:在你的项目经验中,对于变更的管理是否应用了简单的issue tracking之上的具体流程?
2、我会假设一个软件项目的系统环境是三层系统架构:开发(Dev)——测试(QA)——生产(Prod)。在现今互联网应用前所未有复杂,对业务空前重要的情况下,在部署系统更新或例行配置更改时我们必须保证配置或更改对于所有特定的环境(数据库,Web
Server、Application Server或者Middleware
Container)都是正确的;然而,如果存在一些没有列入文档、不遵循流程的手工更改,要识别一个在QA系统上测试通过的应用和在生产环境上的那份程序是不是相同版本会很困难且容易出错。而且撤回上一次更改重新迭代的情况也屡见不鲜。