
一、背景简介
当前,企业在团队的应用生命周期管理(ALM)方面面临很大挑战,这些挑战体现在:
●各种类型的管理挑战同时并存,既有内部的研发管理,又有外包开发的管理,以及如何实现研发与运维之间的无缝衔接。 不同方面的管理需要采纳不同的手段,而这些手段本身必须是有机统一的,必须在统一的平台上开展。 如何利用企业有限的IT人力资源实现高效的管理,也是摆在管理层面前的课题。 ●项目延期,系统质量低下。 作为公司的IT主管,如何才能实时了解团队的状态? 与计划相比进度如何? 最有风险的区域在哪里? 当发生问题时,是否能快速进行溯源分析? ●IT团队受到来自业务方面的强大压力,需要提升IT研发和运维的透明度和自动化程度。 ●作为团队个体来说,需要有一个协作平台来高效协同工作。 哪些任务是分配给我的? 优先级是什么? 这些任务之间是不是存在依赖关系? 哪些是有待我审批的? 并且这个平台应该能帮助人们尽可能减少一些手工重复性工作。 例如,当开发人员关闭分配给他的请求时,应同时更新项目计划和状态报告。 |
总而言之,我们希望有这样一个平台:
能够完整覆盖从业务部门提出原始需求到IT部门经过分析形成IT需求,到开发、测试、上线、反馈的全过程;
必须满足各个角色的诉求,从IT主管到项目经理,到开发人员、质量保证人员、需求工程师、配置管理人员等,最终提升研发管理水平。
二、解决方案
(1)软件项目管理

●内置支持各种过程方法论的项目模板,帮助项目快速启动,项目模板中已经内置相应的流程、角色、权限设置、报表和度量体系等,在创建项目时只需要选择相应的项目模板,帮助我们在几分钟之内即可完成项目的搭建,且快速而准确。 ●流程驱动,无论是新手,还是熟练员工,皆可通过流程的引导,快速无误地完成工作。 ●实时项目规划,帮助管理层发现项目执行过程中存在的资源与进度等风险,在前面讨论项目管理现状时,我们谈到,项目管理需要自动化的帮助,而ALM在独一无二的精确、可信级别上提供了这种自动化。 ●内置度量与报告功能,帮助团队监控与持续改进过程。 |
(2)需求定义与管理
ALM处于艺术级需求管理的最前沿。
面向文档的领域专家和其他人员可以使用熟悉的Microsoft Word和Excel来创建和编辑需求,轻松导入它们到Web文档,并在线协作,或通过我们独有的Word/Excel双向协同技术实现离线协作。
其他需求管理特性包括基于链接角色的跟踪矩阵和树形视图、完全可定制的多级需求审批过程、影响分析和可跟踪性报告。
●可追溯性:实现严谨且全面的可追溯性对于基于文档的方法来说是非常困难的,即使是对于工具来说,实现可追溯性常常也是事后弥补的结果,并且可视化效果也不好。ALM实现了既有深度又有广度的可追溯性,易于实现,并且完全透明。 ●集中式的仓库,确保具有单一可信的来源:对于ALM,所有来自生命周期不同阶段的数据集中保存在后台的Subversion仓库之中,这确保了数据是统一口径的,且没有冗余。 ●整合需求到整体过程之中:在绝大多数情况下,需求被孤零零地放在Office文档之中,与实现和测试环节没有联系。使用ALM,需求已经成为整体开发过程中从开始到结束的不可分割的一部分。 ●内置审批与变更管理功能:ALM支持需求及其所生成的工作项的审批工作流。每个需求和每个任务可分配一个或多个“审批人”(也就是会签),并支持电子签名。当所有的审批人签署同意后,需求及其相关任务将被添加到项目计划中并在“实时规划”视图中反映出来。 ●开放接口,可接入各种需求来源:提供了开放的接口,通过这一接口,系统中的各个角色可以使用他们熟悉的方式来表达原始需求,并最终实现原始需求和业务需求以及IT需求之间的可追溯性。 |
(3)软件配置管理
●采用版本控制系统作为存储机制,与变更管理、项目管理、测试管理等无缝集成。 ●强大的流程自动化能力,可强制执行各种业务规则。例如,我们可以强制在开发人员提交代码时,必须关联到分配给他的任务才能提交,并且这个任务必须是尚未关闭状态(可以根据自己的需要,挑战提交时的检查业务逻辑)。 ●通过自动化,将日常例行的工作由工具执行,将开发者从烦琐的日常事务中解放出来,从而更专注于更有创造力的任务。例如,自动化生成工作报告、自动化生成报告等。 ●内置构建引擎。 ●对Maven、Ant、Shell和Make等构建工具的支持,并可与Jenkins和Hudson等工具集成。 |
(4)测试与质量保证

ALM不只是测试工具,它是一个完整的质量管理平台,旨在减少成本和改善总体质量。
ALM使得创建测试案例,并将它们映射回需求变得轻松。
一旦完成测试案例的撰写,你就可规划手工或自动化的测试执行(包括第三方测试自动化工具)并将结果报告给所有涉众

●安全访问:你只需使用任何能够访问Web的设备,在任何地方都可以分享文档与测试用例、分配工作任务,通过可定制的工作流触发告警、邮件通知,再加上订阅功能,使得开发工作和QA工作可以很容易地进行直接的交流沟通。 ●快速导入测试用例:可以很容易地从Excel导入测试用例和创建工作项来进行跟踪、管理。在导入文档后,可利用我们专有的Word/Excel双向协同机制与外部的干系人协同工作,他们仍使用Microsoft Office。 ●可跟踪性:链接测试用例到需求、缺陷、需求变更和其他任何必需的工作项是很容易的。链接是实现ALM可跟踪性和影响分析特性的关键。可以在项目内、不同的项目之间甚至在不同的服务器之间创建链接。 ●测试自动化:通过测试自动化节省时间,在快节奏的迭代开发模式下,测试团队管理迭代过程变更的难度加大了。执行测试用例可完全自动化,包括测试结果的采集与实时查看。与现有的自动化测试工具和流程的无缝集成,测试可被手工加载或者调度执行。 ●工作流程自动化:可定制的工作流得以固化、自动化QA过程。对每一种工件类型(需求、测试用例等),使用ALM预定义的或者用户自定义的工作流可确保在整个开发生命周期中没有任何东西被忽略、误解和避开。 ●实时报告:透视任何测试项目,给干系人展现测试活动的当前状态和结果。报告覆盖了常用的主题,且能够完全被定制。仪表板汇总给管理人员展现当前精确项目的进展信息。 |
(5)构建与发布运维
●内置构建引擎,支持Maven、Ant、脚本3种构建类型。通过配置构建工件、构建描述器、构建属性,提供了自动化的构建脚本。目前采用Ant作为构建工具,采用Ivy作为依赖管理工具,对于这样的使用情形,ALM也能提供支持。 ●测试自动化。 ●可以配置在构建时执行单元测试,以及每一次构建的同时执行单元测试。 ●通过调度器,实施每日构建与持续集成。 ●把每一次构建与工作项关联起来,知道每一次构建所解决的问题。 ●提供自上次成功构建、自某次构建、自某个日期以后、自前面几天这4种方式获取每一次构建所解决的问题清单。 ●构建结果集中存储,统一访问。 ●与Jenkins/Hudson构建无缝集成:实现与Jenkins的无缝集成。ALM可触发Jenkins构建;在Jenkins的构建上通过ALM WebService接口采集到一次构建对应的需求、任务清单;Jenkins构建信息、单元测试结果可反馈到ALM中。 |
(6)业务系统集成

●提供了WebService接口,与异构系统的集成不存在障碍。WebService是技术中立的技术,无论是什么语言都支持WebService,因此,团队可以选择自己最擅长的语言来完成对WebService的调用。通过WebService,也很容易编排成BPEL,从而实现SOA体系架构。 ●通过Java Open API做二次开发。 |
(7)工作流协同
ALM为应用开发过程中的所有工作项提供了工作流驱动的变更管理。
开箱即用的项目模板、带有预定义的工作流可自动化流程,确保没有步骤被遗漏或绕过。
支持敏捷/精益、传统、混合或定制的环境,如FDD、XP、Scrum、RUP、Kanban等。
(8)协同沟通
基于Web的平台可确保任意地点的分布式团队的24/7项目访问。
实时仪表板、报告和活动流为涉众提供了实时的关键信息和度量;
可发布受访问权限控制的线索化评注;
通过Email发送变更通知;
提供智能的在线文档,并带有绘图工具。
通过Microsoft Word/Excel双向协同功能实现离线协作。
三、价值体现
通过本方案前面的介绍,我们可以了解到,通过采纳ALM平台,可以获得如下收益:
●将整个公司的研发团队统一到以ALM为中心的研发管理平台上,并打通与现有工程化管理平台、测试管理平台的连接,实现端到端的透明管理,同时保护现有投资不浪费,将来如果有需要,也可平滑迁移。
●团队中的各个角色都具有可供利用的完整特性,包括项目经理、开发人员、配置管理人员、测试人员、SQA、PMO、D-level和C-level的人员等。各个角色、团队之间的协作更便捷,没有数据孤岛,没有信息的不一致发生,因而效率更高,提升了整个公司的绩效与竞争力。
●ALM具有极强的可塑性,平台的各个方面皆可配置,其本身是基于插件体系架构,并提供了100%开放的API,这意味着可随时根据业务的需要调整平台的运作模式,从而在市场竞争面前做到研发管理系统的快速应对。
●平台内置了计算引擎和度量功能,这便于在ALM平台上开展各种SQA活动,渐进有序、可视化地推进研发管理系统的建设。


