技术开发 频道

软件企业过程改善解决方案

【IT168 技术文章】

    前 言

    随着企业信息化的深入,软件项目需求的日益复杂、变更频繁, 传统的个人英雄主义的开发方式已经越来越不能适应发展的需要。从软件企业的发展战略来说,如何在技术日新月异、人员流动频繁的情况下,建立本公司的知识库及经验库, 把企业中分散的隐性的财富,即个人的知识及经验转变为企业的知识和经验,以便提高工作效率,缩短产品周期, 加强企业的竞争力,具有至关重要的作用。采用科学的管理思想,辅之以先进的管理工具,已经成为企业未来发展必不可少的手段。

    如果软件开发机构不能有效地控制和使用软件资源,则在面对风险时就可能导致软件开发活动出现各种问题。由于不能很好地管理软件过程,使得一些好的开发方法和技术没有起到预期的作用。项目的成功往往是通过工作组的杰出努力,这种仅仅建立在依赖特定高素质开发人员基础上的成功,不能保证全组织的持续稳定的软件生产和质量的长期提高。因此,要降低软件开发过程的风险、保证软件产品质量,就必须加强管理,而软件配置管理是企业过程改善和能力提升的基础。

    存在的问题

    对于一个软件企业或者一个软件开发团队来说,可能遇到过或者正在被以下问题所困扰,如:

    1、版本难以控制

    一个软件往往由许多的模块组成,在不同的阶段(基础功能、新增功能),很可能为了适应不同的环境(如不同的操作系统)、根据不同客户的要求开发了特点各异的版本,这些版本之间有大量的共享模块,以及属于自己的模块。在最后将这些模块组装成系统的某个版本时才发现,所需模块版本无法确定;

    图表、源代码、文档等等,经过多人次修改后,发现实际有用的版本却不知去向了;

    团队中并行开发引起的冲突。例如:编程人员 A和B共同修改同一个模块,两人经过几个昼夜的奋战之后,又都回存到服务器上,但到了程序试运行的时候,才发现有一个人的修改被冲掉了!

    有的模块没有经过测试,就直接进入了产品之中;

    2、资源变化频繁

    某些开发人员在软件项目开发的过程中离去,由于他负责使用或维护的文档或者资源不完善,使得后续人员接手他的工作时困难重重,造成开发过程的停滞。

    由于没有控制好软件变化过程,消耗了大量人力物力,导致项目严重超期、预算超支;

    项目经过了几次大改动,几乎记不起原来是什么样子了;或者说,根据用户提出的多次变更要求更改后的成型软件,与用户的需要相距甚远。

    软件变化未经控制进入开发或维护活动之中,引入更严重的问题。例如:某程序员未经正常的软件变化申请,自行修改软件中的某一错误,虽然局部错误是改正了,但由于没有考虑到局部改动对全局的影响,使得整个系统不能正常工作。

    3、配置审核问题

    对软件生命周期中的变化没有正常的审核过程:比如在上述示例中导致的问题。

    对于客户所提出的变更要求,缺少必要的审查和确认程序。

    物理配置审核问题:比如发布出去的产品中,缺少文档,或者文档与应用不一致。

    4、项目开发中的组织管理问题

    项目开始之后,每人每天都在编程序,但却不知道他们的进展如何。

    项目开发过程中,一部分人昼夜奋战,另一部分人则无事可干。

    整个项目的开发可控性差,无法做到阶段控制。

    软件配置管理SCM Software Configuration Management

    软件配置管理SCM (Software Configuration Management),是一套规范、高效的软件开发基础结构,作为管理软件开发过程有效的方法,SCM早已被发达国家软件产业的发展和实践所证明。SCM可以系统地管理软件系统中的多重版本;全面记载系统开发的历史过程;管理和追踪开发过程中危害软件质量以及影响开发周期的缺陷和变化;SCM对开发过程进行有效地管理和控制,完整、明确地记载开发过程中的历史变更,形成规范化的文档,不仅使日后的维护和升级得到保证,而且更重要的是,这还会保护宝贵的代码资源,积累软件财富,提高软件重用率,加快投资回报。

    软件配置管理作为软件开发过程的必要环节和软件开发管理的基础,支持和控制着整个软件生命周期,同时对软件开发过程的宏观管理,即项目管理,也有重要的支持作用。良好的配置管理能使软件开发过程有更好的可预测性,使软件过程具有可重复性,使用户和主管部门对软件质量和开发小组有更强的信心。若要有效的实施软件配置管理,必须要培养软件开发者的管理意识,结合开发组织的实际情况制订出相应的配置管理规范,由开发人员依据规范,通过专业化的配置管理工具来实现。

    如何实施配置管理

    根据CMM二级中的阐述,软件配置管理的目标是在项目的整个软件生命周期中建立和维护软件产品的完整性,它是软件过程和管理过程不可缺少的部分。配置管理在软件开发过程中的重要地位已不言而喻。许多软件企业已深深体会到这一工作的重要性,而在实施或正在准备实施。以往实践经验证明,在软件开发组织中实施或改进配置管理,仅仅依靠工具往往不能取得令人满意的效果,而需要软件开发组织指派拥有较高技术水平、管理水平的人员负责,尚须投入一定人力、物力和时间来重点进行以下工作:

    组建配置管理过程构造小组

    建立或改进一个企业的配置管理过程往往需要在初期投入一定的人力物力,通常需要组建一个配置管理过程构造小组进行这项工作。小组成员中包括:技术支持专家,配置管理技术专家、质量保证部门代表、项目负责人员代表、有关开发人员代表等。

    企业配置管理基础评估

    人员评估:企业人员的态度,可能受到的阻力;
    技术评估:技术现状影响对工具的选择:
    现有流程评估:可提升的环节;
    项目评估:即如配置管理的程序;
    期望值评估:预计管理的效益

    配置管理工具及其供应商的评估

    配置管理工具实用性评估

    系统功能是否满足需要、能解决问题;
    系统运行效率是否能达到要求;
    系统是否易于使用和维护;
    系统成熟性、稳定性,和安全性是否达到要求;
    系统与当前工具、流程,环境的兼容性;
    系统的购买、安装、培训,和维护的费用;
    系统的发展前景

    配置管理工具供应商的评估

    供应商在相应行业的从业时间
    该产品是否为供应商的主导产品
    供应商产品的稳定情况
    供应商的客户支持能力和技术服务能力
    供应商的声望和信誉

    制定配置管理实施计划

    分析对企业当前管理过程的影响
    确定配置管理的目标和标准
    确定计划完成的各项任务
    进行人员组织和任务分工
    确定任务实施计划
    风险管理

    定义配置管理过程

    确定配置项标识方法
    确定与配置项相关的信息格式
    确定获取配置项信息的人员权限
    确定获取配置项内容的人员权限
    定义变更配置项信息的过程
    定义变更配置项内容的过程
    确定配置状态过程报告
    确定审核过程

    人员培训

    包括以下几个方面的培训:
    配置管理理念。
    管理思想不应该只停留在几个精英的头脑中,而应该深入每一个项目人员的意识,这样才能够让每一个人都能够积极主动地配合实施工作;

    工具培训。

    包括对开发人员和不同层次的管理人员使用配置管理系统的方法、技术。

    实施过程培训。

    让相关人员了解各种配置管理活动的过程,以及自己在整个过程中要做哪些操作、如何进行操作。

0
相关文章