技术开发 频道

巧借知识地图,提高软件开发复用效率

【IT168 专稿】

    这是一个典型的赶工期的软件开发项目。不但项目团队是临时组建的,并且大部份团队成员是经验尚浅的新人。

    由于项目时间紧张、任务重而且难度大,老板给我分配任务时特别的提醒我说:"这是一个赶工期的任务,因此这个项目的核心竞争力在于项目过程中的有效复用,不但是指程序代码的复用,而且也是指团队成员知识和经验的复用。这个项目能否按工期完成的瓶颈就在于你能否有效的进行复用"。由于要赶工期,我一开始就把自己全部时间都投入到程序代码的编写里,并没有花时间和精力关注新人的表现和如何发挥团队的知识复用上来。结果是不出老板所料,由于复用效率低下,项目进行到一半时就已经明显的滞后于预期计划中。我也陷入如何提高复用效率的困惑和思考之中。

    让这个赶工期的软件开发项目得以顺利推进的方法是,针对项目赶工期的瓶颈,用知识地图的方法进行复用,包括建立方便新人尽快成长的知识地图复用指引,其次是团队知识复用共享,然后是专家知识地图索引,后来到沉淀项目知识库将项目开发标准化,以增加开发团队的工作效率。

    一.没有进行知识复用的困扰

    在向老板请教知识地图的复用后,我发现我在这个项目的前半段时间里,犯了以下三个方面的错误:

    (1)没有对新员工进行培训

    因为这个团队大部份成员是经验尚浅的新人,按理说"磨刀不误砍柴功",对新员工的培训是必须的。但在初期我考虑到培训新人是需要花费一定的时间和精力,再加上项目的工期很紧张,所以我以为只要我全力把程序的代码编写好就能按期完成。实际上这种认识是一个误区,因为个人的力量总是有限的,当没有发挥团队的力量时,提高整体工作效率只能是一句空话。

    (2)团队没有进行知识共享

    软件开发行业里面有句行话:不要重复发明轮子。这句话的意思是,知识的共享对于知识发挥能量是十分重要的,这个规律适用于团队或个人。因此,知识分享对于项目团队和个人都是一种财富。而且,许多实践也表明如果团队成员能够相互利用各自的经验或知识分享,那么团队的力量将会发生巨大的变化。因为团队能力的提升最终还是要落到团队的每一个成员身上。例如,项目中每一步要完成的工作内容,都可能复用过往的知识来提高工作效率的,但前提条件是团队成员要把自己的一些思路和想法与大家分享,而且这些知识和经验的复用也是团队最有价值的东西之一。

    (3)没有复用团队的隐性知识

    老板在听完我报告后,他不同意项目滞后是因为大部份团队成员经验尚浅的原因。他指出我之所以项目知识复用失败,是因为我根本没有对隐性知识进行复用管理,特别是没有对专家的隐性知识进行复用管理。

    他认为一个项目团队所拥有的知识可以分为隐性知识和显性知识。显性知识是指可以用正式、系统化的语言传播的知识,存储在各种类型的载体上。隐性知识是指不能用文字记述的、或难以用文字表达的知识,它表现为一些思考方式和处理问题的习惯,主要是通过行动表现出来。显性知识和隐性知识的关系类似于大海中的岛屿,显性知识只是露出海面的一个小岛,而隐性知识是隐藏在海面之下的庞大的部分。而且团队中最宝贵的知识往往就是员工经过长时间工作历练而累积下来的隐性知识。因此,如何将隐性知识进行复用也是提高知识复用效率的核心问题。

    二.什么是软件开发的知识地图?

    (1)什么是知识地图

    知识存在于人脑中,大致可以分为两种性质。一种是客观及易于用语言表达的,另一种是主观及不易形式化的。前者称为显性知识,后者称为隐性知识。显性知识是可以客观捕捉及描述的概念,譬如报告书、手册、程序、文件、记录等,多具有文字性与结构性。隐性知识是主观的概念,体现为个人经验、印象、熟练的技术、文化、习惯等。如果一定要将其形式化,最多能做到的是故事性的描述或是条例式的原则。

    顾名思义,知识地图是知识指引、导航。知识地图这一概念最早是由知识专家布鲁克斯提出的,他认为知识结构可以绘制成以各个知识单元概念为结点的学科认识地图。它能够使知识寻找者在浩如烟海的信息中快速找到自己所需要的部分,及时准确地做出决策。

    对于软件开发项目来说,项目团队知识地图就是指团队的知识资源的总分布图,具体包括两部分内容:一是项目知识资源的总目录及各知识点间的关联;二是人员专家网络,即对项目人员的知识技能及相关领域专家的描述。所以,一幅好的团队知识地图不仅能清楚揭示团队内部、外部相关知识资源的分布及知识节点间的相互关联,而且还能建立知识与人、人与人之间的联系。简单的说,就是知识地图的主要功能在于当我们需要某项专业知识时,可以透过知识地图的指引,找到所需的知识或拥有知识的人。

    (2)知识地图的功能和作用

    根据定义,知识地图是一种帮助用户知道在什么地方找到知识的管理工具。知识地图虽然看起来是一个很复杂的导视系统,但一张看似简单的地理结构图实际上却蕴含了大量、细致的工作,而且应用起来很简单和方便。它的功能和作用主要有:

    ①指示团队的知识资源的位置

    这是知识地图最根本的功能,它能告诉人们到哪里去找需要的知识,并通过各种方式引导人们找到所需的知识和信息。因此,知识地图也可以认为是反映团队内外部知识资源状况的导航图。

    ②揭示团队中的隐性知识

    由于隐性知识存在于人脑中,很难显性表述或者转化成本太高,或在提炼过程中会失去很多特性,因此找到拥有知识的人也就找到了需要的知识。简单地说,就是团队里面有哪些人员,这些人员具体从事过哪些项目,有些什么知识背景和经验。所以,知识地图的一个功能就是指向这些拥有丰富的隐性知识的专家。其它成员通过知识地图就能找到和利用团队中的隐性知识,从而有效地利用好团队的隐性知识来提高工作效率。例如,某位软件工程师甲曾经开发过基于Oracle编程的人事管理软件,当项目现在也需要开发一个基于Oracle系统的人力资源系统时,通过专家知识地图就可以很快寻找到这位软件工程师甲,让他把一些经验和思路进行分享,从而大大的提高工作的复用效率。此外,知识地图不仅能对团队内部成员的隐性知识进行揭示,而且还能揭示团队外部专家的知识,从而将外部的专家资源纳入资源网络中,使内部人员可以方便地获得外部的支持。

    ③揭示知识节点之间的关系

    知识地图能揭示知识节点之间以及知识节点与人或特定事件相互之间的关系。例如,知识地图通过揭示款目之间的关系实现知识的提取和共享,如等级关系、相关关系、因果关系、逻辑关系、评价关系等。每个知识节点与其它节点相连,或与相关的人员相连,或与相关的事件相连,这样就构成了一个知识网络。顺着这个网络,就可以找到所有与这个知识节点相关的东西。因此,很多学者认为知识地图在揭示知识之间的关系时,往往会发生意想不到的效果,就是发现以往所没有发现的某些知识之间的新的关系,从而产生新的知识。这一点在软件开发中能大大的提高知识的复用效率。

    ④知识地图能帮助团队成员共享知识

    知识地图不但有助于增强团队的学习能力和共享文化,也能使新员工尽快适应工作岗位。因为各成员通过在知识地图中的漫游和查询时,不仅可以进行实时学习,还可以发现关联的知识,这种特性可使团队成员大大增强分享的活力。

    三.软件开发团队实行知识地图的策略

    实行知识地图来提高知识的复用效率可以总结为三个重点:第一个重点是知识来源的寻找与整理,第二个重点是知识内容的储存与流通,第三个重点是知识价值的创新与利用。因此,绘制软件开发团队的知识地图的策略如下:

    (1)识别关键用户群,以用户需求为导向

    知识地图最终是要为需要的人员提供帮助,如团队成员、合作伙伴和客户等。因此明确知识地图的用户需求是第一步。以用户需求为导向是指要求知识地图不一定求全但一定要实用和方便,这也是对知识地图的基本要求。所以,在建立知识地图之前,必须识别关键用户群,以用户需求为导向。例如,团队希望通过知识地图达到什么成效等;或者是否希望将团队中擅长某些领域的专家资源进行罗列,让员工在遇到疑难问题时能快速找到解决相关问题的专家等;或者是否需要为新人建立的工作知识地图指引,让新员工得到及时快速的培训,以最短时间适应新的岗位等。

    (2)评估团队的知识资源,界定知识地图范围

    知识和经验必须被重复运用才能显出其价值,所以在对用户需求分析后,还需要针对所搜集的知识资源范围加以界定,以便确认知识是否可以满足该需求。例如,团队拥有哪些显性知识? 团队拥有哪些可以满足成员的知识需求但尚待转化的隐性知识? 这些知识存贮在什么地方或谁的头脑中?因此,将重要知识及技能的范围加以分类和评估也是很重要的事情。

    (3)借用知识管理工具,建立项目知识库

    如何才能在茫茫的知识海洋中,有效的将所需要的知识进行收聚呢?知识管理工具是一种有效的方式,特别是项目知识库。这里值得强调的是,知识管理工具不仅是以计算机为基础的技术工具集合,实际上只要是能够对知识的生成、编码和传送有益的技术和方法都可以称为知识管理工具。利用知识管理工具的好处是我们可以将团队中大量隐性的知识,通过工作总结、案例总结、研究报告等将方式沉淀下来,还可以累积团队外部的项目管理方面的参考资料,以提供给团队其它成员共享、学习和应用。

    (4)不断更新,以保持知识地图的时效性和准确性

    有效的知识地图的维护是必不可少,包括从内容和结构上进行更新,而且更新时应该尽可能地从基础用户那里获得最新最准确的信息,这样才能发挥知识地图的最大效益。例如,某位成员离职后,团队很可能会失去部份的知识资产,或是当某位员工接受了某个课程的教育训练后,公司的知识资产会增加,这些情况都会使得知识地图的连结与关系发生变化。

    最后,团队还应保留过去不同时期的知识地图,以观察团队知识资产与知识需求的变化。总而言之,不断更新、整理和维护项目的知识地图是一件很细致的工作,需要耐心的对待,也是需要时时关注的事情。

0
相关文章