新闻资讯
写给工程师的十条精进原则
发布时间:2021-04-01 00:13
  |  
阅读量:
字号:
A+ A- A
本文摘要:引言时间回到8年前,我人生中的第一份实习事情,是在某互联网公司的无线搜索部做一个C++工程师。其时的我可谓意气风发,想要大干一场,效果第一次上线就写了人生中第一个Casestudy。 由于对部署情况的不相识,把SVN库里的设置文件错误地发到线上,而且上完线就去吃晚饭了,等用饭回来发现师傅在焦头烂额地回滚设置。那次故障造成了一个焦点服务20分钟不行用,影响了几百万的用户。这仅仅是一个开始,在厥后半年的时间里,我险些把所有职场新人可能犯的错误都犯了个遍。

华体会官网

引言时间回到8年前,我人生中的第一份实习事情,是在某互联网公司的无线搜索部做一个C++工程师。其时的我可谓意气风发,想要大干一场,效果第一次上线就写了人生中第一个Casestudy。

由于对部署情况的不相识,把SVN库里的设置文件错误地发到线上,而且上完线就去吃晚饭了,等用饭回来发现师傅在焦头烂额地回滚设置。那次故障造成了一个焦点服务20分钟不行用,影响了几百万的用户。这仅仅是一个开始,在厥后半年的时间里,我险些把所有职场新人可能犯的错误都犯了个遍。

架构师让我调研一个抓取性能提升方案,我闷头搞了两周,也没有得出任何结论;原来摆设好的开发计划,由于我暂时要回去写论文,搞得司理措手不及;到场项目座谈会,全程“打酱油”……那段时间,自己也很苦恼,险些天天晚上11点多才走,很累很辛苦,但依然拿不到想要的效果。8年已往了,自己从一个职场小白逐步发展为一名技术Leader。我发现团队中的许多同学在不停地重复犯着自己当年类似的错误。他们并不是不努力,到底是那里出了问题?经由一段时间的视察与思考后,我想我找到了谜底。

那就是:我们大多数同学在事情中缺乏原则的指导。原则,犹如指引行动的“灯塔”,它毗连着我们的价值观与行动。不久前,桥水基金首创人雷·达里奥在《原则》一书中所转达的理念,引爆了朋侪圈。每小我私家都应该有自己的原则,当我们需要作出选择时,一定要坚持以原则为中心。

可是在现实生活中,我们往往缺少对原则的总结,对于许多人来说这是一门“只可意会不行言传”的玄学,是属于老司机的秘密,其实否则。“追求卓越”是美团的价值观。作为一名技术人员,我们应该如何践行呢?本文总结了十条精进原则,希望能够给大家带来一些启发,更好地指导我们的行动。原则一:Owner意识“Owner意识”主要体现在两个层面:一是认真卖力的态度,二是努力主动的精神。

认真卖力是事情的底线。首先,要对我们交付的效果卖力。项目中每一个设计文档、每一行代码都需要认真完成,要对它的质量卖力。如果设计文档逻辑杂乱,代码没有注释,测试时发现一堆Bug,影响的不仅仅是RD的工程交付质量,还会对协同事情的RD、QA、PM等发生欠好的影响。

久而久之,团队的整体交付质量、事情效率也会逐步下降,甚至会导致团队成员之间发生不信任感。其次,我们要对开发的系统卖力。系统的架构是否需要革新,接口文档是否完善,日志是否完整,数据库是否需要扩容,缓存空间够不够等等,这些都是需要落地的事情。

作为系统Owner,请一定要认真推行。努力主动是“Owner意识”更高一级的要求。RD天天要面临大量的事情,而且许多并不在计划内,这就需要具备一种努力主动的精神。

例如我们天天可能碰面对大量的技术咨询,如果客户提出的问题很长时间得不到回应的话,就会带来欠好的客户体验。许多同学说忙于自己的事情没有时间处置惩罚,有同学以为这件事不是很重要,也有许多同学是看到了,可是不知道怎么回覆,更有甚者,看到了爽性装没瞥见。

这些都是缺乏Owner意识的体现。正确的做法是努力主动地推动问题的解决,如果时间无法排开或者不知道如何解决,可以直接将问题反馈给能解决的同学。

努力主动还可以体现在更多方面。好比许多同学会自发地梳理卖力服务的现状,凭据接口在性能方面袒露的问题提出革新意见并连续推动解决;也有同学在跨团队相同中主动负担起主R的角色,努力发现问题、袒露问题,推动互助团队的进度,保证项目顺利推进。

这些同学无一不是团队的中坚气力。所以,我们在做好自己份内事情的同时,也应该努力主动地投入到“份外”的事情中去。一分耕作一分收获,不要给自己设限,努力成为一个越发优秀的人。原则二:时间看法相信大家都有时间看法,可是真正能执行到位的可能并没有那么多。

互联网是一个快速生长的行业,RD的研发效率是一个公司硬实力的重要体现。项目的定期交付是一项很重要的执行能力,在很大水平上决议着向导和同事对自己靠谱水平的评价。

大家可能会问:难度险些相同的项目,为什么有的同学经常Delay,而有的同学每次都能定时上线?一个很重要的原因,就是这些定时交付的同学往往具备如下两个特质:做事有计划,事情分主次。事情摆设要有计划性。通常,RD在设计评审之后就能预估出准确的开发时间,进而再合理地摆设开发、联调、测试计划。如果是项目卖力人,那么就会涉及协调FE、QA、PM等多个工种的同学配合完成事情。

凡事预则立,不预则废。在计划制定历程中,要尽可能把每一项拆细一点(至少到pd粒度)。事实证明,粒度越细,计划就越精准,实际开发时间与计划之间的误差就会越小。

此外,务须要划定明确的可检查的产出,并在计划中设置一些关键的时间点举行核对。无数血淋淋的事实告诉我们,许多项目延期都是因为在一些关键交付点上双方存在分歧造成的。例如后台RD的接口文档计划在周五提供,FE认为是周五上午,而RD认为是周五下班前提交,无形中会给排期带来了1pd的误差。

所以,我们要做到计划粒度足够细,关键时间点要可检查。事情摆设要分清楚主次。

我们天天要面临许多的事情,要学会分辨这些事情的主次。可以实验使用“艾森豪威尔规则”(四象限规则),把事情根据重要、紧迫水平分成四象限。优先做重要紧迫的事情;重要不紧迫的事情可以暂缓做,可是要连续推进;紧迫不重要的事情可以酌情委托给最合适的人做;不重要不紧迫的事情可以思量不做。许多项目无法定期交付的原因,都是因为执行人分不清主次。

好比在开发中需要使用到ES,一些不熟悉ES的同学可能想系统性地学习一下这方面的知识,就会一头扎进ES的汪洋中。最后才发现,原本一天就能完成的事情被严重拖后。

实际事情中,我们应当制止这种“舍本逐末”的事情方式。在本例中,“系统性地学习ES”是一件重要但不紧迫的事情。要学会分辨出这些滋扰的事情项,保证重要紧迫的事情能够定时交付。

原则三:以终为始“以终为始”(Begin With The End In Mind),是史蒂芬·柯维在《高效能人士的七个习惯》中提到的一个习惯。它是以所有事物都经由两次缔造的原则(第一次为心智上的缔造,第二次为实际的缔造)为基础的。直观的表达就是:先想清楚目的,然后努力实现。在事情中,许多RD往往只是笃志走路,很少抬头看天。

每次季度总结的时候,枚举了许多项目,支付许多努力。可是详细这些项目取得了哪些收益,对业务有哪些提升,却很难说出来。这就说明在事情中并没有遵守“以终为始”这一原则。

此外,许多同学在做需求的历程中,对于目的与收益关注不够,系统上线之后,也没有连续地跟进使用效果。这一点在技术优化项目中体现的尤为显着。例如在一个接口性能优化的项目中,经由RD的努力优化,系统TP99缩短了60%,支持QPS提升了2倍。

可是系统到底需要优化到什么水平呢?是不是缩短60%,提升2倍就能满足需求呢?在优化之前,许多同学经常忘记设置一个预设的目的(TP99小于几多,支持QPS大于几多)。我们必须清楚,优化一定是有原因的,好比预期某节沐日流量会暴增或者某接口超时比例过高,如果不举行优化,系统可能会存在宕机风险。解决特定的问题才是技术优化的最终目的,所以要凭据问题设定目的,再举行优化。

“以终为始”,这一原则还可以作用于我们的学习中。许多同学看过许多技术文章,可是总是感受自己依然一无所知。

很重要的一个原因,就是没有带着目的去学习。在这个信息爆炸的时代,如果只是碎片化地吸收各个民众号推送的文章,效果险些可以忽略不计。在学习之前,我们一定要问自己,这次学习的目的是什么?是想把Redis的持久化原理搞清楚,还是把Redis的主从同步机制弄明确,亦或是想学习整个Redis Cluster的架构体系。如果我们能够带着问题与目的,再举行相关的资料搜集与学习,就会事半功倍。

这种学习模式的效果会比碎片化阅读好许多。原则四:闭环思维你是否遇到过这样的场景:到场了一个设计(或需求)评审,大家兴致勃勃地提了许多合理的意见,等到再次评审的时候,却发现第一次提的许多问题都没有获得革新,许多讨论过的问题需要重新再开始讨论。这种情况就是一种典型的事情不闭环。

之前看过一句话:一小我私家是否靠谱,就看他能否做到凡事有交接,件件有着落,事事有回音。这就是闭环思维的重要性。

它强调的是一种即时反馈闭环,如果别人给我们分配了一个任务,不管完成的效果如何,一定要在划定的时间内给出明确的反馈。例如在跨部门的相同集会中,虽然各方告竣了一致,集会提倡者已经将最终的记载周知大家。可是,到这一步其实并没有完成真正的闭环,在落地执行历程中很可能还存在一些潜在的问题。

例如,集会纪要是否经各方仔细核对并确认过?集会中明确的To Do希望是什么?完成效果有没有Check的机制?如果这些没有做到的话,就会陷入“相同-发现问题-再相同-再发现问题”的恶性循环中。真正的闭环,要求我们对事情中的事情都能够养成良好的思维习惯,相同要有结论,通知要有反馈,To Do要有验收。“闭环思维”还要求能够定期主动举行阶段性的反馈。

刚到场事情时,我接了一个工期为两个月的项目。整个项目需要独自完成,自己天天根据计划,有条不紊地举行开发。或许过了两周之后,Leader询问项目进度,虽然我已经跟他说没问题。然而,Leader告诉我,因为我天天对着电脑也不说话,让他心里很没底。

这时,我才意识到一个很重要的问题,我跟Leader之间存在信息差池称。从那以后,我就时不时得跟他汇报一下进度,哪怕就只有简短的一句话,也可以显着感受,他对我的信心增加了许多。特别是我做Leader之后,对这种闭环反馈的明白,就越发深刻了。从Leader的角度看,其实只是想知道项目是否在正常推进,是否遇到问题需要他协助解决。

原则五:保持敬畏“君子之心,常怀敬畏”,保持敬畏之心能够让我们少犯错误。在事情中存在种种各样的规范,例如代码规范、设计规范、上线规范等等。

我们必须明确,这些规范的制定一定是基于某些客观原因的,它们都是历史上无数Case积累而来的履历。团队里的每一个成员都应该学习并严格遵守,这一点对于新人尤其重要。

当我们进入到一个新的团队,请先暂时忘掉之前的习惯,要尽快学习团队既有的规范,而且让自己与团队保持一致。以编码气势派头为例,许多同学往往习惯于自己之前的代码写作气势派头,在做新公司第一个项目时,也根据自己的习惯举行变量、包的命名等等。效果在代码Review历程中,被提了许多修改意见,不得不返工重写,得不偿失。

如果能够保持敬畏之心,提前相识编码规范,这种问题完全可以制止。类似的问题,还包罗对上线流程的不相识,对回滚操作不熟悉,对SRE线上变换历程不相识等等。除了这些显而易见的规范,另有一些约定俗成的规则。

小我私家建议是:如果有事情拿禁绝,不妨多问问其他同事,不要凭自己的感受做事情。保持敬畏之心并不意味着要“因循守旧”。

在我们充实相识这些规范和约定之后,如果以为存在不妥之处,可以跟全组同学讨论,是否采取新的建议,然后实时去更新迭代。其实,让规范与约定与时俱进,也是另一种形式的敬畏。

原则六:事不外二“事不外二”,是我们团队一贯坚持的原则,它可以解读为两层寄义。一层寄义是“所有的评审与问题讨论,不要凌驾两次”。之所以有这样的要求,是因为我们发现,许多RD都把时间花费在一些无休止的评审与问题讨论中,真正投入到实际开发中的时间反而很少。

在实际事情场景中,我们经常会遇到一些不是很成熟的需求评审。这些需求文档,要么是配景与目的迷糊不清,要么是产物方案形貌不够细化,或者存在歧义。RD与PM被迫重复举行讨论,我曾经遇到过一个需求评审,举行了三次还被打回。同样的问题,在设计评审中也屡见不鲜。

华体会官网

方案虽然需要经由重复的讨论,可是如果迟迟不能告竣一致,就会泯灭许多RD与PM的名贵时间,这就与提升研发效率的理念南辕北辙。因此我们团队划定:所有的评审最多两次。通过这种方式,倒逼利益相关方尽可能地做好需求与方案设计。

评审集会组织前,实验与所有相关人员告竣一致,询问对方的意见,并举行有针对性的讨论,这样能够大大提升评审集会的效率和质量。如果在第一次评审中不通过,那么就只有一次时机举行复审。一旦两次不通过,就需要举行Casestudy。

“事不外二”原则的另一层寄义,是“同样的错误不能犯第二次”。每次故障之后,Casestudy都必须举行深刻的总结复盘,对故障原因举行5Why分析,给出明确可执行的To Do List。每次季度总结会,大家自我反省问题所在,在下个季度必须有所改善,不能再犯类似的错误。孔子云:“不迁怒,不贰过”,在错误中反思与发展,才气让我们成为更优秀的人。

原则七:设计优先“设计优先”这条原则,相对来说越发详细一些。之所以单列一项,是因为架构设计太重要了。Uncle Bob曾说过:“软件架构的目的,是为了让构建与维护系统的所需人力资源最小化。

”架构设计,并不仅仅关系到系统的质量,还关乎团队的效能问题。许多团队也有明文划定,开发周期在3pd以上的项目必须有设计文档,开发周期在5pd以上的项目必须有设计评审。

在详细的执行历程中,由于种种原因,设计往往并不能到达预期的效果。究其原因,有的是因为项目周期紧,来不及设计的足够详细;有的是因为RD主观上认为项目比力简朴,设计草草了事。无数事实证明,忽略了前期设计,往往会导致后续开发周期被大幅拉长,给项目带来了很大的Delay风险。

而且最恐怖的是,不妥的设计会给项目带来庞大的后期维护成本,我们不得不腾出时间,专门举行项目的优化与重构。因此,无论什么时候都要记着“设计优先”这一原则。磨刀不误砍柴工,前期良好的设计,会给项目开发以及后期维护带来极大的收益。

“设计优先”这一原则,要求写别人看得懂的设计。我们相识一个系统最直接的途径就是联合设计文档与代码。

在实际事情中,许多同学的设计文档让大家看得一头雾水,通篇下来,看不出系统整体的设计思路。其实,设计的历程是一种智力上的缔造,我们更希望它能成为小我私家与团体智慧的结晶。

如何才气让我们的设计变得通俗易懂?我小我私家认为,设计应该只管使用比力合理的逻辑,进而把设计中的一些点组织起来。好比可以使用从抽象到详细,由总到分的结构来组织质料。

在设计历程中,要以需求为出发点,通过合理的抽象把问题简化,讲清楚各个模块之间的关系,再详细分述模块的实现细节。做完设计之后,可以发给比力资深的RD或者PM审阅一下,凭据他们的反馈再举行完善。

好的设计,一定是逻辑清晰易懂、细节落地可执行的。原则八:P/PC平衡“P/PC平衡”原则,即产出与产能平衡原则。伊索寓言中讲述了一个《生金蛋的鹅》的故事。

产出好比“金蛋”,产能好比“会下金蛋的鹅”。“重蛋轻鹅”的人,最终可能连产蛋的资产都保不住;“重鹅轻蛋”的人,最终可能会被饿死。

产出与产能必须平衡,才气到达真正的高效能。为了让大家更清晰的相识这一原则,本文举两个例子。从系统的角度看,每一个系统都是通过连续不停地叠加功效,来实现其产出,而系统的产能是通过系统架构的可扩展性、稳定性等一系列特性来表征。

为了到达产出与产能的平衡,需要在不停支持业务需求的历程中,连续举行技术架构层面的优化。如果一味地做业务需求,经由一定的时间,系统会越来越慢,最终影响业务的稳定性;反之,一个没有任何业务产出的系统,最终会消亡。再从RD的角度来看这个问题,RD通过做需求来给公司缔造价值,实现自己的产出。而RD的产能是指技术能力、软素质、身体康健状况,有这些资本后,我们才气举行连续的产出。

在日常事情中,我发现许多RD往往只重视产出。他们也在很努力地做项目,可是每一个项目所使用的方法,还是沿用自己先前一贯的思路。最终,不仅项目做得一般,还会诉苦自己得不到任何发展。

这就是P/PC不平衡的体现。如果能在做项目的历程中,通过学习总结连续提升自己的技术能力和软素质,并将其应用于项目实施交付中,相信一定会取得双赢的效果。“P/PC平衡”原则还适用于许多其他的领域,例如团队、家庭等,我本人也很是推崇这一原则。

希望大家也能将其作为自身的一项基本原则,努力寻找到产出与产能的平衡点。原则九:善于提问“善于提问”,首先要勤于提问。求知欲源于好奇心,是人类的一种本能。

在事情中要养成勤于提问的好习惯,不懂就问,不要因为自己一时懒惰或者碍于情面,就放弃提问的时机。当遇到差别的看法时,也要礼貌地问出来。

波克定理告诉我们,只有在争辩中,才可能降生最好的主意和最好的决议。在设计评审、代码评审这类体现团体智慧的运动中,遇到有问题的地方一定要提出来。

我经常看到,许多同学评审全程一言不发,这就是浪费大家的时间。设计评审的目的,是让大家针对方案提出革新意见并告竣一致,如果全程“打酱油”,那就失去了评审的意义。

我们勉励大家多提问,把自己心田的疑惑表达出来,然后通过交流的方式获得谜底。“善于提问”,还要明白如何提问。为什么同样是到场设计评审,有的同学就能提出很好的问题,而有的同学却提不出任何问题?除了知识储蓄、专业技术、履历等方面的差异外,另有一点很重要:这就是批判性思维。

批判性思维主张通过批判性思考到达理性思维,即对事物本质的认知和掌握。关于如何举行批判性思维,大家可以参考一些经典的图书如《批判性思维》、《学会提问》等。在事情中面临一项决议时,会有种种各样的意见摆在你眼前,所以我们必须要学会使用批判性思维来举行分析,每小我私家的论据是否可靠,论证是否合理,是否有隐含的态度。

同样,在阅读一篇技术博客的时候,也要使用批判性的思维,多问几个为什么,作者得出的结论是否合理?论据是否充实?只有这样,才气不停地获取真正的知识。原则十:空杯心态“满招损,谦受益”,“空杯心态”是最后一项原则。我以为这也是一小我私家能够连续发展的前提。

做技术的人,骨子里通常有股傲气,而且会随着资历、结果的提升而不停增加。初入职场的小白,可能会很是谦虚,可是事情几年之后,专业技术逐步提升,可能还取得了一些小成就,人就会越来越自信。

这时候,如果不能始终保持“空杯心态”,这种自信就会逐步演变为自满。自满的人,往往体现为事情中把别人的建议当成是品评,不接受任何阻挡意见,学习上也缺乏求知的动力,总是拿自己的优点去跟别人的短处做比力。其实每小我私家几多都市有一些自满,恐怖的是不知道甚至不愿认可自满。

保持“空杯心态”这一原则要求我们时刻举行自我检视与反省。在事情中,多去跟差别级此外同学聊一聊,或者做一个360度评估,这有助于我们越发客观地评价自己。

在横向对比中,多向那些优秀的同学看齐,学习他人的优点。许多同学在设计评审或者代码Review历程中,针对别人提出的问题与建议,往往都接纳一种对立的态度。错误地认为别人是在挑刺,是在针对自己。

诚然,在某些方面,我们可能确实比其他人想得深入,可是这不代表在所有方面都能思量周全。对于别人的建议,建议使用“善于提问”原则里提到的批判性思维仔细分析一下,虚心地吸取那些好的建议。事情学习就像“练级打怪”,技术储蓄的越多,就越容易走到最后。

保持空杯心态,可以让我们发现许多以前注意不到的新能力,我们要做的就是努力学习它,将它们转化为自己能力库的一部门。总结以上,是我总结的事情与学习的十条基本原则。其中有的偏重于小我私家做事情的方法,如“Owner意识”、“时间看法”、“以终为始”、”闭环思维”;有的偏重于团队事情尺度规范,如“保持敬畏”、“事不外二”、“设计优先”;有的偏重于团队或小我私家效能提升,如“P/PC平衡”、“善于提问”、“空杯心态”。这些原则是我多年在事情与学习中,不停总结得来的履历。

希望在大家面临选择时,这些原则能够起到一定的资助和指导作用。以原则为中心地事情与生活,让自己与团队变得越发强大。作者先容云鹏,2014年加入美团,先后到场了美团旅店供应链体系、漫衍式调理系统的建设,现在卖力美团旅行客户关系治理系统、基础信息服务的建设事情。


本文关键词:写给,工程师,的,华体会官网,十条,精进,原则,引言,时间

本文来源:华体会-www.hbztw.com