您好, 访客   登录/注册

软件开发中的知识管理研究

来源:用户上传      作者:

  [摘要] 知识管理伴随着知识经济而产生,短短的几年时间,却开始从概念走向应用,成为一个热门的话题,许多企业在信息化建设过程中已经认识到知识管理的重要性,将传统意义上的信息管理系统向知识管理系统方向发展。
  [关键词] 知识 知识管理 软件开发
  
  一、引言
  
  在知识经济时代,市场的竞争日趋激烈,如何获得并保持竞争优势逐渐成为管理学的研究热点。组织所具有的有价值的、稀有的、不可模仿的、难以代替的资源是保持竞争优势的源泉。随着研究的进一步深化,知识在组织竞争优势中地位越来越显著,从知识的角度来研究组织竞争优势逐渐成为一个重要的理论方向。
  软件产业是一个知识密集性的产业,软件开发人员都属于知识工作者,并突出具有技术人员个性化特征。如何有效地整合个性化资源,高效地满足个性化需求,这是软件企业必须面对的一个难题。知识管理作为提高企业核心竞争力的有力手段,可充分实现企业知识资源的整合、发展、共享和增值。特别是软件企业实施知识管理,可以将分散的个性化的知识整合成有机的组织知识体系,通过组织知识体系的有效运用和持续提升去解决个性化难题,从而能有效地增强企业的核心竞争力。
  
  二、知识管理的内涵及分类
  
  所谓知识是一种有价值的智能结晶,可以通过信息、经验心得、抽象的观念、标准作业程序、系统化的文件、具体的技术等方式呈现。知识呈现的形式虽然有很多种,但在本质上都必须具备创造附加价值的效果,否则就不能被称为知识。因此引进、学习、扩散、创新知识,一直都是人类社会发展的特征,也是驱动社会进步的最主要力量。知识管理是研究人类获取、传播、共享、利用和创新知识的活动规律,管理有关知识的各种连续过程,以促进经济和社会发展的理论与实践。
  一般而言,知识可分为两类,一类是显性知识(explicit knowledge),另一类是隐性知识(tacit knowledSe)。显性知识一般是指可以文件化、标准化、系统化的知识,因此显性的知识可以从知识库中直接提取和进行独立的学习。广泛适用性、能够被重复使用以及与人分离是显性知识的特点,因此使用显性知识,不需与创作者接触,就可以产生知识转移的学习效果。由此可见,显性知识无论在扩散速度与学习效率,均相对较高。当然如何将知识经由整理、归纳、分类、储存等手段而达到显性的程度,并且能够十分便利的一再使用,必将是未来企业在知识管理活动中的重点工作。
  而隐性知识一般是指比较复杂,无法用文字描述的经验式知识,不容易文件化与标准化的独特性知识,以及必须经由人际互动才能产生共识的组织知识。隐性知识是指建立在个人经验基础上并涉及各种无形因素如个人信念、观念、直觉、洞察力和价值观等的知识,是一类难以表达、描述、交流和共享的知识。它又可分为两个方面,一是技术方面的隐性知识,包括那些非正式的、难以表达的技能、技巧和诀窍;另一类是认识层的隐性知识,包括心智模式、信念、洞察力和价值观等,反映人们对现实的看法及对未来的展望,是世界观的知识。隐性知识产生的成本较高,可重复使用的机会较低,通常应用于附加价值较高的作业活动上。隐性知识管理重点就是如何将隐性知识的创造过程加以效率化,可运用的策略手段包括:形成一致性的企业文化与共识、开放性的组织气氛、运用多媒体网络来增加人际沟通的效率、项目型的团队管理、良好的教育训练与学习机制、更完善的周边配套等。
  所以,知识管理的主要任务包括显性知识的规范化描述与共享、隐性知识的显性化以及提供隐性知识创造过程的效率。
  
  三、知识管理在软件开发中的作用
  
  在知识经济时代,软件创新是企业获得核心竞争力的源泉,软件开发则是创新的具体表现,因此对软件开发的全过程实现有效的管理是提高软件开发绩效、实现企业战略目标的有力保证。知识管理正是有效地适应当前时代发展的手段,对软件开发起了重要的作用。由于不同的软件类型所体现的个性化,知识管理所起的作用也不尽相同,但是综合而论主要体现在以下几方面:
  1.对外部信息的获取、对内部经验知识的整合及存贮,形成有价值的知识库,为软件开发提供技术支持,从而有利于正确选定开发对象、确定开发策略、提高开发效率、缩短开发周期,保证开发目标的实现,进而尽快收回投资获得较大利润。
  2.软件开发人员之间交流、互动、共享知识,可以避免重复性开发工作,且促进技术信息的扩散和传播,凝聚集体智慧,使软件设计更全面、性能更完善。
  3.知识管理中实行的扁平形组织结构,促进了职能部门间的紧密联系,使开发、营销、生产部门积极参与软件开发中的每一个关键性决策并提供反馈意见,保证软件开发的方向与企业战略一致、与顾客不断变化的需求一致、与企业自身的技术开发、生产能力相适应。
  4.在软件开发过程中,成功的经验和失败的教训都可以有效地整理、贮存,为后续的软件改进和新软件开发提供宝贵的资料。
  5.知识管理中强调人的管理及培训,人作为知识的载体,其素质的提高为软件开发提供了智力保障。
  
  四、软件开发过程中如何实施知识管理
  
  从软件发展的趋势看,软件企业竞争的焦点越来越集中在概念设计和需求分析这两个阶段。如何在这两个阶段实现软件企业、用户之间无障碍的知识交流与共享,就成为软件开发的关键问题之一。此外,在系统设计、编程等阶段,如何有效利用已有知识来提高软件开发的效率和质量,在整个软件开发过程中如何将隐性知识显性化,如何有效地管理软件开发中所生成的文档等问题,都是需要考虑的。
  1.软件复用。它是指重复使用“为了复用目的而设计的软件”的过程,而可复用软件则是指为了复用目的而设计的软件。使用软件复用技术,开发人员将无需为每一个软件都重新设计框架、编写代码。他们在接受新的软件开发任务时,首先查询已有的软件部件,然后将已有的软件部件集成在一起实现新的软件的功能。软件复用不仅是指对源代码的复用,而从需求分析开始,到设计、编码与测试,包括测试案例和测试脚本,都可以成为复用的对象。使用软件复用技术具有提高软件生产率,从而降低成本、减少系统的维护代价、提高系统间的互操作性、软件的灵活性和标准化程度等优点。检验一个软件项目是否有效地利用了知识管理,最直接的方法之一就是看它是否重复利用了已经成熟的程序或软件部件,因此,复用技术是软件开发中应用知识管理的重要方法。
  2.隐性知识显性化。软件开发的本质是将开发的各个环节、各种不确定问题显性化,由不可控变为可控。如软件开发过程中精神活动的“不可见性”大大增加了过程管理的难度。因此,软件开发管理的指导思想就是千方百计地使这些过程变为“可见的”,成为事后可以检查的记录。
  3.知识的交流与共享。在软件开发的各个阶段,知识的交流与共享无处不在。在概念设计与需求分析阶段,软件提供方和用户很难完全描述清楚新软件的需求,一些工作在用户看来是习以为常的活动,而软件提供方却不知道这些活动。因此需要软件提供方与用户方进行多次交流,以明确把握需求,为项目开发的成功和后期工作打下比较好的基础。而在系统设计、维护等后续阶段,则强调软件开发团队成员之间的知识交流与共享,这是软件开发成功的前提条件之一。
  4.文档管理。软件文档的编制在软件开发工作中占有突出地位和相当的工作量。软件文档指的是一些记录的数据和数据媒体,它和计算机程序共同构成了能完成特定功能的计算机软件。从知识管理的角度看,文档在软件开发的知识管理中承担着重要的角色,它是知识交流与共享的基础,没有办法对无任何说明文档的程序进行知识管理,即使它包含最完美的算法,但它所包含的知识是无法共享和重复使用的,因为别人很难看懂,也无法理解。
  5.营造和谐的项目团队氛围。软件开发各个实施阶段,需要各方人员的交流与合作。然而,在项目团队中为了维护自身利益而采取保守的做法是司空见惯的,团队成员不愿意交流和共享自己独有的知识。虽然在软件开发项目中的团队成员一般都具有较高的专业技术水平,但对团队而言,和谐的项目团队氛围对出色完成工作更为重要。要确保团队的这种氛围,就要求软件开发团队必须充分认可和尊重成员的专业特长、知识和技能,确保足够的信息沟通,建立集体创新意识,培养合作共进的和谐气氛。这样,团队成员才能发挥最大的独创性。
  
  参考文献:
  [1]彼德・德鲁克等著:知识管理.中国人民大学出版社,1999
  [2]许晓明龙炼:论企业的知识管理战略[J].复旦学报,2001,(3)
  [3]夏敬华等著:知识管理.机械工业出版社,2003
  [4]刘湘丽:知识管理的发展及其理论[J].首都经贸大学学报,2002,(3)
  [5]Dehua Ju,Knowledge Management in Software EngineeMng.Prnc.ofIn.teroational Symposium on Future Soft'ware Tec hnology,2002.
  [6]Tom DeMarco,Peopleware:Productive Projects and Teams.2nd Ed.Ad.dison Wesley.1999
  
  注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。


转载注明来源:https://www.xzbu.com/3/view-1502543.htm