“研发知识与经验按说应该成为科技企业的宝贵财产,而实际并非如此,造成这样局面的原因并非对知识的重要性缺少认识,研发经理很明白其重要性。到目前为止,研发知识管理失败的原因在于没有解决:如何将适当的知识在研发人员需要此知识时提供给他。”这是国际知识管理领域的权威Michael E.McGrath(IPD的前身PACE理论的创立者)说过的一句话,代表着研发知识管理所面临的困惑,这种困惑在中小型企业尤其是初创型企业表现的尤为明显。本文试图从知识管理的角度出发对如何解决或者缓解这种困惑做一个探讨。

一. 知识管理的概念

要解决这个困惑,我们首先要明确知识管理要做什么?知识管理把“隐形知识显性化”,是一项涉及知识库、过程资产、环境和交流等元素的整合过程,所管理的知识将作为一个团组织中过程资产的重要组成部分。对于软件研发而言,所谓隐形知识,通常指的就是在那些业务人员和技术人员脑中的蓝图,把握这些蓝图的人就能形成一定的工作节奏,而无法把握这些蓝图的人如果加入到团队中,可能不但适应不了这个节奏,还会打破已有的节奏。这就是我们要进行研发知识管理的目的所在。

个人知识的层次一般认为分为6个层次,具体可参见我的另一篇博客:《工具系列之OneNote--关于团队的知识管理平台》。

我们可以看出客观的认知到知识创新对知识管理要求逐步提高,大家可以做一下判断看看自己所处的环境中知识管理处于以上哪一个层次?

个人认为可能一般处在3~4层的环境会比较多,到第5层对知识管理而言已经是比较高的层次,而本文的初衷就是如何提升自己团队的知识管理层次,根据客观现状进行过程改进。对研发团队而言,通常技术人员都不擅长进行知识的管理,因为知识管理是需要成本的,包括知识转移的成本、知识转化的成本和知识保存的成本。层次越高所需要的成本就越大,国内环境下技术人员开发工作通常都已经是超负荷,再让他们花时间去进行知识管理通常是很难操作的。但正如前面讲到,知识管理是一件必须要做的事情,这就需要我们找到平衡点,即能把知识管理这一过程转动一起,又不会给研发人员带来过多工作量,这就是本文称之为“轻量级研发知识管理“的原因。

二. 轻量级研发知识管理的思路与目标

如果研发团队中出现以下症状或表象就说明研发知识管理是欠缺的:
  • 没有文档记录导致过程资产丢失
  • 开发人员个人素质要求偏高
  • 交接困难,新员工难以熟悉现有模块的设计思路
  • 缺少设计评审,设计问题延后暴露
面对以上问题,轻量级研发知识管理的思路主要有两个方面。首当其冲的是过程资产建设,过程资产建设是一个组织级别的活动,对研发管理而言重点关注:
  1. 知识服务于业务:从具体业务出发管理研发知识,而不是从技术出发。技术人员进行知识梳理的过程中(尤其是刚开始的阶段)往往习惯于从技术本身出发来看问题,导致梳理出来的东西只有技术团队内部有限的几个人能看懂,个人认为是不对的。业务领域模型才是一个系统的核心,技术只是这一模型的一种实现方式,技术人员梳理的知识同样也要让产品线、项目线能够参与讨论和总结。
  2. 系统运作与界限:关注系统的运作流程及其服务提供的界限。对多团队协作的研发过程而言,系统集成是团队之间协作的根本任务,如何定义系统之间的服务边界,并把这些边界梳理成统一接口进行维护是团队作为服务提供者对外所需要暴露的知识;对内而言,各个服务清晰的逻辑流程是确保团队内部高效运作的基础。
  3. 通用库:通用功能、模板和流程。通用库包含的内容可以有很多,代表性的有过程资产定义的格式和团队交流采用的信息传递模板(如Word、Excel等文档的样式和风格、基本章节的划分和定义)、工作流程(如下面讲到的评审会议的召开方式、频率)以及在团队和组织级别进行提取的通用功能(如各个系统都能使用和适配的登录注册功能)。
另一个主要思路是评审。对研发团队而言包括两方面的评审过程:
  1. 设计评审:通过需求分析会议,研发人员明白怎做什么之后就要考虑怎么去做,这个阶段就是要进行系统设计。系统设计的开展方式上可能由相对资深的研发主管主导,也有可能是团队中的任何负责某块功能的开发人员。无论哪种方式,当系统设计的成果出来之后、正式启动代码开发之前,设计评审是必须要有的,以确保设计中是否有业务逻辑上的纰漏以及在开发团队成员之间达成一致。
  2. 代码评审:当一个阶段的代码已经基本开发完成并提交测试,是时候大家一起坐下来进行代码评审的时候了。代码评审通常的方式是同级评审(Peer Review),包括代码走查、代码审查等形式并灵活运用各种重构手段确保代码的质量。
通过加强过程资产建设和评审,轻量级研发知识管理的目标在于形成“老人做新产品,新人做老产品”的研发良性循环。

三. 轻量级研发知识管理的流程与实践

轻量级研发知识管理之所以轻量,是因为其只包括了两个工作流程和五个工程实践,这些流程和实践都很容易进行实行和推广。下面结合本文第二部分的思路对具体的做法进行展开:
1. 工作流程
工作流程包括设计会议流程和代码质量保证流程,流程中的某些步骤和表现形式将在实践部分进行介绍。
  • 流程之设计会议。设计会议的通用流程如下,其中根本的要求就是要进行系统模型分析和确定服务边界:
  • 流程之代码质量保证。代码质量保证的通用流程如下,其中重点把握代码评审部分:
2. 工程实践
工程实践的产出是代表着知识管理思想的具体产物,包括:
  • 模块责任制:模块责任制的初衷是确保知识管理过程的完整性,无论领域模型、业务流程还是其他多个知识方面都通过业务模块这一基本单元进行组织。模块责任人负责整个模块的知识管理,在具体文档的组织上也建议一个模块维护一份文档。模块责任制的示意图如下:

  • 领域模型:按照领域驱动的设计思想包括Domain、Repository等内容,其中最常用也最必要的就是数据模型,一般通过数据库建模达到这个目的,如下图中使用PowerDesigner设计的效果图:
  • 时序图:统一建模语言是用来对软件密集系统进行可视化建模的一种语言,常用的用例图、时序图、状态图和活动图等都一定程度同时面向业务和技术,其中时序图主要展示业务间的详细流程,同时显示了流程中不同对象间的调用关系和调用顺序。结合“系统运行和边界”的知识管理思想,时序图能够详细描述前端调用接口,定义接口名称、调用方式及输入输出条件;同时也能描述后端各组件之间的调用关系及调用顺序,直观展现了业务模型,个人认为是UML中最适合做研发知识管理的一个必备工具。下面是用Astah UML工具制作的时序图示意图:

  • 通用库:建设通用库或者说IPD思想里的共有构建模块(CBB)无疑是研发过程中的一项最佳实践。通用库的表现形式可以有代码的工具库、基础功能的组件库等。下面是Java代码的工具类库使用说明文档的目录示例,通过文档对该工具类库的定义和使用进行说明:
  • 团队代码评审:Code Review很多团队都在进行,结合“模块责任制”实践,我们可以以模块为Review的基本单元,采用定期(建议一周一次)的集体式(包括团队所有开发人员)的方式进行评审,开展方式上重点关注的几方面可参考下图:

四. 小结

研发知识是核心资产,本文通过两个工作流程和五个工程实践试图寻找适合目前团队最合理的研发知识管理模式。研发知识管理需要我们结合组织或团队的实际情况梳理合适的流程和实践,同时贵在坚持。

轻量级研发知识管理--如何帮助研发人员建设过程资产相关推荐

  1. 卫龙携手鸿翼打造研发知识管理平台,“辣条一哥”再次为食品安全和健康发力

    合作简介 ​▼ ​卫龙已经成为中国最大的辣味休闲食品企业,年营收超48亿元,总的市场份额达5.7%,按零售额计是排在第二名企业的3.8倍.另外,其调味面制品和辣味休闲蔬菜制品的市场份额均排名第一.面对 ...

  2. 搞定研发知识管理,你的企业就能跑快一步

    摘要:随着时代的快速发展,越来越多的人认识到知识的重要性,知识管理最大限度地实现了知识资源的共享和交流.在研发团队,知识管理更是促进企业在市场上的决胜因素之一. 本文分享自华为云社区<华为云De ...

  3. 「技术人生」第10篇:如何做研发效能提升(即指标体系建设过程回顾)

    01 背景 Aliware 纵观软件研发的发展历程,如果说"业务需求开发"是核心主线的话,那么研发效能建设就是这一核心主线之外最大的一条支线.每个历史阶段的研发效能所面对的主要矛盾 ...

  4. 知识管理的唯一出路:与业务融合,构建情景化知识管理体系

    早在20世纪80年代,以美国麻省理工学院教授彼得•圣吉(Peter M.Senge)为代表的学者,开始致力于学习型组织的研究.以此为起点,屈指算来,知识管理也已经走过了20多年的漫长历程.虽然随着知识 ...

  5. 2012中国知识管理论坛成功举办,演讲内容公开了

    2012年知识管理论坛现场 2012年12月22日,由中国人民大学信息资源管理学院.知识管理中心(Knowledge Management Center).数据工程与知识工程教育部重点实验室共同主办的 ...

  6. 湖仓一体架构下的数据研发及管理

    随着数字经济的快速发展,数据业务化.数据要素化已成为企业发展新引擎,以云计算.大数据.人工智能等为代表的新技术迅速发展,"得数据者得天下"已成为一种共识.在数字时代,数据无疑是企业 ...

  7. 田志刚:卓越绩效评价中的知识管理模块分析

    一.<卓越绩效评价准则实施指南>对知识管理部分要求 在<卓越绩效评价准则实施指南>中,知识管理位于第六部分"测量.分析与改进",其主要内容为: " ...

  8. 商务智能与知识管理对比分析

    知识经济时代,信息和知识已成为企业发展的战略资源.知识管理是伴随知识经济出现的一种创新管理,知识管理要综合运用战略.组织.流程.技术.变化等多种措施和管理工具,以富有效率的方式动员组织拥有的一切资源来 ...

  9. ITIL知识管理分析及如何实施

    什么是知识管理 知识管理是在 IT 服务台内收集.分析.存储和共享知识的过程.它旨在帮助服务台团队在整个使用寿命期间做出正确的决策 通过有效控制和处理信息流来循环和事件解决过程. ITIL® 4将知识 ...

最新文章

  1. mysql 主从复制 双主从复制原理   防止主键重复问题(必看)
  2. 【转】关于Ubuntu的sources.list 的总结
  3. 改:今天看到的一个有趣面试题:return *this和return this有什么区别?
  4. 信息系统项目管理师案例考试汇总(2005~2021年)
  5. 从module的简单实现到模块化
  6. SASS+Compass基本使用,结合JavaScript实现随机点名小系统
  7. 介绍一个Material设计风格的Chrome开发者工具增强扩展
  8. 如何远程管理Quartz
  9. 了解普通人的心理,在销售中非常重要
  10. [转载] Python杂谈 | (6) numpy中array()和asarray()的区别
  11. 斯坦福人工智能与图像处理_斯坦福大学设计新型AI摄像头,能更快对图像进行分类...
  12. Linux安装samba服务
  13. CC2530实现流水灯
  14. Protractor小结
  15. 5月14日社区技术直播【Analytics Zoo上的分布式TensorFlow训练AI玩FIFA足球游戏】
  16. 高德地图-绘制去程和回程路线
  17. linux kde磁盘扫描,在KDE桌面中使用Krusader进行更好的文件管理 | MOS86
  18. laravel接合monolog实现日志记录到Elasticsearch实践
  19. 给打算创建一个欢乐的婚礼建议
  20. linux 自定义目录,Linux系统中使用脚本指自定义文件夹图标(gio命令)

热门文章

  1. PostgreSQL得出两个timestamp的秒数差值
  2. 自定义微博小尾巴(源码+解析)
  3. ESMM全空间多任务模型解读与试验
  4. Windows驱动开发入门 -- HelloWorld
  5. [软件需求]软件需求规格说明书样例
  6. 数据结构学习笔记(基本概念)
  7. 每日新闻 | Gartner分析和商业智能平台魔力象限公布,阿里云Quick BI入选
  8. 用计算机写作信息技术集体备课,信息技术集体备课总结
  9. 【C++】构建一个正方形类
  10. 【调剂】云南民族大学2023年硕士研究生招生调剂公告