技术开发 频道

软件配置管理提高业务价值的七个关键因素

【IT168 技术文章】

    软件配置管理(SCM)是软件开发的幕后英雄,为什么这么说?首先,在以最高效率运行时,SCM 解决方案很难被看到。它们对于用户应该是透明的,让开发人员自由地编码,而无需难以驾驭的过程。第二,很少有人会注意到 SCM,除非它被不必要地插入或者被破坏。所以它执行的越好,你就越少听到过它,或者意识到它。

    软件配置管理(SCM)是软件开发的幕后英雄 

    为什么这么说?首先,在以最高效率运行时,SCM 解决方案很难被看到。它们对于用户应该是透明的,让开发人员自由地编码,而无需难以驾驭的过程。第二,很少有人会注意到 SCM,除非它被不必要地插入或者被破坏。所以它执行的越好,你就越少听到过它,或者意识到它。

    SCM 成为英雄是因为良好的软件配置管理产生了正的投资回报(ROI)。实际上,它通过提高团队生产力和保护你的项目资产远离灾难(不管大小),使你获得了良好的经济效益。

    是的,它处在幕后,但是项目经理和 CIO 们正在注意到它。他们意识到了良好的 SCM 为项目和公司提供的业务价值。

    SCM 如何转化为业务价值?

    更快的开发意味着更快的投放市场。

    更高的质量意味着减少了修复错误的时间。

    更高的可靠性转化为更高的生产力。

    ROI 研究提供了有说服力的证据,即正确配置的软件配置管理解决方案可以提高过程和控制中的效率。这些效率将减少手工任务,并在项目中节省无数的时间。你越能优化项目的执行,就越能为公司带来更多价值。

    在目前给定的开发复杂程度下,有很多通过SCM增进开发效果的方法。但是,我将它们概括为良好的SCM系统应该拥有的七种属性。一旦被正确理解和管理,这七个属性就会极大地影响你的底线。
   
    这些属性是:

    1、安全性
    2、稳定性
    3、控制
    4、可审计性
    5、可复制性
    6、可跟踪性
    7、可伸缩性

    在我以前的版本工程师和 SCM 顾问工作中,以及现在的工作中,我都为客户提供如何从软件配置管理(SCM)中获得最大收益的建议。这七大重要的 SCM 功能--安全性、稳定性、控制、可审计性、可复制性、可跟踪性和可伸缩性--是成功进行软件配置管理的关键需求。所以让我们对它们做进一步讨论。

    安全性
   
    所有 SCM 系统的首要目标就是保证项目资产(比如,设计模型、源代码、测试用例、文档等)免遭毁坏、无意的破坏、未授权的访问,甚至灾难。这需要两件东西:

    安全访问--可以查看或更改项目资产的人只能是被明确授权这样做的人。

    可靠的恢复--在未授权用户犯错误时(比如以外删除或覆盖源代码文件)恢复丢失工作的能力。

    你不能低估 SCM 安全特性的业务价值。安全特性是软件开发过程中风险转移关键领域的基础。如果不能防止有意或无意的破坏,代码和其他关键项目资产将随时面临不可接受的风险。这种潜在的丢失可能暂时削弱一个项目,更糟的是可能使项目偏离轨道数月,甚至扼杀了该项目。

   
    作为这方面的例子,很多 SCM 系统没有提供再现过去配置的简单方法。这迫使勤奋的开发团队依靠其他方法实现这种功能,比如在出现关键项目里程碑时向磁带或其他备份介质上编写特定的配置。

    但是,这不能防止有人无意地恢复了过去的配置而覆盖了现有工作。当然也不允许再现与这些关键项目里程碑不对应的配置。

    业务价值:

    在你的开发环境中创建安全性意味着有能力阻止未授权用户,并且能够快速恢复被破坏或覆盖的代码。简而言之,它是关键业务资产的保护神。当你不用手工重新创建你软件系统的特定配置,而是可以从知识库中直接取用时,你就节省了不少时间。

    稳定性

    稳定的开发环境,不管对于开发团队还是个别开发人员来说都是不可缺少的。真正的稳定性具如下两个必要元素:

    有保证的稳定工作区域--很多 SCM 系统可能在他人检入新代码时,破坏了个别人工作区域的稳定性。开发人员应该能够将未完成的工作留到第二天(或者未来的任意时间)再做,因为知道他们桌面上的数据未经他们允许不会被改变。

    对向工作区域中引进哪些新代码(这些代码可能是最不稳定的)以及何时引进的个别控制--比如,一个独自工作了数周的开发人员应该首先对他的环境有足够的控制,以决定何时向他的环境中以及团队的环境中检入新代码(潜在的不稳定因素)。

    除此之外,开发人员还应该能够逐渐更新他的环境,以评估稳定性水平。另一种方法是同时完成这一切,但是会潜在地向开发人员工作区和项目中引入广泛分布的不稳定性。这种级别的控制(选择什么时候向个别工作区引进什么东西的能力)显著地降低了项目风险。

    业务价值:

    当你向开发人员的环境中引入了不稳定因素时,可能导致向下的螺旋效应,从而引起开发人员和开发团队生产力的急剧下降。这对士气也有负面影响,并且导致进度延迟和质量问题。维护稳定的环境消除了这些问题,并增加了额外的价值。

0
相关文章