根据The Standish Group
International, Inc.的研究报告,40%的软件开发项目在完成前被取消,33%的项目延期或超支。如果像这样搞建筑项目,您能够想象一下纽约城会变成什么样子?
协同是关键
从开发环境到版本控制,你常常会走过又一个循环:采购工具,使用培训,围绕着工具使用建立内部开发过程,日常应用等等。希望在合同到期时能够顺利完成并且没有超支...
让我们来问这样一个问题:下一步是什么?
在你让开发小组提高了一点点效率之后,在你配置了开发工具之后,你仍然需要保持竞争力,下一步改善那里能够获得最大的生产力?
我们要求你看一下目前你周围的信息组织,你一定能看到不同的开发小组,同时你也能够发现其它许多技术上的协作者,如文档、外部资源、客户、设计人员等等。你将发现不同的开发小组的数量在增加,麻烦也在增加。你还能发现合作者分散在不同的部门或不同的地方。
当你看到这一切时,相信你会认识到项目组织中存在的噪音和混乱带来了沉重的经济负担。你将意识到这是下一步提高生产力的突破点,不是其它的技术工具,也不是下一个更快的编译器。
下一个效益增长点将来自管理,简化技术协作,使不同的小组以一种更快速而简单的方式共享工作中的相关信息,从而降低“项目组织中的噪音”,而且使优秀的小组不会被拖住后腿。换句话说,你的下一个效益增长点将来自实现你的信息组织中所有成员之间的协同工作。
|
“我只需要版本控制,或许是软件配置管理...
何必要协同呢?”
|
获得协同的动机依赖于企业内信息组织的个体:应用开发组(如上图中的Tom),应用开发管理(如Ann)和技术协作者(如文档、帮助平台和客户等等),他们参与不同的软件活动,所以会有各自的看法。
例如,让我们考虑一下Tom,作为软件开发组长,他可能在应用开发和维护领域有特长,因此自然会倾向于采用专门技术,如版本控制等。那么Tom是否需要技术协作?
从哪儿提高生产力
|
版本控制和软件配置管理通过加强日常开发环境的控制,很快得到了大家的认可。但是它们能进一步提高生产力吗? |
许多已经使用了版本控制和软件配置管理工具和软件组织,很快发现生产力的提高比预期的要低,下面列出了其中一些原因:
- 不同的项目组使用不同的工具,降低了效率。但搞统一是不合理的,违背自然规律。
- 不同工具之间有“隔阂”,难于重用数据,也减少了项目组之间的交流。
- 已有的版本控制工具不能支持远程用户,或者性能明显退化(如一个基于文件服务器的工具,当在WAN或Internet上使用时,会变得非常迟缓)。
考虑到上述因素,很明显Tom肯定会对技术协作发生兴趣:
- 建立在版本控制和软件配置管理之上,提供对信息技术资源的准确访问。
- 通过无缝访问不同的版本控制工具促进代码共享。
- 从任何地方访问(LAN/WAN/Internet/WEB),改善已有的版本控制工具
- 从其它平台(通过统一的JAVA客户端),扩展垮平台的代码共享和重用。
- 提供一个具有高度伸缩性的现代化体系结构,使得将工具扩展到其它领域和功能范畴成为可能。
StarTeam满足所有上述需求,它具有:
- 与PVCS和SourceSafe的互操作性,
- 完全的地理位置独立性,
- 客户/服务器体系结构,为Internet和WAN开发环境特别优化,
- 能够运行在任何JAVA平台上的统一的客户端应用。
更重要的是,StarTeam支持开发队伍建立一个协同工作的稳固基础的需要。
队伍中的其它部分怎么办?
|
我的需求还未满足:我要求所有的项目组能够协调工作!我要求他们能够共享和重用,不管他们用什么样的版本控制工具,并且我需要能够完全有关联性地访问技术上的协作者,即使他们可能并不是技术方面的。 |
迄今为止,Tom已有了他所需要的版本控制和软件配置管理工具,如StarTeam
Versions、 PVCS或Visual SourceSafe等。
但这仍然无法解决团队中其它人员的需要,如Ann。这些需要是:
-
项目组之间的协同:Tom、John和Mary使用不同的工具,他们之间在代码共享和重用上有一定的困难。
- 系统资源的公共访问,而不管使用哪个版本数据库。像PVCS和SourceSafe这样的配置管理工具都是很专门的,使用不同的术语和操作。因此,你可能需要访问John和Mary使用的两种完全不同的系统。
- 需要支持位于不同地点的项目组成员,而且可能是动态变化的,比如你需要在用户现场干一段。
- 快速、直观地访问开发相关的内容,包括文档、计划、外部资源、管理、帮助平台和客户等不具有“软件开发头脑”的对象。除非选择一个非常容易使用、高度集成和直观的解决方案,否则要将技术协作集成到开发功能中几乎是不可能的。
因此,单纯的技术工具与期望尚有一段距离。版本控制和软件配置管理是不可缺少的工具(否则如何安全地管理信息技术财富?),但它们不是设计成用于解决协同工作需要的。
协同将他们结合在一起
|
一个真正的协同解决方案支持所有的功能范畴和团队,无论他们是处在传统软件开发环境之内还是之外。 |
StarTeam提供了真正的协同工作,使得开发环境内外的所有的功能范畴和团队能够积极参与共同的活动。协同自底向上建立:底层是安全地控制和管理信息技术财富,上层是协同:
- 版本控制和配置管理功能没有这一关键的功能。
- 透明的跨引擎(不同的工具)互操作性。
- 一个提供访问你的所有软件资源的协同框架。
- 允许已有的用户继续使用其版本控制工具的能力,保护已有的投资。
- 完全的位置独立性。
- 平台独立性(LAN/WAN/Internet/WEB)。
- 一个获奖的、非常容易使用的图形用户界面,非技术性用户也能应付自如。
- 文件、交流和变化请求等所有应用资源之间的关联。
- 虚拟的信息资源视图,允许每个项目成员将信息资源看作只与自己有关,并支持直观的进度、生命周期状态、产品版本、基线版本和私有配置。
- 完全集成的变化请求管理,集成在一个更高、更有意义的层次上。
你可以发现,这些额外的功能特性并不仅仅提供了对软件配置管理的支持。更重要的是,在软件配置管理的基础上建立技术协同。
StarTeam所提供的协同能力,能够真正提高生产力并取得竞争优势:所有成员主动合作和共享相关资源,实现更快、更好的目标。
总之,StarTeam是一个真正的技术协同解决方案。
|
从里到外建立协同。
|
所有的协同工具都有一个共同的目标:允许一起工作的人们快速有效地共享关联信息。这样就容易确定专业范围,并使在公共领域中的交流更方便。
因此,技术和事务协同解决方案适合于建立一个公共的、易于实现的工作人员协同工作的环境。
但是,技术和事务协同在一下三方面有重要差别:
-
使用的技术财富:事务协同的对象是办公文档和文件,而技术协同的对象是软件财富。
- 核心人员:事务协同将办公人员集合在一起;技术协同的首要也是最重要的目的是解决软件开发人员(包括管理和技术合作者)的需求。
- 使用的关联信息的复杂性:技术协同必须共享高度复杂的关联信息,其中这些关系不是立即显现的,也不会包含所有的交流内容(即交谈内容必须能被以后的合作者多次访问)。而事务合作更有时效性,简单的关联和短期的交流。
版本控制和配置管理基础
由于技术协同要求安全可靠、可审核以及有效地访问企业的关键应用,它必须建立在强大的版本控制和配置管理上...一个事务文件通常随着版本发展,而应用部件必须是可以在时间上游动的,即能够支持频繁的回溯和修订。
进一步,技术协同必须与开发人员日常使用的工具和环境紧密集成在一起。
特别支持软件开发
除非软件开发小组利用技术协同系统,否则所有的协同将会停止在与信息组织的其余部分分隔开来的地方。这就是StarTeam为什么提供扩展的开发支持功能的原因,如差异比较、可视化合并、版本标签(version
labeling)、审核印迹(audit trails)、表示阶段的虚拟视图、时间游动事例(time-travel
instances)和私有对象等等。
信息关联的表达和共享
为了支持复杂关联信息的共享和重用,技术协同工具必须能够做到:
- 适当地表示关系,通过一个通用化的链接引擎支持所有在协同信息库中跟踪的对象之间的扩展链接。StarTeam将这种链接扩充到文件、版本、变化请求和会话。
- 支持同一个数据库的多虚拟视图,因此每一个功能范围都能够“看到”与之有关的关联内容。StarTeam通过最先进的虚拟视图支持这种需求,从协同环境的所有对象中虚拟选择,从而实现生命周期阶段化、时间游动、调试、私有视图和其它许多功能。
- 不断积累应用开发中产生的知识,使得诸如文档、帮助平台、质量保证人员等等能够快速有效地共享这些知识,而不会额外增加沟通成本。
|
|
因此,技术协同加强了“同心环”之间的合作,从开发环境向外扩展到:
- 技术协同
- 程序管理办公室(PMO)
- 项目管理功能(PM)
下面我们将看到,这些不同的功能组的需求是有差别的,但是它们都有一个共同的目标-技术协同。
|
开发需求
当前的分布式开发环境强调软件配置管理解决方案的能力:
-
产品化的信息库:StarTeam提供一个可伸缩、成熟的信息库,完全面向对象,版本化所有的对象(包括文件、目录、视图和变化请求),完全支持多重实体关系。StarTeam信息库使用了扩展的行业标准,如ODBC、COM、JAVA
beans和Active-X等等。
- 真正的客户/服务器体系结构:基于文件系统的工具(如PVCS和SourceSafe)很难有效地运行在WAN、Internet或WEB环境中,因为其性能是难以接受的。
- WAN/WEB优化:StarTeam特别针对WAN、Internet和WEB进行了优化,增强了诸多特性,如加密、压缩、增量式提交(即只提交差异部分而不是这个文件)、数据库的远程同步(无需传输所有相关的文件)等等。
- 可视化配置管理:特别方便使用,且功能强大,允许开发人员以一种可视化和直观的方式定义任何数量的数据库切片,支持分阶段、“时间游动”和调试。
- 所有信息库对象之间的通用化链接:用户自然地用关系表示上下文相关的内容,而与其他开发人员共享这些关联内容对他们的工作来说是至关重要的。StarTeam支持对这种关系的要求,跨所有对象类型(文件、版本、会话和变化请求等)的通用化链接简便易用。
- 功能集成:为什么开发人员不得不使用两个单独的应用:一个制作变化,另一个跟踪这些变化和外部变化请求之间的关系?StarTeam在一个高效率的用户界面下集成了所有这些功能。
- 易于使用:屡获殊荣的StarTeam图形用户界面是一个高效率、直观、使用方便的开发环境。
- 与开发工具集成:StarTeam与所有主流的开发工具集成。同时,StarTeam提供应用接口开发的能力(通过COM和JAVA
beans)。
- 与其它配置管理软件的透明互操作:如果你的开发队伍已经使用了其它版本控制工具,如PVCS和
SourceSafe,StarTeam保护和继承你当前的工作和投资,你可以在一个用户界面下透明地使用三个产品的版本档案(单独或通过StarTeam)。这不是导入/导出功能,这是完全的透明互操作!
技术协同
传统上将开发环境划分为开发、测试、集成和产品,越来越独立于与其它技术功能,如文档、设计、计划、外部资源、管理、帮助平台、经营主管、客户等等。
作为一个例子,让我们考虑WEB应用开发:JAVA开发人员如何能够没有说明文档、设计人员、手册编写人员等的密切协同?
如果不能满足下列关键需求,则这些技术协同将不能发挥作用:
-
非常容易使用:传统的开发工具需要大量的使用培训。而让管理人员去上课是乎有些困难。
- 熟悉文件管理界面:用于存取文件夹、文件和任何其它对象的界面应该与Windows资源管理器相似,绝大多数合作者都会使用它。
- 地理位置独立:管理人员和开发人员都可能分布在不同的地方,或临时变动工作地点,但他们都需要随时访问有关系统。
- 直接的关联导航:StarTeam的多向链接能给技术协同者带来巨大的好处,因为链接提供了一个容易跟随、直观的导航机制,轻松访问与特定对象关联的文件、变化请求和会话等。
- 线索化的会话:在开发和维护过程中,StarTeam用线索化的会话的形式保持日常的活动和决定,用户将从中积累大量有价值的知识,这些知识库可以直接被其它技术协同者访问。
程序管理办公室(PMO)
在大型项目中,经常需要一个程序办公室,是管理这个应用的中心。
根据行业专家的研究报告,如果不使用集中的记录数据库,程序办公室将无法开展工作,集中数据库中所有受影响的对象会被跟踪。
StarTeam 2000是StarTeam Professional的一个特别版本,增加了以上功能,提供对依从跟踪系统(Compliance
Tracking System)的综合支持。
CTS变成了建立记录数据库的理想工具,通过与StarTeam的集成,将数字化财富、依从工作及其在软件部件上的表示形成了一个闭环。
项目管理功能
开发环境处理文件、变化和资源,项目管理针对任务、工作分配、依赖关系和时间。
尽管有许多项目管理产品,如Microsoft
Project,但通常都不能很好地支持开发项目,因为跟踪制作变化的时间、执行它们所用的资源和更新贯穿整个生命周期的项目信息需要很高的开销。
这是很不幸的,因为开发人员确实希望从项目管理功能中获得好处,并且因为诸如应用软件这样关键的财富游离于项目管理框架之外。
要提高团队生产力,必须将项目管理功能与开发环境集成在一起。集成必须能够:
- 支持任务,任务是一个完全激活的对象,用于关联资源、变化请求
、工作分配和变化。
- 完全集成任务对象与开发信息库中维护的其它对象。
- 支持项目模板,因此任务和工作分配能够自动应用到相似的项目中。
- 开发信息库和MS Project引擎之间透明、双向的数据更新。
StarBase支持上述功能,为你提供了一个完整的应用开发项目管理解决方案。
协同的所有原理是-自底向上。即从低层的服务到高层次的协同功能。
首先,协同提供的最基本的服务是产品化的、成熟的版本控制和软件配置管理。因为协同是建立在应用财富之上的,它们必须被安全地管理、审查、保护和版本化。
StarTeam提供的版本控制引擎支持典型的软件开发事务,如文件差异分析和合并、版本标签、建立支持和文件管理等等。
StarTeam的版本控制引擎与Oracle、Symantec、Allaire、Haht
Software等其它许多软件公司提供的版本控制工具是一样的。
共同访问信息技术财富
多少年来,开发队伍已经使用版本控制保护其信息技术财富。因此,当在开发小组之间实现协同时,你将发现开发小组会逐渐抛弃传统的版本控制工具。
StarTeam是唯一能保护你的版本控制工具投资的这种产品,提供与其它版本控制工具(如PVCS和SourceSafe)的透明互操作。不仅是导入/导出功能:完全的真实的互操作。即用户A可以使用SourceSafe建立一个文件的版本,用户B使用StarTeam,那么任一用户都可以通过SourceSafe和StarTeam访问自己或他人的版本。
协同框架
在版本控制引擎互操作之上,StarTeam建立了它最重要的功能层:协同框架。StarTeam这一独特的体系结构,是建立世界级产品的基础。
该功能层的技术描述是:强壮的,可伸缩的,基于标准的,面向对象的信息数据库,完全版本化的,支持多向通用化链接。用通俗的话来说就是,协同框架是StarTeam允许所有团队成员快速有效地进行协同工作的功能性(表示和共享关联信息)。
协同框架提供:
-
从任何地方进行安全有效的访问:StarTeam是一个客户/服务器产品,针对宽带和窄带连接进行了优化设计。用户能够使用下列方式访问PVCS、SourceSafe和StarTeam版本库:
- 运行在LAN、WAN或TCP/IP连接(如Internet)上的StarTeam客户端应用。
- 运行在任何JAVA平台并连接在LAN、WAN或Internet上的StarTeam
JAVA客户端。
- 一个标准的浏览器,不需要装入插件程序和JAVA小程序。
- 获奖的易于使用的图形用户界面:StarTeam已经多次被专家和用户一致评定为软件配置管理类中最容易使用的产品。无论你是开发人员或是不懂版本控制的技术协同者,都可以立即学会使用StarTeam,并且其功能性将会给你留下深刻的影响。
- 直观的文件管理界面:StarTeam让你通过熟悉的Windows风格访问项目中的文件目录结构。你可以在许多文件夹中使用相同的文件名:StarTeam使用的文件和版本名字没有限制,这与Windows环境不同(许多基于文件相同的工具是有限制的)。
- 通用化链接引擎:StarTeam数据库中所有的对象,无论文件、版本、变化请求或会话,都可以被任意链接,以表示它们之间逻辑和/或物理关系中包含的关联信息。你要想了解一个对象的上下文关系,只需跟着链接走。
- 可视化配置管理:定义信息库的虚拟视图的能力对用户来说总是有吸引力的,但通常在高端的SCM工具中才会有。StarTeam实现了这一特性并且更进一步,包括用户界面的所有可视化元素。StarTeam用户能够可视化定义和维护虚拟视图实现隔离应用场合、阶段化(例如开发、测试、集成和产品等)、对应用过去的任何精确的日期和时间的时间游动、执行增量式调试等等。
协同框架中的所有功能可应用于信息库中的所有对象、建立在其上的任何生产力模块以及任何与StarTeam通讯的应用。
标准接口
StarTeam基于标准的集成接口层能够扩展信息数据库的功能性。它提供了从任何使用COM或JAVA
Beans的应用完全存取所有信息库对象的能力。因此用Visual
Basic、JAVA以及COM或JAVA兼容的语言编写的应用都能存取StarTeam中保存的版本、变化请求、会话、任务或其它任何对象。想象一下这样的可能性,将自己内部开发的应用和第三方的软件包集成在一个保存有你的信息技术财富的透明的信息库中,不管它们是在StarTeam还是在SourceSafe数据库中,这不是很美妙吗?
生产力模块
生产力模块是集成的部件,它增加了对象定义和功能性,如变化请求管理、会话、任务管理等等。
生产力模块自动集成到StarTeam的用户界面。要在StarTeam客户端应用中实现一个新对象只要有一个动态连接库.DLL即可。将一个.DLL拿走,与该特殊对象(如变化请求)有关的所有功能性将立即从用户界面上消失。
这一独特、最先进的对象集成技术是StarTeam强大的协同框架体系和信息数据库实现的副产品。
集成自己的应用
前面描述的基于标准的集成,同样适用于你自己内部开发的应用,可以用VB或任何COM或JAVA
Beans兼容的语言实现。
集成多厂家的应用
互操作层让版本控制引擎协同工作,协同框架使用户合作。同样,标准接口层实现技术的协同。
StarTeam正在推出StarPartner软件合作伙伴策略,通过StarTeam
SDK,保证其它技术能够利用StarTeam生产力模块同样的机制使用产品信息数据库的服务。
StarTeam是目前唯一的企业级协同解决方案。
StarTeam是一个集成的解决方案,为企业信息组织中从开发人员到项目管理人员的所有成员带来了好处。
这一革命性的解决方案事实上正在成为标准。许多全球性的大型企业正在采用StarTeam,通过建立跨团队、跨部门、跨专业的协同工作,提高应用队伍的效率。 |