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

发表于:2008-8-18 14:11

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:网络转载

  可审计性

  开发软件是一个迭代的复杂过程,需要能理解发生的所有事情的敏锐眼光。它与我们对落地大座钟的感觉类似。从外面看,指针移动,闹钟报时,你就能知道时间。但是在内部,存在着连续的移动。齿轮啮合,按照不同的速率转动。特殊的齿轮经过校正,可以精确到毫秒。所有部件协调起来实现了绝对精确--从外部看来如此简单的和谐。

  软件与此类似,除了一点不同--它本质上要复杂的多。并且在所有的活动中,你有时必须问个究竟。

  这就是可审计性存在的理由。可审计性指的是在任何时候询问关于软件发布的特定版本或配置的who、what、when和where问题的能力。它还必须能够强调版本之间的区别。构建工程师、经理和开发人员必须随时回答诸如下面的常见查询:

  . 组件 foo.y 根据最新需求更改了吗?
  . 谁对 3.2.4 版的第 10249 行做了变更?
  . 在修订版中所有迫切的bug都得到了修复吗,以及谁将它们登入?

    答案对于平稳解决像构建脚本或包含文件中的错误至关重要。手工查找信息消耗宝贵的时间。确实,因为不能向SCM系统询问这些关键信息而感到气馁的开发人员可能只是让构建和测试团队挑选出东西--从而浪费了更多的时间,并极大地降低了项目效率。

  业务价值:

  可审计性需要SCM系统跟踪和记录有关变更的元数据(关于数据的数据)。很重要的是,它还允许你查询数据库,以轻松找到答案。可审计性可将寻找答案的时间从数天减少到数秒。假定每天六个问题,乘以每个问题节省的时间,你就会意识到这将带来多么大的业务价值啊!

  可复制性

  在项目过程中发生的很多变更中,并不是所有的都比原来好。有时候,前面的版本比后面的要好。你必须能够快速复制出前面的配置,以便恢复到项目的之前状态。

  可复制性就像是航拍一样。它代表了截然不同的时间,以及项目详细、广泛的视图。

    软件开发上下文中的可复制性需要:

  . 复制整个开发环境的配置的能力,包括项目生命周期中任何阶段的工具、测试和文档。这很关键,但是从这方面来说很少有产品能完全做到这一点。
  . 不但自动重新创建构建中使用的文件,还能自动创建目录结构和整个名称空间的能力。
 
  通常,更早版本的目录结构被识别--文件或子目录名称发生改变,大型目录被分割成更小的目录,并且文件被移动。重新创建早期版本目录结构的能力被称为名字空间版本化。SCM必须为名字空间版本化提供一种机制,而不只是为文件版本化提供。

  比如,它对于将代码及时回退到不是特别显眼但是体现了更好的代码版本的时刻很有用。回退需要可复制性。根据回退作用域的不同,它可能需要只有名字空间版本化才能提供的大量细节。

  业务价值:

    将项目回退到一个里程碑或者任意时刻方面的可复制性可能只产生周期性的价值。但是当例行使用以保证正在构建的同时已经过测试时,它在降低风险方面的价值不可估量。

  可复制性类似于版本控制--允许你在一个构建中复制精确的文件版本和每个文件的配置。花费项目组数天或数周时间重新构建的东西可能在几秒内发生。

  可跟踪性 

  很多SCM系统提供了某种程度的可跟踪性。可跟踪性的综合定义包括如下能力:

  . 按照能让SCM系统轻易重新创建重新构建、测试和运行该版本所需的开发环境(代码、文档、用例等)的方式,标识已部署产品的版本。
  . 从特定的软件版本回溯到为实现该版本而实施的变更请求和需求。顺便说一句,这种功能目前在涉及项目代理的项目上是必须的,比如 FDA、FAA 或 DoD,所有这些都在它们的投标请求中构建了可跟踪性需求。

  有了可跟踪性特性,支持工程师就知道重新创建客户系统的精确配置所需的所有信息,并可以回答该问题:"为什么软件这样做"?

  业务价值:

  与可审计性类似,可跟踪性是确定你在项目中位置的一种方法。如果给定了软件开发的复杂性以及涉及的高风险,那么可跟踪性就是必要的。和可审计性一样,可跟踪性节省了手动记录元数据的时间。

  可伸缩性

  作为整个开发平台的基础,SCM系统必须支持任何范围的项目。也即是说,它必须伸缩,以自始至终支持大型团队,但是它又不能对小团队带来负担。

    可伸缩的SCM系统应该:

  . 在需要少许控制时是可配置和起作用的。否则团队成员将花费时间与复杂的SCM流程纠缠。小项目不能负担繁重的管理。
  . 可用于管理增长。在小项目成功方面,SCM的可伸缩性变得越来越重要。小项目通常演变为大项目,需要像平行开发这样的高级功能。SCM解决方案需要能管理这种增长。
    . 能够支持地理上分散的团队、远距离工作者和外包团队成员。异地投稿者的存在为SCM环境添加了压力,因为它需要协调和管理分布式的协作,不管集中办理还是通过复制均可。可伸缩性还暗示了应该实现合理的性能标准。对SCM系统不断提高的要求不应该损害可靠性或者影响基本操作。

  业务价值:

  在你每次雇佣新员工时,必须将业务移交给一个更大的部门。在每次开始一个大项目时,必须购买新的SCM解决方案。它可能耗费时间、金钱,并导致极度的烦恼和不舒服。你的 SCM 解决方案如果不可伸缩会影响很多人。

  好的SCM就是好的业务,健壮的SCM系统为使用项目资产创建了安全和可预测的环境。它使得个别团体更容易坚持已建立的流程以及"做正确的事情",同时使得更难做错误的事情。

  有效的SCM将:

  . 为开发管理提供了关键的状态信息和数据。
  . 自动完成日常的构建和版本化任务,并提供了对文件和版本信息的快速访问。
  . 支持根据前面的文件版本对缺陷和增强进行端到端的跟踪。
    . 足够敏捷和健壮,可以使控制轻易地适应不断变化的项目条件。
    . 使得做正确的事情很容易,犯错很困难。
   
    这些好处的总数目相当于更有效的软件项目管理--降低了底线成本,并提高了业务价值。

    在过去的数年中,我曾帮助很多公司解决他们的软件配置解决方案。我看到了令人敬畏和令人恐惧的事情,并且可能是之间的所有事情。

  但是不管情况如何,一旦客户和我理解了一个SCM解决方案如何帮助他们的软件开发(七个 SCM 属性),我们就能够实现提高生产力的计划。没有两个计划是相同的,因为没有哪两个业务是相同的。但是这七个属性可作为有关 SCM 实践的会话的上下文。一旦使用,这些最佳实践就将转变你团队构建软件的方式,并且对你的总体生产力产生积极影响。

  SCM的业务价值已得到证实--不管是传闻还是实际经历。好的SCM就有很大不同。你可以依靠它!今天的SCM是软件开发的无名英雄。但是在很久以前,随着越来越多的项目经理和 CIO 为之扬名,它很快成为了 MVP(最有价值产品)。

 

22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号