专项认证
软件企业的知识管理
发布时间:

本文从知识经济时代知识管理的高度和观点,重新系统地思考和审视了软件企业的若干重要管理问题,提出了软件企业实施知识管理的七个基本内容和方面,可作为软件企业管理上台阶的一个参考框架,它也补充了 CMM 模型中尚未涉及的技术管理方面。
 
知识经济浪潮正席卷全球,在知识经济的新形式下,知识是生产力,是企业的重要资产和资本,知识在最终产品和劳务的价值增值中起决定性作用已成必然的社会现实。于是,在对以往经营管理中关键要素的重新定位后,知识管理被置于21世纪组织管理的重要位置。
软件企业作为一个典型的知识密集型企业,面对日益激励的市场竞争和快速的技术更新,如何通过开展知识管理来提升自身的核心竞争力?这已成为了每个软件企业都必须面临的挑战。虽然现有的软件工程技术已或多或少触及了某些问题,但我们更需要用一种全新的观点和角度,来重新思考和审视这些问题。本文将结合软件企业的特点,从知识管理的内涵和过程出发,以新的角度和系统的方法探讨软件企业的知识管理的具体内容、措施,及其信息化平台的架构,以便为软件企业实施知识管理提供指导。
1.知识管理的内涵


     著名专家彼德.德鲁克曾从三个层面上对知识进行了刻画[1]:未来财富的来源主要是知识,知识工作者将是最有生命力的资产。管理者的重要任务之一,就是要对知识工作和知识工作者进行管理,也即“知识管理”。
知识工作者是知识经济时代的劳动者的新称谓,他们运用掌握的知识帮助企业的产品和服务增值。与有形资本掌握在少数投资者手里不同,企业的知识资本是分散在每个知识工作者的头脑中的。因此,如何管理知识工作者、提高他们的工作绩效是知识型企业的最关键问题。
知识管理的第二个内容是知识工作管理,它由知识采集、知识共享、知识应用和知识创新四个阶段组成:
1)知识采集是收集、储存、汇总和分类知识的过程。知识的来源有两类,一类是散落在企业中大量的非结构化的显性知识;另一类是隐性知识,它们需要经过一定的分析、挖掘和表示才能显性化。
2知识通过采集就成为企业的知识资产,这些资产通过分发、推送、查询等方式呈现给知识工作者,这就是知识共享。
3知识应用主要指利用学到的知识去解决问题的过程,是表现知识价值的重要环节。
4知识创新是知识管理的最高境界,它表现为在已有知识的基础上通过实践、实验、分析等方法产生新的知识。
如果我们没有主动地建立和推动知识管理过程,知识的创造仍然在企业中始终存在着,但这可能或者是个人的创新能力,或者是偶然的非系统化的创新能力,而企业需要的是持续、系统的创新能力,因此系统地建立知识管理体系已是软件企业的当务之急。
2.软件企业的知识管理
目前,国内软件企业的规模偏小,据统计国内50人以下的企业占67%,重复开发的现象普遍存在。虽然开发了不少应用系统,但仍缺乏核心系统软件的开发能力。面对进入WTO后更加激烈的市场竞争,每个软件企业几乎都面临着如下挑战:
1如何资源整合,构建企业联盟或虚拟组织,进行协同的软件开发?
2面对日新月异的信息技术,如何迅速学习和应用?
3如何解决人才的紧缺?人才流动不至于知识流失?
4如何积累企业的知识资产,共享和复用已有的信息、经验、设计和构件?
5如何加速软件企业的发展,增加其核心竞争力,以小博大、做大做强?
从知识经济时代知识管理的高度和观点,我们重新系统地思考和审视了软件企业的若干重要管理问题,提出了软件企业实施知识管理的七个基本内容和方面,可作为软件企业管理上台阶的一个参考框架,它也补充了 CMM 模型中尚未涉及的技术管理方面。
2.1.软件企业的知识
一个软件企业所包括的知识可涉及很广的范围,从高度有条理的、整理好的、便于流动的显性知识,到非结构化的、未整理的、难于表达的隐性知识。按照层次和范围,知识又可具体划分为个人知识、团队知识、企业知识以及企业外部,每个层次都有相应的隐性和显性知识。根据这些分类法,我们将软件企业的典型知识分门别类,如表1所示,可作为软件企业知识库和软件行业公共知识库的参考框架。
表1 软件企业的知识

  个人层次 团队层次  企业层次  企业外部
 显性知识

 可描述的个人知识,如编程能力、分析和设计能力等

 团队组织模式以及项目开发文档和代码等  过程知识、产品知识、客户知识等,如企业的软件开发过程规范和过程数据库  商务环境知识、领域知识、软件工程知识等,如产品专利、竞争和市场信息、软件工程知识体系等
 隐性知识  开发经验  团队的协作方式和沟通技能  企业文化 企业价值观  客户的隐含需求


2.2.创新管理和领导的前瞻性
软件企业是一个高新技术产业,常常技术、观念、应用和市场领先一步就全盘皆赢,反之,就要在竞争中败下阵来。为此,企业的创新精神和领导的前瞻性,就显得特别重要,成为知识管理首要考虑的问题。
为做到这一点,首先要求企业领导对知识管理的重要性有足够的认识,并对实施知识管理作出必要的承诺。为使创新成为可能,必须对市场、应用和技术发展的动态有高度的敏感性。为能在体制上有所保证,应把情报收集和分析列为知识管理的一项重要内容,以帮助制定企业全盘的战略发展计划,持久保持企业的领先地位。为实现创新,除了情况要明外,更要求领导具备敢为人先的超前和创新意识。由于创新要求一定的知识积累和外界条件的激励,反复评价现状、挖掘问题、探讨新思路、进行思想碰撞是十分必要的,为此应设立长久的研究和参谋班子,在内部网上建立各种研讨论坛或沙龙,发动广大职工参与创新活动,激发创新火花,引出新点子、新应用、新产品、新方法和新市场方向。
2.3.把软件企业建设为学习性组织
在知识经济时代,知识就是资本,为提高企业的竞争力,面对飞速的技术发展,现代企业必须把自己建设成为一个学习型组织,不断地进行知识和技术更新,提高企业的知识含金量,使自己的知识资本持续增值。
为此,要求企业把人力资源开发和继续职业教育作为企业的重要管理内容,保证必要投资。建立职工的技能数据库,掌握企业的知识现状和动态,开展知识需求分析,按工作和发展需要,制定企业和个人的培训计划;同时建立导师和教练制,设立网上的电子技术资源库,完善培训体系。在培训内容上,从过去片面偏重程序语言、编程技巧和专门系统平台,转向更均衡的知识和技能发展,包括分析和设计技能、项目和质量管理技能、团队协作和沟通技能、文档标准编写能力、市场和客户支持能力等,强调学以致用,企业要保证从每年的总收入中,取出一定比例,用以教育培训,和从事研究、设计和开发。通过合适的激励机制,形成浓厚的学习进取风气和文化氛围。
为达到以上目标,软件企业应当从“知识投资”的战略高度,舍得从每年预算中拨出较高比例的职工培训费用。面对飞速发展的技术,软件企业家应习惯于将“知识折旧”列入自己的日常财务计划。
2.4.软件人员的管理
软件企业以人为本,技术开发人员的管理是知识管理的重要内容,其目标是提高人员的胜任力和能力成熟度,把他们掌握的知识能发挥最大的效能,并最大限度地调动人的积极性、能动性和创造性。
知识工作者的管理,应与传统产业的劳务管理有所区别。基于传统产业的近代科学管理方法常把人力作为附属生产流水线的一种可定型的资源模块,因此强调的是人力资源管理,而不是有创造力的人。在总结实践经验的基础上,近年来软件界已提出了一些新的思想,如人件(Peopleware)[3],新提出的敏捷软件过程也强调人的因素第一,不是人去适应过程,而是建立面向人的过程。为此,建议软件企业积极推行 CMU/SEI 提出的 P-CMM,它提供了较完整的管理软件人员的实践要求:
让每个职工都有向上的发展空间和目标。
建立合理的绩效考核、内部竞争和激励机制,鼓励提高个人和部门的胜任力和能力成熟度。
进行合理的团队管理、知识组合和角色搭配,建立高效协作的开发组。
激发士气,留住掌握关键知识的骨干人才,吸引新雇员的加入。
注意企业文化建设,建立和谐的企业环境,提高职工对企业的满意度和参与意识,以软件工程职业道德规范推动“德治”,自觉贯彻知识产权保护。
在强调贯彻开发风纪的同时,鼓励创新,最大限度发挥知识工作者的潜力。
2.5.软件知识的共享和复用
  如何把个人头脑中的知识,变为企业可共享的知识?这已成为软件企业管理的重点和难点,不要因为人员的变动使企业的关键知识流失。知识管理为企业实现知识的显性化和共享提供了有效的方法:
    在企业内部网上建立知识库,重视文档管理和知识表示,采用“经验工厂”的方法,持久地积累知识。可共享的知识内容包括:应用解决方案、最佳实践、经验和教训、设计模式、构件库、软件工程标准、技术资源库、文档模版等。
??建立和完善网上合作和交流通道,如合作开发环境,技术 SOS,并向外部合作伙伴的扩展,要坚持“有所为,有所不为”的原则,善于集成和借助技术合作伙伴的知识,快速开发新产品。
??知识的检索(如通过Knowbot),特别是在面对新的未知领域时,需要比信息检索更复杂的支撑技术。
??注意知识的挖掘和传播,如通过对过程数据的测量,和软件度量数据的积累,分析与发现开发问题和瓶颈的所在,以及缺陷的成因等。
??使用和开发知识管理工具,协助基于Web的知识俘获、存储、传播交流和共享。
2.6.不断的知识完善和技术更新
认识技术发展是无止境的,竞争压力永恒存在,不断的知识完善和技术更新,是企业不变的主题。企业必须建立通盘的技术发展计划,重视面向应用的领域知识,并能根据发展随时调整计划。要重视核心知识的掌握和开发,注意对关键技术和知识产权的保护,正确处理自有、买入和伙伴合作的关系,善于踏在别人的肩膀上前进。
企业应该鼓励职工参与对外的交流和合作,保持对新技术的敏感性,了解市场的变化和需求。保证必要的投资,用于资料和技术引进,装备新的开发工具和方法。
企业还应设立专人(如 CTO或CKO)或专门技术革新小组,负责研究技术传播和创新事宜,制定技术发展规划,并按 CMM 5级的KPA管理技术更新的实施。
2.7.持续的软件过程改进
知识管理存在的目的并不是知识管理本身,而是要为了有利于企业的整体战略目标的实现,因此只有将知识过程和业务过程紧密结合,才能发挥知识的重大效用。
Carnegie Mellon大学软件工程研究所提出的CMM过程成熟度模型为软件组织的过程评估和改进提供了指南和标准[4]。IBM公司的RUP集成了众多成功项目的开发经验,提出了一种风险驱动的迭代开发过程框架,为基于UML开发的项目提供了具体的操作指南,广泛地适用于各种类型和规模的项目。最近几年提出的敏捷过程,则是中小企业持续改进过程的最有效途径之一,它以“适应和以人为本”为核心理念,很容易适应变化并迅速做出自我调整,在保证质量的前提下,做到文档适度,实现企业效益的最大化[5]。
基于经验知识的软件过程改进也是软件企业知识管理的重要研究内容,如“经验工厂”方法和实验软件工程学,它们通过收集过程和项目度量数据,发现开发问题和经验,使不同项目间的经验和教训能得以交流和借鉴。为此可考虑在开发过程中加进必要的知识管理活动,如项目结束的回顾分析活动(Postmortem Analysis – PMA), 建立经验信息系统(Lessons Learned Information System – LLIS),存放开发活动中遇到的关键问题、处理方法和经验、成功和失败案例、项目有关的生产率和质量数据,以有助于今后的定量过程管理和持续过程改进。
3.知识管理的信息化平台
3.1.知识管理系统的结构模型
知识管理系统依赖于先进的信息技术实现了知识管理的系统化、规范化和自动化,它包括三个层次:知识源层、知识管理层和知识应用层,如图2所示。知识源层表示了各种形式的知识来源,如客户信息、竞争信息、产品信息、领域知识和过程知识等。知识管理层以知识库为中心实现了知识工作过程的主要活动。知识应用层主要是为知识工作者提供了知识管理的门户,以便于他们的交流、应用、协作和创新。

 

    因此,一个典型的企业知识管理系统一般由九个组件构成:知识库、知识采集组件、知识加工和维护组件、知识检索和知识地图组件、知识挖掘组件、知识交流和协作组件、知识分发和传递组件、专家网组件和知识门户组件。
 
   3.2.一个面向软件园区企业的公共知识管理平台
软件企业对知识管理的需求日益增强,然而由于知识管理体系涉及建立完整的知识管理平台,不仅需要技术、设备和人员投入的投入,还涉及企业储备知识的历史,因此对于一般的中小型企业存在一定的门槛。而作为对园区企业的支持,软件园区由于汇集更多的资源,完全可以组织园区范围内的知识管理。为此,我们在科技部火炬中心的项目资助下,以软件企业的公共知识为重点,研制了面向软件园区企业的知识管理服务平台。该平台由四大子系统组成:
1)知识管理中心。为园区内的企业提供了共享知识和创新知识的管理,包括知识的登记、转换、检索和挖掘等功能。其中共享知识管理提供了软件产品登记、知识产权、质量管理体系、文档标准模板等公共信息的共享;创新知识管理则提供了企业创新知识的发布、在线交谈、全文检索、搜索引擎、知识导航等功能。
2)园区协同开发管理中心。在园区Extranet平台上,协同跨企业的项目管理,具体包括项目信息发布、项目团队管理、项目过程监控、协同通信和配置管理等功能,为虚拟园区或虚拟企业的构建提供了技术支撑。
3)e-Learning中心。由信息发布、学习平台和教学管理平台三个部分组成,以推动组织学习和学习型企业的建立。
4)IT资源中心。以软件工程、企业信息化、技术新热点、软件出口、技术和产业论坛、教育与培训动态等六大系列为重点,提供了一个内容丰富的IT技术的传播中心和知识库。
该平台的实现采用了J2EE编程模型和Oracle数据库。目前,平台1.0版本已经完成,在上海徐汇软件园25家软件企业中进行了成功试点,并即将作为上海863孵化基地的公共信息服务平台之一。
4.小结Conclusion
软件企业是典型的知识型企业,智力资本是创造软件企业竞争优势的核心。软件企业只有不断学习、交流、创造和转化知识,才能适应环境的变化,建立一个竞争对手难以模仿的竞争优势。本文提出的软件企业知识管理基本内容和方面,可作为软件企业管理上台阶的一个参考框架。软件企业的管理对象包括过程、人员和技术三个大方面,迄今 CMU/SEI 提出的能力成熟度模型 CMM,分别以软件 SW-CMM 和人员 P-CMM涉及了软件过程和人力资源管理两个方面,本文提出的知识管理模型,可看作为对 CMM 技术管理方面的一个补充。可喜的是,最近二年,国内的一些软件企业已开始致力于知识管理实施,如联想、宝信、万达等,它们所建立的内部知识管理体系对其营销和服务都发挥到了积极的作用。
 
参考文献
1.彼德.德鲁克等著. 知识管理. 中国人民大学出版社, 1999
2.夏敬华等著. 知识管理. 机械工业出版社, 2003
3.Tom DeMarco, Peopleware : Productive Projects and Teams, 2nd Ed. Addison Wesley, 1999
4.Software Engineering Inst. Carnegie Mellon Univ.,The Capability Maturity Model: Guidelines for Improving the Software Process,Addison-Wesley Pub Co, 1995
5.Robert C. Martin, Agile Software Development: Principles, Patterns, and Practices. Pearson Education Inc. 2003
6.Dehua Ju, Knowledge Management in Software Engineering, Proc. of International Symposium on Future Software Technology, 2002