大家下午好!我的名字是jean-louis vignaud,我主要负责telelogic 公司的变更、配置管理工作,我从事synergy 的工作是从94 年开始的。今天我来介绍我们的变更、配置管理的解决方案。
一般人的理解,变更、配置管理这个方案是用在开发人员的角度上的工具,我想这是对的,它是用在这方面的工具,实际上它的意义比它应用的更广泛。如何让大家来认识这一点,我先从软件开发的复杂度来谈起。
第一个问题,我想跟大家探讨一下,我们有多少人或者用了多长时间在ms-dos 系统上,这个系统是在二三十年前的一个系统。可能想象不到,实际上这个版本的开发,才用了六个星期,实际代码数才是4000 行。我们来看一下最新的microsoft 操作系统的情况。能想象的到,这个系统大概有4 百万行的代码,加上了大概有多达1 万人员的开发人数经过了三到四年的开发历程才诞生出来的系统。在二三十年前的系统跟现在的系统有多大的区别,大家能想象的到吗?我们从这两个例子的比较可以看到,实际上这个系统的复杂度要提升了大概万倍或者百万倍的复杂度。这就使我们联想到软件开发系统或软件开发过程随着时间的增长它会变得越来越复杂。
除了开发过程之外,我们想到的是在开发之后可能有很多的变更或者有很多的问题你要去跟踪管理。作为项目经理或者项目总开发人员,你每天或者每时所做得事情都面临着一个变更的过程,这个过程的管理是个相当复杂的过程。还有其他方面的复杂因素,比方说随着你公司的不断发展壮螅?愕膖eam 成员还有开发组织机构都在不断变更,你会面临在异地开发的状况或者在不同的部门,怎么样去结合在一起组织你的开发过程。
举一个例子,比如在开发过程之中你的团队人员的团队管理过程发生错误,这个team 就谈到两个人员在同时修改同一个代码的时候,他们发生代码覆盖的错误。另外一个错误我们可以联想到软件复杂度会给你带来的错误,举个例子来说,比如我现在在修改组件的时候,没有想到其他人员正在用这个组件来做事情。另外一个错误,可能让我们联想到你在流程的支持过程之中,缺乏一些因素来影响到你犯错误,比如我们忘记解决在软件发布之后的一些缺陷。另外一个因素可以让我们联想到当你组织的复杂度改变了之后,所产生的错误,比如我们很多的团队人员,不同的项目组,工作在同一个环境之下,当一个项目组对某一个缺陷、某一个错误进行更正的时候,这个缺陷会对哪些项目组产生影响,这个管理不当就会产生错误。所以,我们把变更、配置管理解决方案定成我们是在软件开发过程之中或者软件管理之中,我们要尽量缩小你的错误或减少你的错误,我们要最大限度提高变更、配置管理的能力。
再回到我们对一些官方软件,从如何定义的角度来看这个问题。二三十年前所定的软件配置管理,它定义成是控制和管理软件开发过程之中的配置性,这个是提高软件开发过程之中的配置管理的力度,这个实际上是监视和报告软件开发过程之中的变化状况。这些是我们配置管理的内容,也是我们应该解决的问题。现在软件配置管理的范畴提升到资产的开发管理角度之上,首先要控制和跟踪你开发的工作。另外还要保证你的软件开发过程中没有不应该丢失的东西丢失或者毁坏掉。如果让我们看一下配置管理或者变更管理的工具市场,有各种各样的工具来解决这个问题。我们称为完整的变更、配置管理工具。这种管理工具包括了要控制进行变更跟踪,版本管理、建立管理还有发布管理这些范畴,我们synergy 这个产品就是属于这类范畴的解决方案。另外一类工具我们称为一般的版本管理工具,或者是一些免费的配置管理工具。这类工具所解决的问题在我们很早以前定义的范畴里,这类工具不足以能够管理软件开发过程之中的复杂度,来帮助用户实现他们的商业价值。
下面,我想谈一下我们配置管理解决方案在软件开发流程之中所起的作用或者角色。首先,我们配置管理解决方案的一些传统角色,在软件开发过程之中起一个版本管理的角色,另外是变更请求管理和跟踪、建立管理的这类传统性的角色。除此之外,它还起到了额外的角色,这类解决方案要帮助团队进行友好的交流和协作。另外一个角色起到记忆所有开发过程之中的活动,能够瞬间回到某个活动过程做的事情。还有一个角色,自动化反复开发的流程,另外一个角色是在变更、配置管理控制资产的背后,它起到一个开发过程之中的实施作用,所以,我们可以理解为变更、配置管理在开发的流程之中起到的是一个基础框架的作用。在我们的组织之中哪些人应该用到变更、配置管理解决方案呢?从传统的角度来说,它是用在了开发人员跟配置管理人员之中的解决方案。当我们定义了新的配置管理的范畴之后,我们变更、配置管理解决方案应该用在全队人员的所有角色之中,它会对整个开发流程或者组织管理起到举足轻重的作用。
我举一些例子来说明用这些解决方案哪些人会有影响?如果你看我们高层次的管理人员,他们有更高一层的商业目的,比方说去降低成本,来提高团队的协同开发等等。他们要满足提高产品的质量,他们的主要商业目的,我们要用有限的资源来提升我们产品的质量和价值,它还要做更好的协调管理、开发工程流程或者时间表的管理,它们的主要目的是要提升整个团队开发资源或者是团队开发人员的有效性。甚至他们想把整个技术资源或者是技术人员更好地利用,来实施全球性开发的工作。他们所想到的事情如何在他们今后的想法之中来实现出来,这是他们所想到的。如果有好的变更、配置管理解决方案,我们可以帮他实现这些商务目的。变更、配置管理工具还适用于项目经理和其他的团队领导人员。比方说我们有一些项目经理或者团队人员考虑到项目能够更有伸缩性或者弹性来进行变更管理。如何控制项目真正的变更,来提高项目管理的有效性?明显我们变更、配置管理工具从传统的角度来说,我们也是开发人员的一个很好的帮手。众所周知,我们采用了变更、配置管理解决方案之后,我们开发人员使他们的工作变得更有效、更简单,他们的管理和开发的工作更快。
从另外一个角度来说,建立管理经理或者配置管理经理,还有发布经理的管理,他们关注的是怎么能够使他们的工作更容易、更简单地进行。同时对我们软件质量管理工程师来说,配置管理也是很重要的一个方面。他们更关注的是我的这个流程或者我在测试过程之中发现了问题,现在进展到哪个状况了,到底是谁在做这件事情。他们想到的是我想得到这些信息,但是又不影响其他人员的工作的进行,我怎么得到这些信息。系统或者工具的管理人员他们想到的我怎么来寻求一个解决方案,使我的系统更灵活,或者使我系统的拓展性和兼容性更好,当采用了变更、配置管理工具之后,我们把所有的数据放在同一个数据库里去管理,当所有人需要信息的时候,他可以随意从里面摘取信息,来帮助他们进行有效的管理。我在此荣幸地介绍dominic tavassoli 来进行下一轮的演讲,来帮助我们实现这些商务目的和面临的挑战。