论信息系统项目的配置管理
民族要复兴,乡村必振兴。数字乡村既是乡村振兴的战略方向,也是建设数字中国的重要内容。为加快推进《数字乡村发展战略纲要》,有效整合、分析与挖掘分散的涉农数据资源价值,
2023年1月,沿海某市农业农村局启动了《数字乡村平台》项目。项目合同价726.8万元,于2023年3月6日开工,工期9个月,我作为乙方项目经理负责了该项目的全面管理。项目团队23人,采用项目型组织结构,下设管理、需求分析、设计开发、测试实施、质保5个小组。建设内容包括1个支撑平台、2个数据中台,外加农牧场管理、电商培育、人居环境、乡村治理、乡村服务等8个业务平台。另需开发平台接口,对接已建的涉农信息系统,打通数字乡村相关系统平台,构筑数字乡村“一张图”,实现全市农业农村数据资源互联互通互享,为推进乡村全面振兴提供有力支撑。本项目采用四层构架设计,资源池层分为数据生产中心和备份中心,分别由云服务商和市政务云平台提供,对接政务外网中心和全市9县5区16369个村居的涉农数据备份中心;分析层采用基于Hadoop的大数据解决方案,使用ApacheSpark作为数据处理引擎,将收集的各方数据汇集、清洗、转换和标准化,形成平台数据池,为8大业务平台提供数据支撑;服务层使用SOA架构,对各类业务系统的海量信息有效融合与梳理,封装成服务,向上提供API接口;应用层使用Tomcat作为web容器接受用户请求,使用dubbo提供接口将产生的数据回流至平台,为数据指导提供效果校验,优化施政措施。
软件配置管理是保证软件质量的关键,也是保证软件产品交付的重要手段。有效的项目配置管理,能顾保证软件工作产品在整个项目周期中的“完整性”,提高软件的工作效率,及早发现风险并制定相应风险应对措施,提升软件项目管理水平,同时也能增强用户和公司对软件质量和项目组的信心。本《数字乡村平台》项目工作量大,涉及8个大的业务子系统与30多个功能模块,产生的设计文件、说明文档、各种原型图、类图、源代码等非常之多,各业务子系统采用敏捷式开发,版本迭代频繁,如果不能对这些资料、文档进行有效管理,保证势必引起混乱,因此做好项目配置管理尤其重要。下面我将结合本次项目实践叙述项目配置管理的具体做法。
一、制定配置管理计划
制定配置管理计划是规划如何开展项目配置管理工作,是配置管理过程的基础。项目之初,我邀请项目顾问,各技术组长及项目骨干,专题会议制定了《数字乡村平台配置管理计划》,主要内容有:一是确定软件配置管理所使用的工具、技术和方法,使用KCFlow配置管理平台,实时自动化约束并客观记录配置管理活动。二是确定配置管理机构和人员职责,成立了由甲方信息主任周工、客户代表、我、项目技术负责人、配置管理员、QA等组成的软件配置控制委员会,负责对变更进行评审批准,并确认变更的结果;配置管理员负责制定《配置管理计划》并执行;QA负责审计配置管理过程;开发组组长,负责评估变更中代码方面的问题。三是确定了变更申请流程、变更申请方法,以及对配置管理报告内容、报告时机、报告人和通告对象等进行了描述。该配置管理计划经过CCB审批后,成为配置管理活动的指南和方向。
二、配置标识
配置标识是识别需要受控的配置项并记录配置项的功能和物理特征。在该《数字乡村平台》项目中,配置管理员、QA、技术骨于等利用KCFlow配置管理平台,建立了功能基线、分配基线和产品基线3条控制基线。识别出了需要受控的配置项,有需求相关文档、设计相关文档、测试文档、编译程序、程序代码等,并为每个配置项指定了唯一-性的标识号, 版本标识规则统一为:vm.n.j (其中m代表主版本号,n代表次版本号,j代表批准次数)。确定了每个配置项的所有者及其责任,为配置管理工作奠定了基础。
三、配置控制
配置控制是对配置项和基线进行变更控制。对已进入受控库和产品库的任一-软件配置管理项的更改,都需履行申请和审批手续。如项目中期,农村事业指导科的李科长提出要添加疫情防控视频信号定时轮巡的功能,我们要求李科长填写书面《变更申请单》,然后提交给CCB。CCB对变更申请评估后,批准了该申请,并将决定通告每个干系人。我们项目组变更实施人填写《变更出库单》,审批通过后,从受控库中检出(checkout)待更改的配置项到开发库中进行修改,则该配置项处于待“锁定”状态,以保证同--配置项只能同时被一个变更实施人员修改。变更完成并通过验证后,变更实施人填写《变更入库申请单》,审批通过后,将变更后的配置项检入(checkin) 受控库中,“锁定”解除。最后,软件产品修改工作全部完成后,更新至产品库中,并更新了产品版本号。
四、配置状态报告
配置状态报告的任务是有效地记录和报告配置项的当前状况,供相关人员了解,以加强配置管理工作。比如,对“乡村治理疫情防控”模块,刚开始创建时处于“草稿”状态、版本号为0.01,后经过多次完善,版本号升级为0.12;经过批准后,该配置项成为了“正式”状态、版本号为1.1;后来,李科长提出要添加疫情防控视频信号定时轮巡的功能,则需对该配置项进行更改,此时该状态变为“修改”、版本号为1.11。再次经过评审后,其状态变为“正式”,版本号为1.2。在整个过程中,配置项不停地演化,配置管理员时刻观察每个配置状态,记录和保存每个变化的版本和状态,以便更好地进行控制。
五、配置审计
配置审计包括功能配置审计和物理配置审计。功能配置审计时审计配置项的实际功效与其需求的一致性, 我们主要验证了配置项的开发已圆满完成,配置项已达到配置标识中规定的性能和功能特征,配置项的操作和支持文档已完成并且是符合要求的;而物理配置审计配置项的物理存在的完整性,我们主要验证了要交付的配置项是否存在,配置项中是否包含了所有必须的项目。如:在数字乡村平台系统开发中,经过配置审计,形成《配置审计检查单》,发现“乡村服务用工登记”的操作文档无法达到客户的要求,同时也发现该模块中缺少最新的用工登记信息。对此,我按照规定的配置管理流程,通知相关部门及负责人员完善相关文档及配置项,减少了客户的不满意,以最好的产品呈现给客户方。
六、配置管理回顾与改进
配置管理回顾与改进就是定期总结配置管理活动的实施情况,发现在配置管理执行过程中有无问题,找到改进点,继而优化配置管理过程。在每周的例会上,我们都会对配置管理相关的工作问题进行总结并优化,例如:查看更改日志、审查记录等。在一次例会 上开发小王反映其最近接手的XX模块,缺少相关的开发记录文档。经了解是由于原本负责开发XX木块的同事因任务紧急调离至了其他项目组,其之前的开发文档和实际工作并没有保持同步。我一-边与该同事取得联系,让小王与其进行直接沟通,先补齐之前的记录文档,再来进行后面的开发。- 一边让各组长严格检查各成员的开发工作与文档记录的一致性,避免再出现此类现象。
通过本次项目管理实践,我越发明白了配置管理的重要性,总结了几点经验教训:应组织开发人员深入学习配置管理每个过程的实践意义,将配置管理变为自己的自觉行动;配置管理对数据的完整性和正确性更加的敏感,只有管理人员切实履行职责,才能达到配置管理的目的;切忌配置库文件完全共享,否则会给配置库造成很大的安全隐患。但也有存在不足的地方,比如,在项目后期,为了赶进度,在配置管理工作中把某个配置项旧的版本删掉,导致后面发现新的版本没有旧的版本好,导致花了更多的时间来修建旧的版本。