我们都知道软件工程、规范管理的好处,但我们往往会因为其他一些因素,如进度的压力,项目生存的压力,
而使我们走‘捷径’,实际上,我们在为此付出更大的代价。一些逐渐暴露出来的问题在细水长流似的消耗我
们的时间、精力、信心,而且还没有要结束的样子。
继续看下去的前提:我们都觉得要改变这种状况
改变现状主要有两种方式:1.引进CMM或ISO 2.过程改进(SPI:Software Process Improvement)
我们知道,软件过程管理不是靠直接引进就能适用的,SPI更适合我们。SPI的思路是分析现状,总结出
经验并找出需要改进的地方,然后按优先级排列,对最需要改进、最适合改进的部分考虑改进。
然后制定改进计划,实施,阶段总结...通过这样不断的反复来改进我们的流程,探索出最适合我们的方式。
改进时,CMM、ISO以及XP开发方法中都有可取之处,如CMM中的一些KPA可以作为我们的改进目标,当然,
最重要的是裁减那些方法与流程,我们只要最适合我们的部分。
按照这种思路,我个人认为我们在这些方面需要改进:
1.配置管理
随着项目文档的增加以及人员的加入,通过手工的版本控制越来越不适合。经常有人问:"最新版本在哪里?",
"你给我的是不是最新版本","你改了那些地方"等,而且不可避免的会出现版本混乱的局面。
2.项目文档
项目文档不全、不完整。开发思路都保存在开发人员的脑子里,没有文档化。如果有人员变动,对项目就是一
个灾难。还有,一些问题总是被人无数遍的重复:如"Oracle怎么配","BDE怎么配","如何开发一个新业
务"... 这样,我们总是很忙,但效率不高。如果有一篇文档告诉大家怎么做不就省事多了。否则,有新的
人员加入,我们还要回答同样的问题。
3.质量保证
因为需求不清以及设计考虑不周,我们已经吃了太多的苦头。一些质量保证手段比如:评审,会降低后期
更改的风险
我也对优先级以及改进的时机进行考虑,认为可以把配置管理当作突破口,首先进行改进。
以下是配置管理计划。
配置管理计划
概念说明
1. 配置项:项目中需要管理、控制的部分,包括文档、源代码、规范等
2. 配置基线:(BaseLine) 是配置库中每个配置项版本在特定时期的一个“快照”。它提供一个正式标准,随后的工作基于此标准,并且只有经过授权后才能变更这个标准。基线的建立便于检验和确认阶段开发成果,也使跨越基线的变更受到严格控制,如“需求冻结”。
3. 开发库:供开发人员专用的配置库,其中的信息可能做频繁的变更,控制相对宽松
4. 受控库:存放阶段产品的配置库
5. 产品库:软件经过系统测试后,作为最终产品存入产品库,等待交付用户或现场安装。
配置管理小组的角色及职责
1. 项目经理:监督配置管理的执行,参与配置管理计划、流程的制定,建立、推进各阶段的配置基线
2. 模块负责人:负责子系统的管理,参与配置管理计划、流程的制定,以及集成管理,模块变更记录的维护
3.配置人员:参与配置管理计划、流程的制定,数据备份,配置状态报告
定义配置标识及其命名原则
1.产品命名:UBPDEV UBPMAN UBPTST NLUBP(UPBCRE)
2. 注解格式:要说明这些要素:When Who Where Why What
如:0730 zzw Main单元 因库表结构变更,修改任务管理部分的功能
定义配置管理流程
1.变更流程
2.备份流程
每周备份一次配置数据库,形成打包文件,把文件传送到另外一台机器,进行异地备份。
对受控库以及产品库备份后,连同提取的文件报告及状态报告,定期刻成光盘。
配置库的建立:
1)工具的选用:ClearCase功能强大,但应用复杂,适合大项目的应用;SourceSafe小巧实用,适用于中小型项目,因其易用性,容易被项目成员接受,所以目前选用SourceSafe
2)开发库的建立:在文件服务器上安装SourceSafe服务端,建立配置库,增加工程及相关配置项:包括项目文档、源代码以及开发规范等
3)受控库与产品库的建立:随着版本的稳定以及阶段产品的发布,将逐步建立受控库及产品库
相关人员的培训
配置管理的意义,基本概念,SourceSafe客户端的安装,使用培训,流程学习
阶段回顾、检查
作为流程改进的重要环节,阶段的回顾有助于检查实施前一阶段执行的改进措施的效果,总结出改进经验,并找出不足的地方以供进一步改进,并检查改进的计划实施是否得到贯彻。
风险识别
技术:技术风险较小
管理:关键在于能否得到领导的全力支持与管理,促使计划得到贯彻,避免虎头蛇尾。
改进使为了提高效率,而不是添加麻烦。
人的因素:所有的流程改进都与人密切相关,也是花费精力最多的地方。
首先:大家在以往的工作中都有自己的工作习惯,虽然不一定有效,但要改变习惯却不容易。针对这一点,我们可以通过培训,明确我们做这件事的意义,同时,对流程进行规范,使大家都有可以遵循的规范, 毕竟开发人员都愿意在规范化管理的团队中工作。
第二,对过程改进的信心。因为大家在以往的工作中,经历过不少“雷声大雨点小”的事,
逐渐丧失激情。针对此,我们可以制定短期的阶段目标,随着目标的实现,大家的信心也逐渐提高。
阶段目标:
1.(1周内)培训所有的项目成员,让大家掌握配置管理的基本概念及配置管理工具软件的基本操作。
2.(1周内)分配所有的角色,并且让大家明确每个角色的职责及遵循的流程。
3.(2周内)所有的软件成果都应该纳入配置管理系统的管理中。
4.(1月内)受控库的建立,所有对配置项的修改必需经过修改控制流程