把知识管理融入软件过程改进 [1]
龚波
 
  软件过程改进是知识密集型活动,知识管理能够提升过程改进的效果。分析知识管理和过程改进之间关系, CMMI 模型中蕴涵的 KM 思想;根据显性知识和隐性知识两种知识分类方法,分析 SPI 知识特征和 SPI 活动的知识资源。为促进知识管理活动的评价和实施,提出基于 CMMI SPICE 模型的知识管理成熟度模型 KMCE ,这个模型是面向过程的,分成 5 个等级(初始级、意识级、规范级、定量管理级、优化级);每个等级包含一系列过程域,过程域是按照人、过程和技术等领域划分的。实践表明, KMCE 模型有助于组织评估和改进 KM 结构,支持系统化的知识管理策略。
关键词   知识管理   过程改进   CMMI 模型
中图分类号  TP311
Integrating Knowledge Management into Software Process Improvement
Gong Bo
Abstract   Software Process Improvement (SPI) is a knowledge intensive task; Knowledge Management (KM) can enhance the effects of SPI. This paper analyzes the relationships between KM activities and SPI activities, the dependence among KM activities and CMMI model, finding CMMI model embody main KM ideas. According to the classification of explicit knowledge and implicit knowledge, the characteristics of SPI knowledge are investigated, and the types of SPI knowledge are identified. In order to evaluate and implement KM activities, knowledge management maturity model KMCE (Knowledge Management Capability dEtermination) is put forward. KMCE model is process-oriented, contains five stages like CMMI model: Initial, Aware, Institutionalization, Quantitatively Managed, and Optimization. Every stage consists of a few PAs (Process Area); PAs are classified in term of people, technology and process. This model is based on the ideas of quality management and process engineering. It has been proved that KMCE model can assist in organizations assessing and improving their KM structures to control knowledge processes.
Key words  Knowledge Management; Software Process Improvement; CMMI model
软件过程改进是知识密集型活动,需要不断学习和采纳新技术,并且综合过程改进模型、本身和其他组织最佳实践、本身实际资源状况,制定与时俱进的过程改进推进策略;不仅保证过程改进部门成员掌握这些过程改进知识,而且项目组成员也需要掌握这些知识。这种过程改进知识有些是显性的,有些是隐性的。如何有效挖掘、沉淀、共享、应用这些知识是组织保证过程改进效果的基础。 CMMI/ISO9000 等模型在很多地方已经体现出 KM 思想,但是没有提升到系统化、产品化的高度。 知识管理理念对软件企业和过程改进组织核心竞争力的促进作用,国外业界非常重视,进行了相关的研究。
[6] 分析了组织知识创建过程如何支持 SPI 活动。 [9] 研究在中小型软件企业中,把 KM 作为补充 CMMI 模型的关键过程域。 [10] 研究在小型组织中知识学习、共享和 IT 支持问题。 [7] 分析在 SPI 中知识传递者的角色,并开发一个框架支持 KM 实现;把 SPI 作为组织学习过程,并提出两种主要的学习策略:( 1 )注重知识共享和干中学的探索策略;( 2 )注重以标准过程和指南等方式创建显性知识的明文化方式。 [9] 分析 AZ 公司的三次基于 CMMI 模型的过程改进努力,其中前 2 次失败了,最后一次过程改进成功了,他们分析原因是第 3 次过程改进活动超越了传统的软件过程改进思路,关键是把变更管理和知识管理放在战略地位。 [10] 认为, KM 应该被视为软件过程和软件产品持续改进的基础,认为: SEPG 组织管理需要 KM SPI 的过程实践也需要 KM 。上述这些研究都说明了在软件组织和 SPI 活动中应用 KM 的价值。
还有一些软件过程改进组织使用 KM 系统来固化知识管理实践,诸如 NASA-SEL 使用 Experience Factory 来支持过程改进。 Daimlen Chrysler SPI 活动中使用 Experience Base 印度 Infosys 公司很早就意识到知识共享对企业和项目的重要性,基于知识管理理论建立了知识管理门户 “K-Shop” “People-Knowledge Map” [1] K-Shop 支持过程管理,存储各种项目的案例、最佳实践和项目经验。 People-Knowledge Map 是一个类似于西门子的人才援助网络,让每个人都能够成为知识供应源。
本文讨论知识管理对过程改进的促进作用,以及如何在软件过程改进中应用知识管理,把知识管理理论实践化。首先讨论国外关于过程改进和知识管理相结合的研究成果,接着重点过程改进涉及到哪些知识管理活动和知识类型,提出一种基于 CMMI SPICE 的知识管理成熟度模型 KMCE

1 CMMI模型蕴涵KM思想

CMMI 模型实际上是 KM 策略的表述方式,虽然没有明确使用知识管理的概念和方法,但是知识管理思想已经体现在这些模型中,体现在 SPI 活动中 [11]
CMMI 模型是适合于软件组织过程改进的抽象的、理想化的模型,并且不断进化发展。这个模型显性定义了实践活动,诸如 5 层模型、特定成熟度等级的关键过程域,以及每个关键过程域的目标和实践。这样做有利于在不同组织中复用这种知识,以便于评估过程能力和指导实践活动。
为了促进 CMMI 每个关键过程域和每个成熟度等级的有效实现,作者分析 CMMI 模型不同等级阶段应该提供的知识管理策略。对于这些策略, CMMI 模型已经提到,有的即使没有提到,但是在 KPA 条件和保证中已经蕴涵这种要求。表 1 简要说明 CMMI 模型中蕴涵的 KM 思想。
1 CMMI 模型蕴涵 KM 策略
Table 1 KM strategies in CMMI model
成熟度等级
知识管理重点
1 -初始级
没有意识到知识管理,企业和个人知识管理是混乱的。
2 -重复级
实现重复可以为组织节省大量时间和成本。重复的重点应该是能够带来更大价值的最佳实践、策略和过程,同时保证系统一致性。本阶段的知识管理活动应该是重点:最佳实践管理、需求管理、项目知识管理、产品知识管理,等等。
3 -已定义级
为有利于知识创建和沉淀,需要引入知识协作和文化建设。建立组织和个人学习机制。本阶段知识管理活动重点包括:工作流或者知识流管理(过程设计)、文档 / 内容管理、协作管理、学习管理,以及性能和进度管理,等等。
4 -定量管理级
每个知识管理活动必须使用度量数据进行监控,进行性能分析,并与商业目标关联起来,以确保真正符合企业需求和带来竞争优势。本阶段知识管理重点为:性能和进度管理、评审管理、产品知识管理,等等。
5 -优化级
需要 KM 持续创新,以适应环境和技术变化。本阶段知识管理重点包括:变更管理、问题管理,推进制度建设等。

2 SPI知识特性和知识活动分析

按照隐性知识和显性知识的分类,与 SPI 活动相关的显性知识包含三类:( 1 )软件工程知识,比如 IDEAL 模型、 CMMI 模型、过程描述、指南、模板、剪裁手册、规程等;( 2 )项目知识,诸如不同时期、不同类型项目的项目文档和统计数据,标杆企业和项目的最佳实践;( 3 )个人知识,比如 SQA 、程序员、项目经理、咨询机构等提供的反馈、实践心得、技巧。
隐性知识存在于 SPI 参与者的头脑中,需要有关机制,比如读书会、评审会、头脑风暴、 Q&C 咨询、经验报告会、工作总结、专家网络等帮助挖掘出来,显性化以便于更多人学习和应用。有些知识即使不能显性化,也可以通过现场会等方式潜移默化到其他人的头脑中。
隐性知识在 SPI 活动中发挥着重要的作用,比如如何集思广益创建有效的过程,如何根据项目情况对组织标准过程进行剪裁,如何根据其他人的使用反馈,对过程进行 SWOT (优势,劣势,机遇,挑战)分析,进一步进行调整和改进,等等,这些都需要隐性知识。图 1 说明 SPI 活动中不同参与者之间的知识交互活动。
把知识管理融入软件过程改进_第1张图片
 
SEPG 组是过程改进的核心管理机构,负责规划和管理过程改进活动,以改进软件过程和实践;创建或者修订过程,制定规程、指南和模板;负责向项目组或者项目成员进行培训,并获取他们的反馈。
在组织中实现新过程的一个主要挑战是如何让工程师把按照过程规范行事当作自然的事情。为了达到这个目的, SEPG 组需要与项目参与者在项目开始之前坐下来讨论可能影响项目的关键因素,诸如质量需求、项目的组织规模、时间和成本限制、项目成员数量和技能水平,以及既往类似项目的基本参考信息等。基于这些基本信息和沟通结果,可以确定项目过程如何从标准过程库或者规范模型剪裁,以及文档和其他知识对象的处理过程(产生、评审和验证等)等等。 SEPG 组会把这些协商内容和成果存储起来,并发送给项目组成员。在项目实施过程中, SEPG 组需要收集项目组对过程和模板可用性的反馈,以便于及时修正。
SEPG 组提供的另外一个服务是及时向软件项目、工程师和管理者提供过程改进咨询。咨询的问题可能是千奇百怪的,诸如具体模板的使用,或者新规则和政策的解释。 SEPG 组也可以帮助软件项目承担起咨询服务职责。 SEPG 组成员可以被视作软件项目的质量保证专家,以评审项目和产生的文档。
当引入新的过程,或者调整已有过程时, SEPG 组需要采取合适步骤,保证所涉及工程师都能及时掌握和了解这种信息。而且所涉及工程师的反馈也非常重要,工程师的反馈和过程使用问题作为新改进活动的触发点。

3 KM成熟度模型KMCE

鉴于知识管理对软件企业和过程改进的重要作用,国内外 IT 企业对知识管理非常重视。知识管理实施不是盲目的,最好有一个定性或者定量的模型能够辅助企业进行自身评价,确定改进重点和步骤;由于软件企业对 CMMI 或者 SPICE 模型的架构和实施非常熟悉,对基于过程的系统方法深有体会,能否有基于过程的知识管理模型方法能够与基于 CMMI/ SPICE 模型的过程改进一同实施?可惜的是,现在尚无基于过程的 KM 活动评价模型。
本文基于质量管理和过程工程,提出一个KM评价模型KMCEKnowledge Management Capability dEtermination),以期辅助软件企业/过程改进组织评估和改进其KM结构来控制知识流动过程。KMCE采纳了LangenMoore的思想,并且分析了软件管理相关的模型。因为软件可以被视作一个知识介质,软件管理的有关质量和度量模型可以作为KM度量模型的参考。
KM模型定义方面,作者采用类似的思路,使用面向过程的SPICE方法作为参考,来辅助建立KM评估模型。同时,为了便于软件企业和过程改进组织方便学习和掌握,KMCE模型的定义采用类似于CMMI模型的结构来定义成熟度等级。KMCE成熟度框架定义的5个成熟度等级如表2所示:
2 KMCE成熟度等级
Table 2 KMCE Maturity Level
 
成熟度等级
特征
描述
1 – 初始级
混乱的状态。组织和个人还没有有关知识管理的明晰的概念和认识,即使有知识管理通常也是一种无意识的行为,没有进行任何规划,并且随意变化;组织的知识是零碎分布的,很难得到共享,很多主要知识存储于个人头脑中,相信正轨培训是学习的唯一方式;也缺乏必要的技术手段。
我们已经拥有太多知识,现在是应该努力工作的时候!
2 – 意识级
对知识管理有所认知,认识到知识必须加以管理才能充分发挥作用;对日常工作不可缺少的知识已基本文本化,但知识创新仍属特殊行为;在技术上存在基本的知识记录系统,但数据格式仍然不规范,数据集成层次比较低,知识浪费现象仍严重。认为组织知识应该管理,但那是别人的事情。
我们需要管理知识,但是太忙了,没时间做!
3 – 规范级
规范的知识管理实施策略。已经有专门的组织推进知识管理的建设,角色及任务得到明确的定义;具有透明的知识的管理和维护机制,存在逻辑化的知识内容结构,知识内容不断增长并得到有效维护,总体来说处于知识生命周期管理的初始阶段;在技术上具备了基本的信息系统,实现了对知识的单点访问能力,但知识仍然没有得到有效集成。
我们看到价值,正在尝试实施。
4 – 定量管理级
造成知识障碍的组织边界被打破,知识实现了客户化,人们能够随时随地得到使用和学习知识;知识过程扩展到整个组织,知识应用和共享给给业务带来明显的效益,并得到了定量评估,基本实现了对知识全生命周期过程的管理;在技术上建立了整合的知识基础结构,知识内容与业务过程得到了有效集成。
我们已经从知识管理获益诸多,但是需要保持下去。
5 – 优化级
建立持久改进和自我优化的机制;知识管理活动能够随着环境变化自我和自然地调整;共享文化已经制度化,共享成为组织的第二特征;组织在决策、管理以及运作的各个层次都和知识紧密结合,组织成为知识领导者,知识过程持续改善,知识内容不断创新;知识管理技术成为业务运作的有机组成部分,并体现了很高的智能,具备了知识表示、知识挖掘以及商业智能的能力。
我们在组织范围共享知识,并为之自豪!
SPICE使用过程域(PAprocess area)来进行过程定级,KMCE模型的基础单位是PA。在每个等级都定义5个过程属性。为了便于与SPICE进行比较,这些过程属性被根据3个管理区域进行分组。如表3所示。
3 KMCE模型的过程属性
Table 3 Process Attributes in KMCE model
 
成熟度等级
过程
技术
1 - 初始级
2 - 意识级
PA 1.1 : 进行知识管理概念导入,并建立 KM 团队以加强员工对 KM 的认识
PA 1.2 : 实施知识管理盘点,明确知识管理重点
PA 2.3 : 知识管理过程被规划和记录
PA 2.4 : 知识过程的知识贡需者、监督机制基本建立
PA 2.5 : KM 方法的局部技术支持已经存在
3 - 规范级
PA 2.1 : 建立知识管理激励机制
PA 2.2 : 建立完善的知识管理实施策略,建立相关推进机制
PA 3.3 : 建立标准的知识管理过程,包括知识标识、沉淀、使用、评价、共享、应用和创新机制
PA 3.4 : 仔细规划岗位技能,建立知识库和岗位技能关联,建设企业知识管理流动机制,实现系统化的企业知识到个人知识的传承
PA 3.5 : 存在系统化的支持系统,诸如企业知识门户
4 - 定量管理级
PA3.1 : 个人定量管理个人知识
PA 2.2 : 管理者使用诸如 ROI 等定量数据管理企业知识和知识管理效率
PA 4.3 : 基于知识管理过程效率和用户反馈,定量管理过程
PA 4.4 : 基于定量数据实现全员决策
PA 4.5 : 技术支持手段完全建立,技术支持影响能够定量评价
5 - 优化级
PA 5.1 : 建立相关机制,促进知识管理的持续改进
PA 5.2 : 系统化 KM 结构保障管理层的持续参与和支持
PA 5.3 : 建立及时的过程改进和自我调整机制
PA 5.4 : 建立适应环境变化的 KM 管理机制和持续推进制度
PA 5.5 : 过程支持的技术支持被随时优化

4 结论

知识管理关注软件企业的知识资产,能够在一定程度上解决软件企业的人才流失、组织失忆等诸多问题,能够解决 CMMI 过程改进中如何做,怎样做,做什么的问题,这些问题都不是传统的管理手段和管理工具能够解决的。知识管理实践对中小型企业也具有同样的价值,当然每个企业的组织类型、产品、技术、文化、组织架构不同,相应的实施方法和步骤也会有差异,要因地适宜。
本文分析 SPI 活动为什么需要知识管理,知识管理策略如何在 SPI 活动中得到实施;提出一种类似于 CMMI SPICE 模型的知识管理模型 KMCE ,这个模型采用 5 层模型,有利于过程改进组织规范实施知识管理,提升实施效果。

参考文献

 NITHYA R. Building Successful Software Companies in Developing Countries – The Case of India and Infosys [G], [url]http://www.infosys.com[/url], 2004
 MAIER R., LEHNER F. Perspectives on Knowledge Management Systems – Theoretical Framework and Design of an Empirical Study[A], Proceedings of the 8th European Conference on Information Systems[C], Vienna, 2000
 EHMS, KARSTEN, LANGEN. Holistic development of knowledge management with Knowledge Management Maturity Model[OL]. Munich: Siemens AG. Website: [url]http://www.kmmm.org[/url], 2002
 PAULK, MARK. The Capability Maturity Model: guidelines for improving the software process [M]. Boston: Addison-Wesley, 1995
 HOCH D. J., ROEDING C. R., PURKERT G. Secrets of Software Success [M]. Harvard Business School Press, Boston, Massachusetts 1999
 ARENT J., NORBJERG J. Organizational Knowledge Creation: A Multiple Case Analysis [A]. Proceedings of Hawaii International Conference on Systems Science[C], 2000
 KAUTZ K., NIELSEN P. A. Knowing and Implementing SPI[A]. In: Mathiassen, L., Pries- Heje, J. and Ngwenyama, O. (Eds.): Improving Software Organizations - From Principles to Practice[C], Addison-Wesley, 2001
 ARENT J., PEDERSEN H. Strategies for Organizational Learning in SPI [A]. In: Mathiassen, L., Pries-Heje, J. and Ngwenyama, O. (Eds.): Improving Software Organizations - From Principles to Practice[C], Addison-Wesley, 2001
 BASKERVILLE R., PRIES-HEJE J. Knowledge Capability and Maturity in Software Management [J]. The DATA BASE for Advances in Information Systems, 1999,V30: 26-43
 KAUTZ K., THAYSEN K. Knowledge, Learning and IT Support in a Small Software Company [A]. Proceedings of the European Conference on Information Systems[C], Bled, Slovenia,2001
 MATHIASSEN L., POURKOMEYLIAN P. Managing Knowledge in a Software Organization [A]. International Conference on Managing Knowledge[C], University of Leicester, England,2001