前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >一图看透腾讯大佬们的做事方法论(内含福利)

一图看透腾讯大佬们的做事方法论(内含福利)

作者头像
腾讯大讲堂
发布于 2021-06-25 10:10:18
发布于 2021-06-25 10:10:18
9270
举报

作者:刘光利 腾讯CSIG研发工程师

导语| leader 在安排事情的时候是怎么安排的?为什么这件事给 A 做会觉得比较放心,给B做心里会没底?尝试从大佬们的角度去分析问题,会发现大佬们的一些做事的方法论。 同一件事情,不同的人做,结果不一样,取决于有的人“会做事”、有的人“不会做事”;给 A 做比较放心,因为 A 一直都“会做事” 。

01

闭环思维

会做事的总体思维结构是:做事要有闭环思维, 也就是一件事情必须要做好“事前”、“事中”、“事后”这三个闭环, 很多人“不会做事”,是因为都只关注到 “事中”, 事前大部分都是 leader 安排好了,自己没有思考过为什么要做这件事、目标是啥;至于事后,由于项目紧张,事情做完很快就投入到另一件事情了, 关于这件事后续如何,如果不是出了线上问题,或者 leader 过问,自己很少会去关注。其实大家技术都差不多,但思维上的细微偏差,长此以往可能就会导致截然不同的发展轨迹, 这里围绕“事前-事中-事后”这个闭环思维去展开各个环节中的一些方法论吧。

02

事前分析

为什么要做这件事?”,“痛点是什么?”,这是很多大佬经常问的问题,往往是在你滔滔不绝地介绍方案的时候,大佬们就用这个问题打断了你,既然大佬们经常问,说明背后一定有其深层原因,结合我自身的理解,从技术优化类产品需求类来分析这个思考的必要性,这是码农日常最常见的两类事情。

产品需求类: 很多人说,这个产品都已经思考好了,照着做就是了,哪来那么多为什么呀?的确,在我们这些码农接到需求之前,产品同学内部应该都讨论多轮了,但是我们还是要去理解一下需求背后的深层原因,一方面能够加深对需求的理解、提高业务理解能力, 另一方面也能通过对需求本质的理解,在设计方案的时候思路更清晰,例如技术方案评审的时候被问到为什么这么做,而不是那么做的时候,你能结合需求业务场景和扩展性等作出清晰的解释。

技术优化类: 比如你觉得现在网络框架中需要引入quic ,你要思考的问题就是为什么要引入,是 quic 比较弱网情况下性能比较好?那再问,我们目前的网络库性能表现不好吗?有没有数据支撑说明?另外做完这件事投入是多少?收益是多少?能不能从现有的数据情况推论出做这件事之后的收益?这些问题想清楚之后,规划执行才能有理有据,你的 leader 才可能给你争取资源来做。

2P挖掘法

知道经常被问和理解其必要性之后,我们就来准备怎么才能清晰回答这些问题,要想应对自如,就是提前问自己。方法论是:“2P挖掘法”, 即,至少找出个痛点或者两个论据来支持你做这件事的必要性,这个两个痛点不是拍脑袋或凭感觉,最好要有严格的数据说明

例如现在要对一个百人的项目做组件化重构,痛点是:①编译太慢,影响开发效率;②模块耦合严重,维护成本高。为了进一步说明这个痛点有多痛,你可以用一些数据说明,例如一次编译要 20min,一般开发在开发和解 bug 平均一天编译6次,一天花在编译上的时间就是 2h, 一百人的团队,一天浪费的时间就是200h;如果能组件化后单独编译组件只要2min ,一天就能节约180h的时间。如果每件事情都逼迫自己至少挖出两个以上类似的痛点或论据,后续被问到 why 的时候,一定能应对自如, 因为你早就已经经过了深思熟虑 。

03

事中执行

想清楚为什么做这件事之后,做的时候就能放开顾虑去做了,包括方案设计、落地实施、问题处理等重要的步骤。

“你为什么选择这个方案?”、“你的方案考虑过xxx这种情况吗?”、“业界是怎么做的?为啥不使用xxx开源方案?”,这些都是在一场技术评审会上被问得最多的问题,如果你的回答是支支吾吾、临时拼凑,那么就会给人留下你没有深入研究的印象。解决这个问题的方法是:每次设计方案的时候逼迫自己想出三个备选方案,如果你想出了三个方案,那么前面提到的哪些问题,你一定都提前问过自己了。

3C 方案设计法

3C ,即三个 Choice,主要是逼迫自己去想更多的可能性, 横向对比行业是怎么做的是不是可以拿来用自身业务情况下是不是有更多选择,严格按照这个思维去做方案, 久而久之也会无形中提高自己的深度和广度,有人可能会觉得浪费时间,想快,这也是人的天性,但是我们用这些方法论不就是对抗人性的弱点吗?如果为了快,方案有多潦草,技术评审会上讨论就有多激烈,最终也浪费了大家的时间,最终返工浪费的时间更多,还给大佬留下不好的印象, 所以“3C”还是值得花时间去做的。

落地实施的进度条

方案设计之后,就是怎么推动事情落地了。首先把任务按照依赖关系最小粒度的划分,评估每个模块的工作量,最后评估出总的工作量,然后排上计划,执行的时候就开始了我们的进度条。如果太长,可以划分为 2~3 个里程碑,执行过程随时检测进度,是不是存在风险。需要注意的是,在拆解任务的时候尽量识别出依赖或被依赖的关键节点,尽早安排,实际开发中,工作量评估最常见的盲区就是忽略了跨组联调、对接的时间,这些节点往往也容易成为项目进度风险的关键因素。

借助他人的力量

程序员最容易犯的错误就是习惯自己一个人埋头苦干,希望自己能搞定一切事情,怕打扰他人,但是有些事情需要他人配合才能完成,甚至需要依赖外部团队,怎么推动他人按照自己的计划配合完成事情呢?

这里我觉得和平时做人有些关系(并不是指人品好坏),我觉得会有一篇《大佬们的做人方法论》, 如果是熟人、或有交情的人,推动起来就事半功倍,如果不熟悉,的确不太好推动,可能平时多和兄弟团队多打打招呼、多认识认识会有些好处。如果自己无法驱动时, 可以借助 leader 的力量,leader 出面,对方也会重视起来,别人配合你做事也有名有分。

5W根因分析法

方案执行或上线灰度中会遇到一些问题,需要我们第一时间去分析原因、总结方案。说一个遇到的例子:

Leader:CGI 成功率为啥突然降低了?

下属:请求量太大,服务器负载过大,崩溃了, 正在扩容。

Leader:为啥请求太大?

下属:客户端某个数据上报增大了?

Leader:为啥上报请求增大了?

下属:请求失败落地存储太多,第二次启动时批量上报太多。

Leader:为啥突然请求失败存储增多了?

下属:此前服务器发布,导致部分出现抖动,上报失败了。

这里通过连续发问,找到根本原因,方案是临时扩容,同时客户端对上报请求做了限频,防止一次上报太多导致雪崩效应。如果问到第一个问题就打住,那么采取的方案可能仅仅是扩容,但是根本原因没找到, 迟早还是会出问题。通过连续追问,找到根本原因,这个方法叫做 “5W根因分析法”,又称丰田5问法。最初是由丰田集团创始人丰田佐吉提出的, 这方法论指导丰田成为世界名企。

实践应用中,不一定要问5个问题,有时可能问到第三个就找到了根本原因了,这里需要注意的是,在连续追问的时候可能容易挑起情绪化,认为发问者是在刁难你,容易引发撕逼;问之前也可以强调下,接下来我们要用5W根因分析法找原因了,大家不要情绪化。我相信大家在实际过程中都被 leader 的连环夺命问折磨过, 解决的方法是:提前用连环夺命问先折磨自己,避免同步问题的时候被 leader 连环夺命问折磨。

04

事后总结

很多人,事情做完了,leader 不问,自己也很少去总结。但是辛辛苦苦做完事情,如果不去做一个总结的话,其实是比较亏的。到不一定是为了让 Leader知道了做了这件事取得了什么成果(当然这个也很重要),更重要的是给自己一个总结、帮助自己成长。哪些没做好需要提升,哪些是做的好的,有没有什么亮点、难点、挑战等。

4D总结法

从四个维度对这件事情做个总结:即结果、数据、技术提升、个人成长四个维度

结果:做完这件事,我们取得了什么结果?可能是开发效率提升了,也可能是稳定性提升了,用户 DAU 提升了。 数据:这个是对结果的补充,比如你说经过你的重构,开发效率提升了,提升了多少?这是很容易被挑战的,你在做之前应该就统计过或者调查过开发团队,开发一个版本时间是多少,解决一个 bug 平均耗时是多少,经过优化之后,一个版本迭代缩短了 xx 天。 技术提升:个人技术得到了哪些提升,是不是可以给团队做一个分享,是否可以在一个领域复用。 个人成长:比如在执行力上、事情推动力上、方法论沉淀等软实力上是不是也有收获。

最后一张图总结大佬们一些做事方法论:

大家看完,可能有些共鸣, 其实我们多多少少都可以从大佬们对我们的提问和指导中体会到一些,只是我们自己没有总结而已。以上方法,有些是企业管理界知名的方法论,而且在各行各业中应用, 例如 “5W”;有些是我们业界技术大佬们总结的,例如 “3C”、“4D” 就是我的前 leader 李运华 总结的;也有些是本人结合经验自己总结的例如 “2P”…

你有什么做事的方法论呢?欢迎在文章中留言,分享你的经验或方法论,精选留言中点赞最高的前三名将会拿到鹅厂的牛年公仔哦!

近期热文推荐

腾讯低代码OTeam建设概述

企业微信万亿级日志检索系统

原来腾讯优秀数据分析师是这样的

     你“在看”我吗?

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯大讲堂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
单向数据流-从共享状态管理:flux/redux/vuex漫谈异步数据处理
不管是Vue,还是 React,都需要管理状态(state),比如组件之间都有共享状态的需要。
周陆军
2021/08/07
3.9K0
react项目架构之路初探
越是用来解决具体问题的技术,使用起来越容易,越高效,学习成本越低;越是用来解决宽泛问题的技术,使用起来越难,学习成本越高。
念念不忘
2019/03/29
2.5K0
react项目架构之路初探
各流派 React 状态管理对比和原理实现
在 React 诞生之初,Facebook 宣传这是一个用于前端开发的界面库。在大型应用中,如何处理好 React 组件通信和状态管理就显得非常重要。
尹光耀
2022/03/22
3.1K0
各流派 React 状态管理对比和原理实现
React中的Redux
整个应用的state被存储在一棵object tree中,并且这个object tree只存在于唯一一个store中。
贺贺V5
2018/08/21
4.4K0
React中的Redux
Redux:从action到saga
该文章讲述了如何使用 Redux 和 Redux Saga 管理应用程序的状态和行为。通过使用 Redux,可以轻松地将状态存储在全局变量中,并在组件之间轻松共享数据。Redux Saga 是一种异步处理程序,可以处理异步操作,例如网络请求,从而提高应用程序的性能。
查理大叔
2017/12/24
1.3K0
MobX
也就是说,只要知道哪些东西是状态相关的(源于应用状态),在状态发生变化时,就应该自动完成状态相关的所有事情,自动更新UI,自动缓存数据,自动通知server
ayqy贾杰
2019/06/12
1.2K0
MobX
react全家桶包括哪些_react 自定义组件
对于现在比较流行的三大框架都有属于自己的脚手架(目前这些脚手架都是使用node编写的,并且都是基于webpack的):
全栈程序员站长
2022/11/18
6.1K0
react全家桶包括哪些_react 自定义组件
【Redux】:Redux 指北
Redux 是JavaScript 应用的状态管理容器,提供集中式、可预测的状态管理。
WEBJ2EE
2021/06/15
1.7K0
美团前端react面试题汇总
服务端渲染是数据与模版组成的html,即 HTML = 数据 + 模版。将组件或页面通过服务器生成html字符串,再发送到浏览器,最后将静态标记"混合"为客户端上完全交互的应用程序。页面没使用服务渲染,当请求页面时,返回的body里为空,之后执行js将html结构注入到body里,结合css显示出来;
goClient1992
2022/09/13
5.4K0
浅谈前端状态管理
近两年前端技术的发展如火如荼,大量的前端项目都在使用或转向 Vue 和 React 的阵营,由前端渲染页面的单页应用占比也越来越高,这就代表前端工作的复杂度也在直线上升,前端页面上展示的信息越来越多也越来越复杂。我们知道,任何状态都需要进行管理,那么今天我们来聊聊前端状态管理。
疯狂的技术宅
2019/03/27
1.3K0
浅谈前端状态管理
应用connected-react-router和redux-thunk打通react路由孤立
在我们开发过程中,很多时候,我们需要让组件共享某些数据,虽然可以通过组件传递数据实现数据共享,但是如果组件之间不是父子关系的话,数据传递是非常麻烦的,而且容易让代码的可读性降低,这时候我们就需要一个 state(状态)管理工具。常见的状态管理工具有 redux,mobx,这里选择 redux 进行状态管理。值得注意的是 React 16.3 带来了全新的Context API,我们也可以使用新的 Context API 做状态管理。Redux 是负责组织 state 的工具,但你也要考虑它是否适合你的情况。
Run丘比特
2020/11/19
2.6K0
应用connected-react-router和redux-thunk打通react路由孤立
Clean-State:新的React状态管理姿势
导语 | React从设计之初到最新的v17版本,已经经历了近百次迭代。围绕着单向数据流的设计哲学出现了以Flux思想为主的Redux状态管理和以响应式监听为主的Mobx,一个强调理念上的统一而另一个强调性能体验上的极致。但是通过唯物辩证法我们知道,对立和统一才是所有事物发展的最终形态。于是自React@v16.8.0后推出了Hooks函数,在不改变其心智模型的基础上补齐了对逻辑抽象的短板,借助这一能力我们就可以打开全新的状态管理视野。文章作者:freezeYe,腾讯前端研发工程师。 一、背景 在目前
腾讯云开发者
2021/01/26
1K0
[OHIF-Viewers]医疗数字阅片-医学影像-Module: Panel-自定义面板-中二-Redux&react-redux状态管理详解
英文原版 https://redux.js.org/ 中文 https://www.redux.org.cn/
landv
2020/07/23
3.9K0
[OHIF-Viewers]医疗数字阅片-医学影像-Module: Panel-自定义面板-中二-Redux&react-redux状态管理详解
深入Redux架构
关于redux 之前写了一篇通过一个demo了解Redux,但对于redux的核心方法没有进行深入剖析,在此重新总结学习,完整的代码看这里。(参考了React 技术栈系列教程) 什么情况需要用redu
牧云云
2018/05/02
2.4K0
深入Redux架构
2021高频前端面试题汇总之React篇
合成事件是 react 模拟原生 DOM 事件所有能力的一个事件对象,其优点如下:
zz1998
2021/09/23
2.2K0
React saga_react获取子组件ref
React的作用View层次的前端框架,自然少不了很多中间件(Redux Middleware)做数据处理, 而redux-saga就是其中之一,目前这个中间件在网上的资料还是比较少,估计应用的不是很广泛,但是如果使用得当,将会事半功倍的效果,下面仔细介绍一个这个中间件的具体使用流程和应用场景。
全栈程序员站长
2022/09/27
4.7K0
React saga_react获取子组件ref
Redux 入门到高级教程
Redux 是 JavaScript 状态容器,提供可预测化的状态管理。 (如果你需要一个 WordPress 框架,请查看 Redux Framework。)
老马
2019/05/25
2.9K0
React之redux学习日志(redux/react-redux/redux-saga)
redux官方中文文档:https://www.redux.org.cn/docs/introduction/CoreConcepts.html
全栈程序员站长
2021/04/07
6280
React之redux学习日志(redux/react-redux/redux-saga)
React进阶篇(八)react redux
我们只需要关注 getState() 和 dispatch(action) 即可。
娜姐
2020/09/22
1.5K0
React进阶篇(八)react redux
学习react-redux,看这篇文章就够啦!
在 Redux 中,reducer 函数是用来处理状态(state)的函数。它接收两个参数:当前的状态(state)和被分发的 action,然后根据 action 的类型来更新状态并返回新的状态对象。
程序员王天
2023/10/18
5960
推荐阅读
相关推荐
单向数据流-从共享状态管理:flux/redux/vuex漫谈异步数据处理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档