1

T型人才,知识传承,AI

 8 months ago
source link: https://www.zenlife.tk/t-knowledge-ai.md
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

T型人才,知识传承,AI

2023-12-25

上周去客户现场救火,所以接触我们的销售和技术支持的一些同学。岗位性质不一样,一番交流倒是碰撞出思维的火花,所以记录一些 idea。

支持大客户的时候,对接的同事报怨:遇到问题不知道该找谁,解决问题效率低下,往往需要拉一圈人,从一开始拉个 3 4 个人的小群,然后再拉人再拉人,最后拉成了十几个甚至几十个人的大群。

是不是传话的人太多,干活的人太少呢? 也不尽然,其实一方面是路由的层级太深了,另一方面是深度和广度的天然约束。这里先总结几种模式。

  1. 流程规范模式。如果按当下贵司的标准流程,应该是 oncall 走工单的,在收到 oncall 之后,首先会有 L1/L2 层的技术支持的同学先尝试解决,如果解决不了,才会路由到 L3 也就是研发这一层的介入。研发这边每个 team 会出人排班,轮流 oncall。好处是产研被打断得比较少,只有 oncall 当期值班的同学确定会被打断,其它人还是可以安心处理手头的工作。但是对于响应优先级,除非是 P0 P1 紧急任务,其它工单的响应性都会降低,因为 oncall 的人力就那么多,而问题的输入过多之后,就会处理不过来。前线的同学也不能立刻知道会是谁,会隔多久,会来处理这个问题。
  2. leader传话模式。早期我们在没有比较完善的 oncall 制度之前,会更类似于混乱的 leader 传话的模式。比如说,前线的同事并不知道这个问题找谁,但是能知道这是哪个模块的问题,那么直接去找相应的 team leader。其实 team leader 自己日常是要处理许多事情的,他需要拦下各种杂事尽量减少组员被打断。如果能简单处理掉可以选择自己处理,如果不能的情况下,还是会穿透到具体的某个研发。但是这个阶段很混乱,很多时候问题会直接打穿到研发,站在前线 support 同学的角度,假设我我去找一个 leader,他本人直接解决不了我的问题,那他还是要帮我安排到某个研发,那我为啥不自己直接找那个研发?
  3. 项目模式。如果订单足够大,其实我们是可以专门投一部分人 focus 在这个项目上面来的。这一种 support 形式其实是对于单个项目的效率局部最优的,所以其实在商务侧,他们最期望的就是自己的单子,有这种形式的支持。期望支持的人是一个 T 型的人才,T型人才有能力 handle 各个模块的广度问题,又有能力处理特定具体模块内深度的问题,这种场景下是最好不过了,一个这样的人的支持,在这种场景下可以释放出一个团队的战斗力。

比如说他们提到,"当发现 XX 被拉进群里来支持的时候,就觉得好有安全感"。而这种所谓的 "安全感" 就是对个人能力的一种肯定,能帮忙解决事情,而不是传话。我也举例说,"比如 YY,他能处理的问题就很多"。我说的 YY 这个同事之前是研发出身,后面转岗去了技术支持的团队,所以相对来说技能点更丰富全面。 这里也有一些影响因素,比如说已经工作了好些年的同事,其处理问题的经验和能力跟新人就不一样。oncall 的流程规范下,会遇到这样的不确定性,比如说工单被 schedule 到具体某个同事,而那个同事是刚转到那个 team 不算太久的新人,其实他也处理不了,那他还得继续往其它同事传。

好啦,关键点来了...我们不可能指望每个人都是 XX,每个人都是 YY 这种,战斗力很强的。我们也不能指望平均花 4-5 年的培养周期,才能出培养一个 T 型的人。

一个人的精力是很有限的,这是一个制约 T 型人才的重要因素,对于这一点我感受很深刻。

我加入公司的时间很早,随着产品最初的版本一路过来,整体架构都足够熟习。随着组织架构的调整我是经历过多个团队,覆盖许多的模块。所以在我去 oncall 的时候,我自认为是能够 handle 特别广的问题的。但是我发现,如果广度够的时候,深度就不够了。曾经我写代码也很猛,我写过 ddl 的代码,我写过事务的代码,可以说在 repo 中的各个模块,都曾留下过我的痕迹。但是,一旦我三个月不碰那一块的代码之后,查该模块有一定深度的 bug 的时候,就感觉很吃力了。

所以我们讨论的点又落到的知识的传承上面。

最深入理解某一小块代码具体实现的,肯定是还在写代码的,三个月以内触碰过那块代码的人。模块的划分越来越细,越来越细,最后变成了很多颗螺丝钉,也就是所谓"专家",focus 在这么很窄的一个模块上面。

这是一个适应环境演变的特化的过程。比如果一个段子说,从阿里出来的大厨,到了外面小厂,人们以为他肯定是无所不能啦,结果他说,只负责在萝卜上面雕花。买菜不管,洗菜不管,下厨更是不会...当模块和层级无穷分裂,最终就是这样的形态。

当我们一个核心的"专家"离职,他所负责的那一块可能就没人能顶替他。知识是在他大脑里面传承的。可能有人问,为什么没有文档?不,我们有文档,有很多的文档,零散的知识库。有这些"文档"并不代表有这些"知识",就好比书架上面有那么多书,它们都进入到你的脑子里面了么?

存储信息最高效的实现,是在某位专家的大脑里面。你问他什么,他会直接给你答案。这种检索过程最高效。就拿最近 oncall 中的问题来举例,客户问一个 prepare plan cache 为什么不生效的问题,我是研发,我可以跟代码去分析那块代码,只要是熟习那块代码并且给一定的时间,总能分析出来为什么。但是如果我们直接让写那块代码的同事来看,他几乎很快就能得到答案:哦,是代码中这里的判断条件,导致 range 查询请求转化为 point get 的时候,这个场景 prepare plan cache 使用不上。再比如说一个 ddl 卡住的问题,我知道 ddl 的执行流程,状态变更,知道怎么样获取到 ddl 元信息的状态,然后去找相应的源代码,而换成另一个同事来看,她直接得出答案了:这是 6.5.x 里面的一个已知问题,现象是 xxx,已在更高哪个版本中解决! 看,甚至并没有计算过程,直接出结果的,高效吧?这就是专家的威力。就像高考做题一样,有很多题目连答案都直接进缓存了,不涉及计算过程。

但是人脑的存储容量是非常有限的,考纲越大,就需要越多的专家只记忆其中一门科目的细节的过程。知识就像一片叶子上面的脉络一样,越是偏上层的原理性的东西,越是容易掌握。而偏下层细节方面的,越是难以用缓存在大脑的方式来处理。你问一个螺丝钉,他对他自己代码的那一个细节最清楚。你问一个中层的 team leader,他能够知道这个模块的整体情况和工作原理,但是对于代码中的某一些细节,他是不如螺丝钉的。而你再问他的 leader,那他抓的方向可能就不涉及代码了,他在思考整体的架构,系统的演变方向等等等。你抓首席架构师去处理一个具体 oncall 问题查查 bug 试试,这是没法处理的呀!至于 cto 已经去 branding 去了,刷脸增加 awareness。他要告诉大家的是,这个领域遇到的挑战是什么,新出现的发展方向是什么,要跟客户讲清楚自己家产品的先进性是什么。

注意到没有,知识是有分类的。如果还是按 T 型人才来讲,研发的特性是专,而 L1 L2 support 的特性是广。问一个模块的研发,另一个模块的问题,可能他掌握得还不如 L1 L2,因为后者可能正好在这个客户里面遇到,而到另一个客户里面,其结果是缓存着的不涉及到运算过程。

一个同学 oncall 累积的经验越多,他越是能见多识广地知道某个问题是什么原因引起的。这份经验的传承并没有那么自然,所以其实我们也有整理 knowledge base,oracle 的 knowledge base 甚至是包装成产品来卖的。对于这块的反馈上面,有部分同事表示好用。我还是持中立观点,它只是提供了一个资料检查的地方,知识并不是带智能的。而且在维护上面,我们需要付出整理成结构化的知识的代价,只有结构化的知识是易于被检索的。

继续从 knowledge base 的事情往下讲,我突然冒出了个 idea – AI。

前面说过,T型人才是很难的。知识的高效检索受限于介值–专家的大脑中,其容量十分有限。当知识以其它形式组织,比如说 knowledge base,它就仅仅是一份数据而已,检索并不高效。我们最有效的得到答案的方式是,问专家。

当这个链路变得很长之后,问题传达到专家那一层,需要的传话太多,影响效率。如果有可能突破这样有限制,达到更高的效率,人类是做不到的。只有另一种可能就是 AI。AI 是有学习能力的,给它投喂 knowledge base 从而得到一个可以回答问题的机器人,比花 4-5 年去培养一个可以处理 oncall 问题的T型人才,其实训练效率要高得多。

我能想到的 idea,其它人也能想到。于是我去搜了一下,结果发现公司内已经有同事在做这样的方向了。只不过当前机器人的能力,还达不到人工智能,大概处于人工智障的阶段。AI,这是突破极限的方法,"人们总是高估短期而低估长期科技能力",到底未来会怎么样,等未来去验证了。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK