以知识为核心的ALM之知识管理篇

随着软件项目越来越复杂,规模越来越大,开发团队越来越全球化,企业对科学高效的应 用生命周期管理(Application Lifecycle Management)的需求也越来越迫切。周铁人博士带领TechExcel公司十余年来始终专注于ALM领域,帮助全球企业达成软件开发管理最佳实 践。2006年,公司率先提出“以知识为核心的ALM”理念和解决方案,以满足软件企业应对新挑战之需。本专栏将围绕这一具有前瞻性的论题做逐步深入的阐 述和探讨。

详细信息请参见: http://media.ccidnet.com/art/3025/20070424/1069153_1.html ----->

知识篇

十多年前,美国有一家公司,主要业务是开发汽车修理估价软件。该公司的产品可以准确地为多款车型自动、精确地计算修车价格。在一次公 司内部整理知识库时偶然发现一条客户意见反馈记录,与前不久竞争对手推出的新产品的概念不谋而合;往前追溯,发现该记录源于一年以前一位汽车修理厂经理通 过客服电话,向技术支持人员反应的需求,但由于技术支持人员失真记录,客户的意见并没有顺利传递给产品经理,从而导致了该功能未被评估和实现。据估算,因 少了这一项功能,该公司的销售损失超过200万美元。可见,知识的获取和维护,对于企业的知识管理将是一笔无法估价的财富。

知识库对企业的意义无异于心脏对人体的作用。而对于知识密集型的软件企业而言,知识的积累与共享更是重要,它在很大程度上决定了企业 能否在与对手的激烈竞争中脱颖而出并获得持续增长。

以知识为核心的ALM

ALM是指软件开发从需求分析开始,历经项目规划、项目实施、配置管理、测试管理等阶段,直至最终被交付或发布的全过程管理。在整个 过程中,最令团队头疼的是,和品质相关的过程、设计、规范等等不够透明。常常是懂商业规则的人员不懂软件开发;懂软件开发的人员不懂商业规则。两边的人用 不同的“语言”和“思维方式”,想要达成充分沟通真是难之又难。不难理解,ALM的质量和水平,是决定软件产品或软件项目成功的关键,更是软件开发组织赖 以生存和发展的命脉。

随着软件项目越来越复杂,规模越来越大,开发团队越来越全球化,传统单功能的ALM工具显然不能满足需求。他们开始寻找能够从根本上 解决ALM需求的完整解决方案。

一个完整的ALM解决方案应该具备哪些特点呢?从一些成功软件组织的经验中,我们略作总结,得出以下几点:

  • 1)完全覆盖 ALM全过程的各个阶段;
  • 2)应用于各个阶段的工具既要能单兵作战,又要能无缝集成;
  • 3) 充分发挥团队协作的效率,有利于沟通,将相关部门有机结合;
  • 4) 适合各种成熟开发模型的需要;
  • 5) 适合分布式开发团队的实际需要;
  • 6) 不仅能帮助当前的单个项目成功,还要持续作用于软件组织的未来。

仅就以上几点而言,我们在分析了数以千计欧美软件企业成功经验后,找到了一条行之有效的途径,这就是“以知识为核心”的 ALM

ALM知识周期始于最初零散的产品理念和想法,然后被提炼为产品功能规范。图1通过设计规划和产品实现的业务流程解释了 ALM中的知识周期。可以发现,从产品的最初理念到最终交付,都包含了相对应的知识,并在各个阶段有不同的表现形式。这种中央存储的知识还能使历史记录为 将来所用。

TechExcel 以知识为核心的 ALM 解决方案提供了对知识的智能搜索功能,搜索引擎可以按照知识的使用次数和读者在对每条知识的评分进行排序。这不仅可以提高用户的搜索效率,也确保了每一次 对知识的使用都帮助用户将来更好地使用知识库。

“概念产品”与“实际产品”

同其它产品相比,软件产品的质量有其明显的特殊性。在实际项目中,尤其是在中国市场上,相当数量的软件开发企业试图用各种证书来证明 自身软件开发的能力,但往往难以真正令发包商满意。其原因在于,在过去的项目中,无论发包商在项目之初如何严格审核承包商,都不能保证对项目过程的有效控 制,从而导致多数项目的最终产品与真正需求大相径庭。

归根结底,满足客户需求是最朴素、最直接、也是最有效的衡量软件开发质量的标准。因此,TechExcel提出了以知识为核心的 ALM解决方案中的一个重要理念:应用生命周期中的“概念产品(Conceptual Product)”和“实际产品(Actual Product)”。

概念产品主要是由懂商业规则的需求团队规划设计;而实际产品则主要由研发团队实现。图2显示了“概念产品”和“实际产品”的产生过程 中的两个阶段。在第一阶段,软件产品中的功能规范一方面来源于长期零散知识的积累,另一方面来自于项目本身的需求。在第二阶段,研发团队针对设计完全的 “概念产品”,通过项目规划、实施开发和测试三个步骤,将“概念产品”实现为“实际产品”。在第一阶段,需求团队为主导,但他们需要研发团队在技术方面的 建议,以保证设计是可实现的。在第二阶段,因为研发团队对商业规则不熟,需不断从需求团队得到确认,才能保证所完成之产品和概念产品完全吻合。ALM工具 就是这两个团队的沟通平台。

这种理念不仅适用于一般的软件开发项目,更是符合软件外包项目生命周期管理的需求,尤其适合于分布式开发的外包项目。通过以知识为核 心,承包方的开发团队能随时获取需要的发包方的产品设计信息,发包方也能随时获得各个功能的开发和测试进度并及时反馈相关意见,进行“实际产品”与“概念 产品”的实时比对,保证最后发布的产品与所需要的产品一致。

“概念产品”中的知识管理

“概念产品”设计规划阶段的工作主要由需求团队实现,将零散的知识和需求转变为相对应的功能规范(包含功能、缺陷、增强功能等),并 将其传达到开发团队进行开发、测试等工作。

以知识为核心的ALM表现为知识来源多样性(Variety)、可追溯性(Traceability)和易取性 (Accessibility)。知识最初可能是一封email、一个想法、甚至可能是一条关于客户对产品功能反馈的电话记录,也可能 是客户需求的改进、市场营销中新功能需求的发现、开发团队对设计的改进。这些知识最终都会进入中央存储的知识库,从而与开发或QA测试活动联系起来。

图3显示高效的知识如何实现可追溯性和易取性。首先,知识应与相关子项目和任务相链接,知识库中的文档是可进行版本控制的,这就保证 了知识的可追溯性和可核查性。另外,海量存储的知识应该有一个良好的存储结构和目录,并能够保存用户使用频次等一系列属性,以保证用户能快速准确地获取所 需知识项目。

需求只是对产品功能的一种“愿望”,产品需求虽然初现“概念产品”雏形,但它只是需求团队或客户 对产品功能的一种愿望,是非结构化、粗线条、不明确的,还需产品经理和开发工程师将这种愿望分解、具体为功能规范。

将知识和需求转换为结构化的功能规范,是整个开发过程中从战略到战术的转变。当需求团队对功能规 范中的功能、缺陷等达成一致以后,“概念产品”就产生了。功能规范中的功能、缺陷和增强功能都来源于相关的知识项目或需求列表。功能规范的结构化则表现为 其树形结构准确对应产品/版本功能树,以保证开发人员不丢失任何需求。

知识管理之于“实际产品”

通过以上一系列操作,结果将是一个设计完整的“概念产品”,它包含了完整的功能规范集合和所有相关知识。在将功能规范分配给相关人员 之后,项目进入“产品实现”阶段,包含版本控制、任务跟踪和测试管理(如图4所示)。概念产品中结构化的功能规范对于开发、测试人员都是易于理解和实现 的。在产品实现的各个阶段,开发团队都能查看与功能规范相关的知识项目,更加保证了开发人员在开发和测试活动中对需求的完整理解,从而将“概念产品”最终 实现为“实际产品”。

在实际工作中,软件开发的各个过程常常需要动态地反复迭代推进,直到最终的产品发布或项目交付。在此过程中,软件项目完全可以由分布 式的设计和开发团队共同完成。只要通过知识核心随时获取需要的产品设计和开发信息,进行“实际产品”与“概念产品”的实时比对,就能保证最后发布的产品与 所需要的产品一致。更重要的是,通过长期的知识积累,将为软件企业未来的项目开发夯实基础。

周铁人,TechExcel 公司总裁、CEO、首席架构师。周铁人博士是“以知识为核心”的应 用生命周期管理(ALM)领域的专家,他于 2007年4月荣获中国软件行业协会授予的“2006 年度中国软件企业十大领军人物”称号。

更多新闻 >

售后服务平台登录

用户名:

密码:

登录

分享到微信朋友圈