在菊厂八年的那些人、那些事

Posted by Shi Hai's Blog on October 30, 2023

对自己不太长的职业生涯做个简单总结,也和团队内同学做务虚交流使用。

达尔文在《进化论》中有句名言:“能够生存下来的物种,并不是那些最强壮的,也不是那些最聪明的,而是那些对变化作出快速反应的。” 达尔文《进化论》 侵删

尊重不确定性

是否从不确定性角度来看待事物的发生和发展是现代科学和经典决定论的重大区别之一。牛顿经典物理学认为宇宙都是设计好的,所有事物都按照一定规律运行,而上帝不会掷骰子。牛顿经典物理学实际代表的是一种机械唯物主义,而这种机械唯物主义主导了第一、二次工业革命。而流水线就是机械唯物主义的产物,所有事物都可以被拆分成最小单元,确定性是大概率事件而偶然性是小概率事件。但第三次工业革命则是以三论(控制论、系统论、信息论)为主导的革命。
世界的发展和演进充斥着各类不确定性。在软件工程领域中,我们可以将不确定性理解为对软件系统进行敏捷迭代的前置条件。在读研期间,老师给大家介绍敏捷迭代的一句话印象特别深刻,不是老师讲道理讲得太深刻,而是一个理工科老师配上比较生硬的抒情语气,带来的反差感太强:“啊,我们要拥抱变化~”。工作这些年一直在软件工程领域摸爬滚打,虽然没写几行代码,但对敏捷迭代的本质确实也有了更深刻的理解。我们可以把早些年的瀑布迭代开发模式理解为计划经济,这种开发模式无法对外部需求变化反馈做出及时调整,而敏捷迭代则尊重了这种不确定性,当外部需求发生变化或者设计者对需求有更深刻的理解时,开发团队就能对软件系统进行快速迭代以应对外部变化。所以,软件工程迭代的出发点是先找到最不可能变化的点进行开发以防止反复返工。
华为云计算在2019年左右经历了软件交付的交付流程变革,从公司的IPD交付模式转换到DevOps模式。华为云计算的领导们希望通过交付模式的转变来提升生产效率。如果大家不了解华为的交付模式,可能对IPD流程比较陌生,IPD这个词其实代表的就是一种逻辑概念上的流水线:所有设计时间点、开发时间点、测试时间点、交付时间点以及交付验收内容都是明确的,但这种模式在云计算场景下无法快速对市场需求做出反应。因此,领导们经过充分讨论后决定引入DevOps工作流。但引入了DevOps作业流是否真的带来了质量和效率上的提升?目前还没看到最终的答案,希望在5年内能看到结果。因为华为云计算的业务模式不同于AWS、Azure等云厂家,既有线上销售的云服务,也有线下打包发布的云产品。另外由于2B客户类别和形态各异,研发需求人力管道经常爆满,研发团队落需求需要反复进行优先级排序。因为业务场景、组织结构、技术堆叠等复杂,导致研发团队经常只顾得上Dev而“不重视”Ops,大家确实也更喜欢干Dev的事情,因为Ops的Oncall心理压力相应会更大点,因为你总会担心凌晨深睡的时候被拉会。所以这个问题还需要在持续从组织+工程能力+业务形态上继续思考。
不确定性 侵删 事情做的好坏程度取决于解决了多少不确定性。这个不确定性其实有点抽象。为了让大家更好的理解这个不确定性。我举一个可能不是太恰当的列子来做说明:我们知道一枚骰子总共有6个面,共6个数字,那是因为我们都已经玩过骰子了。如果让一个小朋友第一次玩骰子,小朋友只能看到顶部出现的数字,其他面数字不能看,然后在他面前投掷3次,出现的数字分别是:1,2,2,那小朋友就会认为这个骰子下次投掷也只有这三种可能性:1、2,但当第4次投掷的时候出现的数字是:3,那小朋友脑子中出现的逻辑就是投掷骰子会出现三种可能性结果:1、2、3。此时,小朋友脑子中掷骰子的可能性空间就是:1,2,3,而对应的不确定性空间则是:4,5,6。中国有句禅语:“看山是山,看山不是山,看山又是山”,其想表达的核心观点其实和小朋友掷骰子一样,不是山发生了变化,而是随着我们的经历不断丰富,我们看到了更多的可能。我们的工作、生活由无数次类似小朋友掷骰子事件叠加而成,所以我们的未来就有无限的可能。因此决定我们未来生活质量的不是那些我们已知的内容,而是那些不确定性事件以及我们如何在未知的情况下能处理好不确定事件。 如何才能把握好不确定性事件,让我们生活能不断持续向上发展?我个人的建议:

  • 学会解决大而简单的矛盾:在工作中,我们可能要解决无数的问题,因为时间有限,所以我们想保质保量来解决所有问题基本不太现实。如果大家的预算、人力都很充足,那我们就不需要“工程管理”了,工程这个词意味着我们需要在人力、物力有限的情况下做出取舍来达到利益最大化。 我个人的一个管理习惯是找个便利贴对所有问题进行分类管理,然后放在一个更长时间线维度来思考和排序。如:在一年的时间内,我应该对手上这些问题进行怎么排序、需要和哪些目标团队配合、我手上的问题是否也是周边待配合团队的主要任务、问题是否还有疑问待分析等等。当我将问题综合排序后就优先聚焦解决Top3问题,其他的问题就先让子弹先飞一会,这里的先飞一会也不是说就放任其自由发展,而是让问题处在一个相对受控的状态;
  • 通过统计学来看问题我们的思维逻辑一直在发展中,所以在不同思维阶段看世界是不一样的,所以我们眼中的世界和真实的世界可能永远不会划上等号。 因此,我们要养成通过统计学的角度来看问题的习惯,这样就可以避免因为我们自己的“思维缺陷”而看不到事物的本质;
  • 要善于使用逆向思维挑战自己:因为我们对自己过于了解,所以往往会高估自己的能力;因为不了解他人的经历,所以也会低估他人的能力。因此,为了让我们对自己有个更清楚的认知,我们需要站在不同维度逆向挑战自己的思维。我个人比较喜欢的一个逆向方式是:写一篇文章或者材料,让相关同事帮忙进行检视并给出指导建议,而我则可以通过这种检视互动持续完善自己的思考角度和广度;
  • 掌握多学科能力:我们都知道不应该拿着锤子的时候看哪里都是钉子,但我们其实很难摆脱出这个困境。因为,我们所谓的价值观、思维逻辑都是由我们曾经获得过的信息所构成的,所以当面对一件未知的事情时,我们还是会习惯性的用已有的思维进行思考。为了让我们尽可能摆脱思维惯性的影响,我们就需要持续找各种类似飞行员训练的“模拟器”来训练我们的思维,当我们的思维逻辑链被训练的足够强大时,我们的思维惯性就会变得更弱,对事物也就能看得更透彻些。而各类书籍就是其中一类“训练模型器”。公司内也有那种高考680+,在北大读物理学,去美国攻读物理学博士辍学然后当码农的大神,然后在软件工程领域混的风生水起。因为这些同学本身就爱琢磨各种问题,本身就是一个开放系统,所以他能吸收各个领域的认知,表现出来的特征就是看问题的角度的深度和高度比一般人要强很多。我自己其实就学渣一个,思维也有点封闭。不过在我看过各类历史、政治、心理学、营养学、健身运动、专业书籍后,我惊奇地发现确实很多思考和解题逻辑完全是互通的,大家有空也可以到豆瓣查看各学科书籍,如果都能看每个类别科目10本以上高评分的阅读书籍,持续阅读3年以上,我相信你也会有一个不错的收获。个人阅读书单推荐

承认不完美

社会系统是一个熵增到熵减、无须到有序的组织过程。社会系统和系统中的人都处于持续进化过程中。瑞.达利欧在《原则》中说到:痛苦+思考=进化
我们在生活中除了面对不确定性之外,还要面对各种不完美。我们总会高估自己的能力,而低估社会的复杂性。 所以我自己也经常会有这样的感觉:每隔一段时间就会掉到一个坑里,然后自己吭哧吭哧从坑里挣扎爬出来,然后继续掉坑,继续爬坑。这种掉“坑”的原因我归结为两个原因:

  • 组织原因:华为内部有个论坛叫做“心声”,大家会在论坛里面吐槽各类问题,有针砭时弊的也有单纯聊家常的。其中有一篇文章的标题我印象非常深刻,文章叫做《是华为的成功成就了公司的折腾,还是公司的折腾成就了华为》。这篇文章主要讲了随着公司规模和业务领域越来越大,感觉各个组织的折腾变得越来越多了,想自己安安心心干点正事也变得困难了。所以作者就抛了问题讨论是组织的折腾成就了公司,还是公司成就了各个组织的折腾。华为的组织模式非常复杂,比如:“测试”这个议题从全公司到三级部门可能会同时有5个以上的组织在负责,当然这5个组织之间有不同分工和侧重点。所以在软件工程的迭代演进中,组织一直是需要被考虑在内的重要因素。而每个组织都会在不同角度深入思考相关问题,组织间会有共性议题的交流,但也存在信息相互不对称、职责分工不明确等情况,所以如何链接好所有关联组织,做到全局最优在华为都是一个重要的命题。
  • 个人原因:华为会花费大量精力给现在或未来的基层管理者培训《教练式辅导》。为什么公司会花费大量精力来给员工做这类乍眼一看没有直接效率的培训呢?从我个人的角度理解,这是激活团队或者个人潜能的问题。让20万+员工能更加高效的产出优先级不比思考投资哪些领域主航道要低。在这里我不对教练式辅导涉及的内容本身进行介绍,我想再思考一下这个问题的前提,为什么公司会认为教练式辅导能激发团队或个人的潜能,当团队或个人处于什么状态的时候才能被激发潜能。我们从达尔文的《进化论》中能找到一些合理解释。让我们把时间缩小到万年的度量尺度上来看:600万年前,人类和猿开始分叉独立进化;200万年前,多个人类分叉开始向未来进化;20万年前,智人(现代人类的祖宗)作为独立的一个分叉开始快速进化并进行全球性的扩张性繁衍。智人在众多人种中不是最开始进化,也不是最强壮的物种,但却能从食物链低端走到了食物链的顶端,这也绝对不是造物主当初设计成这样的。这个答案其实达尔文已经在《进化论》中给出:“能够生存下来的物种,并不是那些最强壮的,也不是那些最聪明的,而是那些对变化作出快速反应的。”当我们开始认识到自己就是井底的一只小青蛙,并意识到头顶的天也仅仅是管中窥豹而已,那我们就做好翱翔九天的心理准备。
    17年刚入职的那会,精力旺盛,开会交流和任务推进都可以做到各种怼天怼地怼空气,也挺佩服自己当初年轻精力旺盛,哈哈。但回头来看其实也挺惭愧的,许多讨论实际上没有有效产出。其中一个原因是过高的估计自己理解,而过低评估了事件的复杂度以及他人对事件的理解。后来也就慢慢懂了:交流点到为止,我们不一定都是对的不完美 侵删

发挥主观能动性

主观能动性这个词大家应该都不陌生,把主观能动性发挥到极致的还是要看毛主席老人家。毛主席在调查湖南革命运动的时候能精确知道每个县有多少人口、阶级分布情况如何、有多少锄头、多少把刀。在这个调查革命运动中毛主席把主观能动性和统计学的知识都应用到极致,所以他能才从一个建党的省级干部一直干到国家主席。说一万遍正确的道理,不如说一句可能错的话。 工作后我才感受到主观能动性的强大,这也多亏工作期间遇到的两位PM,给我上了两堂颇有收获的课。

第一堂课:不管什么原因,我们要对最终结果负责

在2018年,我正式工作还不到两年,正苦逼兮兮的在负责华为云Iaas版本的交付工作。有一天的晚上,版本的自动化验证工程挂了导致版本转测失败,需要重新构建版本包并进行重新认证。当时,我一直“忙”于和团队兄弟们人肉“扛”包发布,那会“扛”包辛苦程度不比去工地扛砖强度低,每周会有2-3天需要熬夜支撑oncall并做好发布支撑。有一次,自动化验证工程挂了,和相关同学定位发现是实验室服务器被人误拔了网线,我们插回网线恢复自动化工程后就没继续深入分析,继续回工位去“忙”扛包。徐PM看到了我们的处理逻辑后,就非常严肃地问了我们一句:“有没有做AAR(After Action Review:事后回顾)并且定制改进计划,避免以后还出现这种情况”。我条件反射地答复道:“这个我们已经做了定位,但是有人随机拔错网线我也没法控制”。徐PM说了一句话瞬间把我给点醒了:“老板给你发工资是为了让你按期交付产品的,今天可能是人拔了网线导致产品没按期交付,明天可能是停电导致产品没按期交付,后天可能是因为打雷导致产品没按期交付,每天都有各种突发情况发生,你这个生意还做不做了?”。从那之后,所有要干的事情我会习惯性的多花点时间想想是不是已经是全局最佳了,还有哪些内容需要重新调整,还需要和哪些组织配合进行调整,哪些事情需要我们“战略性”挂起。
我给我们团队同学说“战略性”挂起,我们团队同学都会戏谑而又不失礼貌的会心一笑。在华为,有很多事情确实从我们的小团队组织角度讲很重要但从更大组织角度讲优先级可能不是太重要的事情,所以有很多事情的目标达成需要依赖多个团队利益目标一致才行。

第二堂课:工作第一层次:执行、工作第二层次:交流、工作第三层次:你组织,我跟你干

在2020年,当时我在负责的一个专题工作是对变更流水线进行内容重构和编排,确保流水线上承载服务构建到发布的完整端到端过程。当时,因为我经常混迹于各大开源社区,求师问道,习得较多可以对外炫的技术点。所以在处理这个专题时,我经常会向孙PM炫技,总结介绍哪些技术点如何如何?最后,毫无意外的被孙PM给教育了:“你先听一下我/客户的诉求,然后在去表达你的想法,你没想法就执行,有想法我们就交流,你有更好想法就按你的想法去办”。也让我开始花更多时间考虑要解决问题的本质原因是什么:技术是解决问题的主要手段之一,但不是唯一手段,技术的积累要能满足/解决客户的需求/问题主观能动性 侵删

引导好情绪

在华为工作,一群人在线上进行“拉通对齐”是一道绕不过的坎。另外,我们也会和各种性格的同学打交道。大家臭味相投那可以交流很舒服,当大家岗位、出发点不一致那也会争得面红耳赤。
从心理学角度讲,我们的认知其实和情绪是紧密相连的。当我们的认知被他人认同或者否定时,情绪值就会发生改变。特别是认知被他人否定时,这个波动值要比被他人认同带来情绪波动值高数倍。这个其实和动物进化紧密相关,在自然界中,大多数动物有领地意识,当领地被剥夺时,只有放大负面情绪时才会更强烈地驱使失去领地的动物夺回领地。
所以,我时常认为人其实就是在厚厚的兽性上加了一层薄薄的人性。在工作中,我们要训练自己具备将事情本身和情绪进行分离的能力,只聚焦于事情本身,而不是在情绪上。
情绪 侵删

局中事,局外人

目前我们组团队负责的议题是Iaas软件工程能力提升,这个工作本身没有对外交付服务和扛销售指标,另外质量和效能提升情况也无法被实证,是一个证伪不证真的议题,所以很多同学认为负责这个议题非常抽象,很难把握方向。这个问题和现在社会分工或者流水线分工有点类似。我举个可能不恰当例子说明一下:半导体芯片制造,从芯片这个制造产物看,构造很复杂,都已经是3nm级别的工业产物,并且集成了各种CPU、GPU、射频芯片等,但实际上我们把整个半导体芯片产业拆分开来看,每个环节的复杂度实际在逐层变低的,如:芯片设计、光刻机、光刻、蚀刻、封测等,每一次系统复杂度的上升都是在尝试提升生产效率或产品竞争力,而每一次局部复杂度的降低都是在降低成本所以提升软件工程能力,有点像逆系统进化,善于站在上帝的视角看问题,突破当前思维逻辑的桎梏,打破线性思维,即要洞察系统未来演进方向,又要聚焦局部优缺点,并且需要了解自己是在设计机器还是在机器里面当螺丝钉。 情绪 侵删

在黑暗中寻找光

职场工作,晋升是一个绕不开的话题。确实有极少部分同学在行业快速扩张期间抓住机会,个人职级跃升速度能达到5年6级,这个概率我个人估计不会超过百分之一,这个是行业发展带来的这个红利,有这个红利我们当然要拼全力接住,但实际工作生活中这类事件属于极小概率事件,可遇不可求。我们遇到的更多的是如何在面对不确定性、不完美的时候,发挥主观能动性,扩宽可能性空间,在黑暗中寻找光。 黑暗中发现光 侵删

参考文档