非技术人群成就10倍工程师:我学习到的最佳工程建议

2019 年 8 月 08 日

非技术人群成就10倍工程师:我学习到的最佳工程建议

当我致力于成为一个 10 倍工程师时,我开始越来越多地反思人们提出的建议,希望借此让自己的工作能力快速提升。一般来讲,我发现最好的建议往往来自那些跟我的工作内容——也就是软件工程方面毫无关联的人群。


我很幸运(当然,有些朋友可能觉得这也是种负担),能够在某些关键系统当中拥有高影响力特权。但这项工作也自然给我带来了不少自我怀疑甚至是焦虑情绪。随着时间推移,我发现自己总在面临类似的挑战、写下类似的想法,同时也讲述着类似的故事作为回应。最有趣的一点是,真正与软件质量相关的一切因素,似乎都与软件本身没啥关系。


1. “像我们这样的人,是靠填补事物之间的缝隙来赚钱的。”


发言人:美国国家安全局(NSA)高级官员


发言背景:说起我是如何一步步进入美国国安局国务院办公室的,这个故事可就长了。但其中最值得一提的,是一次堪称疯狂的会议,当时有不少非常重要、头衔显赫的人物出席,他们也提出了不少非常愚蠢的计算机安全相关建议。虽然这样的情况后来又出现过不少次,但第一回当然给我留下了最最深刻的印象。我们本打算能跟高层领导来一次富有成效的交流,而不再在三方机构之间进行毫无意义的踢皮球式沟通。我记得会上有一位女士——没错,确实是位女士——在她的同事就国土安全部提出的问题做出错误甚至侮辱性的回应之后,说出了这句话来缓和当时的局面。她显然是想化解冲突,而且我觉得她非常认真地斟酌了自己的用词和表达。虽然她说得比较隐晦,但其中透出的洞察力非常敏锐而且重要。不同事物之间的接缝最可能引发安全性与可靠性问题。除了文书往来之外,组织结构之间也有不少这样的接缝。没人能确定谁拥有什么,或者由谁来负责某些不太可能进行适当监控的场景,乃至需要持续升级与维护的具体项目。这种缝隙是最让人摸不着头脑的所在,有时候问题可能很多年都得不到解决。因此,如果大家的工作是保障安全性或者可用性,那么从接缝处入手往往能够带来最为可观的回报。


我如何调整自己的方法:我开始采用一种名为 100:10:1 的创造性记录方法,用以评估并改善软件系统。


100:10:1 背后的基本思路非常简单:


  • 列举出100件可能出错的事物。

  • 在其中选出10项发生机率最高的事物并进行调查。

  • 找到其中最值得关注的1项核心问题。


数字本身并不重要。100:10:1 背后的原理,在于我们会产生很多潜在的想法,这时候我们就得学会捞点干货,将那些不太直观、但却最为重要的问题整理出来。随着时间的推移,我们可以不断深入研究那些发生机率最高的大事,而这份清单也会慢慢缩短。有些想法最终可能被证明是个错误,有些想法能够与其它想法合并,有些则被排除在外——因为已经有其他人负责接手……最后,余下的就是大家都没有注意到的接缝部分。


以这种方式解决问题,也让我的团队获得了更出色的实际表现。一般来讲,团队工作当中最困难的部分就是引导人们提出那些最终可能被排除的想法。人们倾向于自我审查,即避免提出看似存在错误的观点。我们会在心里算一笔账,看看谁在交流当中表现得最优秀。而一旦整个团队都习惯了这种方式,那么盲点就会出现。幸运的是,人类对概率这事理解得很差——非常非常差。明白了这一点,哪怕是高达 95%的错误率,我也愿意主动提出。因为只要能发现一个关键问题,那么之前被排除的所有“污点”都会被团队成员所遗忘。我发现了一些被经验丰富的工程师们所忽略的问题,并借此很快成为同事眼中的超级英雄。


当晋升为团队领导者时,这种作法的收益变得更加显著。我们会讨论很多与心理安全相关的话题,我努力引导大家畅所欲言,而且不加太多约束条件。对于我自己这样一个敢于提出愚蠢问题,同时对各种声音都有较强包容性的人来讲,创造这样一个大家相互纠正且积极辩论的环境并不是什么难事。整个过程变得越来越健康,人们不再在心里琢磨自己的表现,而是像我这位管理者一样轻松愉快地提出自己的念头。


我发现,提前预设好这样的场景会很有帮助:我比较倾向于考量极限情况,但却很难对极端情况做出定义。结果就是,我转而提出一些无关紧要的情况。在讨论某个问题或者某种场景时,所有相关信息基本可以分为三类:真实的信息、虚假的信息,以及真实但无关紧要的信息。我建立起了这样一种文化——人们不再刻意回避真实但无关紧要的信息,这使我们能够从总体上做出更好的技术决策,因为每一位团队成员都能够立足全局视角获得更充分的依据。


2. “弄清人们希望你成为哪方面的专家”


发言人: Leslie Ryan,我的 TOEFL 讲师


发言背景:Leslie 负责对我的英语教学能力进行认证。凭借这项技能,我可以环游世界,为那些无法为我支付工资或者提供签证的小型非政府组织工作。在我第一次独自站上讲台之前,他语重心长地向我传授了这句箴言。令我印象深刻的是,在带过的每一组学生准备首次站上讲台前,他都会提到这句话。可以想见,这绝对是我需要认真揣摩的金句。


Leslie 向我们指出,我们未来面对的大多数外国学生都是专业人士。他们不需要我们传授商业、法律、医学或者经济学知识。他们已经非常精通这些专业,他们只需要从我们这里学习英语这门语言。他们希望能像使用母语一样流利地使用英语,借此补充自己的职业技能。我们应该成为英语教学方面的专家,这也正是他们花钱聘请我们的原因所在。


来自技术人员的额外建议:“你没有欺骗任何人,我们很了解你是个什么样的人”


发言人: Mikey Dickerson,美国国家统计局局长


发言背景:我和 Mikey 曾在白宫附近位于杰克逊广场的 Jackson Place 总部进行过几次会面。我已经不记得我们具体谈过什么,但我牢牢记得他说出这句话时的情景。Mikey 有个习惯,就是用简短有力的话语结束一段对话。对于很多人来说,那些令人不安、冲突激烈而且无休无止的误解与伤害一直在内心萦绕,但又无法摆脱——最后,我们都习惯了。


我从没想到自己也会陷入这种自我指责的情绪,但我当时确实感觉自己不太适合跟统计局的某些人一起工作。即使是在谷歌、Facebook、Twitter、网飞乃至亚马逊这样的科技巨头,底层工程师在刚刚入职时都会出现这种不适应,更何况身处政府机关当中的我?


我觉得 Mikey 的这句话并没有什么太多的深意。他只是在表达当中陈述了真相:统计局方面很清楚,我绝对不是那种最顶尖的软件工程师。他们清楚我在职业生涯中的位置、我的业务水平以及我的弱点。他们聘请了我,是因为我似乎比较了解如何在政府环境中以可持续的方式完成技术工作。这,才是他们想从我身上获得的技能。


在对话当中,Mikey 又告诉我,“根据你前三个月的工作情况,我打算向你支付全年的工资。即使你只干了三个月的活,我也很乐意签下这张支票。”


在那之后,我不再关心自己在哪里还有问题和不足,我开始专注于尽可能多地从那些政府工作人员身上学习经验。


我如何调整自己的方法:在与工程技术团队合作时,我会认真思考 Leslie 的意见。大多数工程师们都急切希望证明自己的实力,却没有意识到其中不少技能正是团队中其他成员的本职工作。软件工程师们可能会突然表现得像个产品经理、设计师、方案编辑甚至销售人员。然而,其他专业人士对这样的状况无所适从,他们不理解为什么这家伙像发了疯一样要搞个“一人乐队”。


当我发现自己渴望用自己的某种能力打动对方时,我会试着问自己,“我到底是靠什么专业技能加入这个团队的?”通过这个问题,我很快意识到自己急着炫耀的那些知识储备,在真正投入大量时间与精力接受科班教育的职业人面前根本不值一提。接下来,我会选择闭嘴听他们讲,而且效果总是出奇的好。


3. “在你能把事情做得更好之前,首先得避免把事情做得更糟”


发言人: 国家精神病联盟(NAMI)团队治疗布道者


发言背景:要说我为什么会在 2014 年夏天参加 NAMI 的朋友与家庭小组讨论会……这方面背景真的太多太杂,本文里就不具体说明了。总之,我当时欠下 1 万 4 千美元的债务,而且心理上也已经彻底崩溃。但这句话拯救了我。在后来生活逐渐恢复正常时,我意识到自己被迫面对的那些麻烦,实际在日常生活中也随处可见。换句话说说,问题本来就在,极端场景只是让它们变得更明显。


我如何调整自己的方法:作为一名工程经理,我的大部分工作都是阻止真正优秀的人们实现自己的计划。而这些计划往往都有一个共通的开头——“我一个周末就能自己搞定这事。”


如果你正在为同事们做事,而且拒绝他们亲自动手或者参与这个过程,那么你慢慢就会失去助力,也会让同事们越来越依赖你。这样不好,就算推进速度更快,这样还是不好。


不久之前,我们的团队聘请了另一位工程师,他与我们的团队进行了沟通,并提议把旧系统迁移到新系统当中。他刚刚在之前的团队里处理过这方面工作,很有信心在无需我们团队帮助的情况下再整一遍。他觉得这是他的一大优势,因为我们不需要调整现有事务优先级,他也不需要我们的任何帮助。但我说不行。其实这事听起来挺好的,这位工程师确实很有才华,我为什么要拒绝?


理由很简单,如果其他人帮我们搞定了一切,那我们就不清楚新系统是如何工作的,这样时间长了肯定要出问题,而最终损失很可能远高于当前节省下的一点点时间。但其他团队成员不这么看,所以我做了妥协——继续开会讨论,交流迁移到新系统的具体步骤。如果听起来确实很简单,那我们就接受这位新成员的提议。


事实证明,我们的服务当中存在一些新系统还无法支持的需求。更糟糕的是,其中一些缺失部分其实不存在明确的解决方案。如果允许这位新工程师马上动手,他肯定会在半途中卡住、直接放弃或者在不清楚背景的情况下替我们做出关键的架构决策。


为他人谋往往起不到预想的效果。如果他们不了解你的架构,那么情况会变得更糟。如果他们不了解你的维护方式,那么情况会变得更糟。如果他们不了解你的需求和实现思路,那么情况会变得更糟。如果他们不关心你之前使用或者构建的成果(毕竟整个过程他们都没有参与),那么情况还是会变得更糟。


所以,最好的办法是补充现有成果,而非一拍脑袋直接搞一种颠覆性的解决方案。没那么好的事情。


4. “先向左,再转右”


发言人: Jesse Teasley 师傅


发言背景:我在大约 16 岁的时候遇到了 Jesse 师傅。他梳着长发绺,教我怎么使用中国的宝剑。他还向我介绍了不少中国的哲学思想,特别是道家思想。


我如何调整自己的方法:道家的核心概念之一,在于对立的和谐。简单来说,道家承认人类倾向于二元思维:白色与黑色,右与左,软与硬,好与坏等等。这是我们习惯的思维方式,但往往并不准确。大自然并不在乎这种严重的区分,所以二元意识的实用性也就值得商榷。虽然二分法确实能够通过简化让某些复杂的思想变得容易理解,但一旦其核心模式无法匹配,也会使我们极易受到重大错误的影响。


道家很清楚,我们这种对二分法的倾向实际上是一种过度优化行为。如果说在特定上下文中,软是最理想的特征,那么我们就会试图消除所有的硬元素。如果白色是最理想的,我们就去掉所有黑色。然而,这种极端状态不仅无法实现,而且其理论也建立在一种与真实毫无关联的二分基础之上。这样的思维后续又对佛教产生了影响,并最终演化出佛教中的禅宗分支。


道家认为通向真理的道路,在于对二分法进行协调。由于人类不太可能彻底放弃简单粗暴的二分观念,因此我们在白色中涂上一点黑,在黑色中涂上一点白。这就构成了道家的象征——阴阳。


我喜欢听师傅讲这些故事,他以一种务实可信的方式进行阐述,让一切更贴近生活而非悬在半空。他过去常常提醒我,“要想打人,你得先把手臂收回来,然后才能向前推。如果不这么做,你就打不出力道。”这就是同一事物中的对立和谐:通过相反的方式,实现正向增强。


我们都知道,假设这东西就是用来被推翻的;但在此之前,我们首先得做出一个假设。相信大家都有感觉,做假设并不容易。道家认为在找到相反的问题解决途径之前,先不要采取任何行动。换言之,在使用二分法看待问题时,要承认自己想到的一切都只是假设。


5. “思考也是工作”


发言人: 佚名


发言背景:我总是把这句话跟一位年长的女士联系在一起。我最后一次见她,是在读大学的时候参加一场冬至派对。很难相信,当时我其实没什么机会跟她交谈,基本根本就不认识她。好吧,我承认,我记不起来这句话是在哪听到的了,目前想想最靠谱的来源还是她。


我如何调整自己的方法:在个人层面,这句话让我能更坦然地安排一点自己的时间。我为什么要离开办公室出去散步?因为思考也是工作。


但它也影响到我管理工程团队的具体方式。在传统的办公环境当中,我常常会告诉团队成员:如果现在是下午 2 点,而且你已经完成了今天的工作,那么没其它情况的话就早点回家吧。这不是在卖人情,而是让员工把精力储存起来。这样,我们有必要时就能稍微调用一点精力,例如凌晨 3 点时打电话过去安排点任务。紧急情况总会发生,而且无法准确做出预测。如果大家今天早早回家,放松精神并和家人共享了美好时光,那么这些积蓄起来的精力一定能在日后发挥作用。


我真的很难这么简单的道理还得专门列出一条。但很多人都接受过类似的训练,认为只要没看见员工在工作,管理层就会认为这帮家伙是跑去偷懒了。


我认为我的角色既是经理又是执行官。我的工作是将手底下的工程师们卖给我们所效力的这家公司。组织结构的本质在于过度优化,也就是说其终极目标在于让我们所有的员工都达到无以复加的极高生产力。而要实现这个目标,就必须得有一套经过明确定义的方法与流程,并具备高生产力模式能够在不同部门间轻松复制。


但是,只要稍微翻翻研究资料,大家就会发现这种方式根本指导不了理想的团队建设或者长期运作。高效的团队更需要信任。当然,我不是说决策或者指标跟踪框架没有意义——它们很有意义,但使用流程代替信任的作法还有另一个名字,“官僚主义”。首先得存在信任,然后 KPI、OKR、SLO 这类字眼的才能发挥作用。


但随着时间的推移,信任水平又会自然降低。意大利研究人员 Cristiano Castelfranchi 与 Rino Falcone 提出了一种信任模型,他们认为可观察性并不是成功的决定性因素。根据他们的理论,模糊而成功的实体,在可信任程度方面甚至不如直观而失败的实体。如果我们能够快速高效地从失败中走出来,那信任度就会上升;但如果我们一直悄无声息地夺取一个又一个胜利,则在他人眼中将蜕变为未知与可疑的综合体。这就解释了所谓的服务恢复悖论,即当服务供应商在失败之后重新恢复服务后,消费者们反而会表现出更强的信任感。


因此,我们必须不断提醒组织,提醒其雇用了很多自己非常了解的员工。虽然在刚刚入职时,组织觉得自己很清楚这帮人的底细,但随着时间的推移,如果观察不到员工的直接价值,信任度就会降低,而官僚主义影响也将占据领导层的思维主体。正因为如此,人们才会放弃本来可以享受的假期,在下午 2 点忙完的时候回家,或者在凌晨看到邮件时选择不予理会——他们发现了问题的本质,能观察到的工作结果要比实际工作价值更重要。


很明显,这会创造出一种让每个人都越来越消极的文化。员工倦怠、组织效率下降、糟糕的表现令信任度受损、组织官僚作风横行……我生命中的转折点,就是我意识到这些问题的那一天。就在这天,我发现想要建立起伟大的工程团队,我并不需要成为世界上最顶尖的工程师,而需要擅长推销自己的团队成员并把实际情况准确传达给上头。我需要让管理层感觉能真切观察到团队的运作,从而保持上下级间的高信任度并杜绝官僚主义占据上风。


原文链接:


https://medium.com/@bellmar/all-the-best-engineering-advice-i-stole-from-non-technical-people-eb7f90ca2f5f


2019 年 8 月 08 日 08:082099

评论

发布
暂无评论
发现更多内容

LeetCode题解:144. 二叉树的前序遍历,使用栈,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

第四周总结

饭桶

数字货币交易所定制开发,区块链交易系统搭建

135深圳3055源中瑞8032

区块链数字钱包技术开发,数字货币钱包源码搭建

135深圳3055源中瑞8032

区块链挖矿系统开发,云算力矿机平台

135深圳3055源中瑞8032

大型网站架构总结

黄立

浅析 Java 内存模型 二

朱华

Java JMM

架構師訓練營第 1 期 - 第 04 周總結

Panda

架構師訓練營第 1 期

第四周作业

alpha

极客大学架构师训练营

架构师训练营第 4 周作业

netspecial

极客大学架构师训练营

架构师训练营 -week04-作业

大刘

极客大学架构师训练营

架构师训练营第4周作业

悠哉

架构师训练营 - 第四周作业

一个节点

极客大学架构师训练营

第三周课后练习

大大猫

极客大学架构师训练营

随记-- 一件事要不要做,值不值得做?

wyzwlj

spring-boot-route(十二)整合redis做为缓存

Java旅途

Java redis Spring Boot

数字人民币真的来了 六年历程全回顾

CECBC区块链专委会

数字货币 DCEP

承兑商USDT支付系统平台,区块链支付软件开发

135深圳3055源中瑞8032

第四周课后练习

大大猫

极客大学架构师训练营

第4周 作业一

bearlu

CPU 执行程序的秘密,藏在了这 15 张图里

小林coding

操作系统 计算机基础 计算机 编译器、程序语言、CPU 指令

架构师训练营 - 第四周总结

一个节点

极客大学架构师训练营

配置Ubuntu工作环境

Rayjun

week04_系统架构

……

区块链思维是赋能未来经济的关键思维

CECBC区块链专委会

区块链 经济 技术创新

技术创新+产业升级,区块链为白酒行业带来更多机遇

CECBC区块链专委会

区块链技术 防伪溯源

MySQL-技术专题-MySQL索引面试题

李浩宇/Alex

架構師訓練營第 1 期 - 第 04 周作業

Panda

架構師訓練營第 1 期

架構師訓練營 week4 作業

ilake

第四周课后练习

饭桶

架构师训练营第 4 周学习总结

netspecial

极客大学架构师训练营

非技术人群成就10倍工程师:我学习到的最佳工程建议-InfoQ