升职记录

Share
升职不写博客,如衣锦夜行

距离上次写blog有大半年了。这段时间里一直在急忙忙的弄升职的事。直到昨天收到通知:升职通过,心里一块大石头落了地。

与其他的同事相比,用了5个Cycle(每个Cycle 半年)升职的我属于不长不短,恰在中游的位置。但是两年半的过程中,我经历了一系列变动:领导A在一年半时跑路;然后等来了领导B。好不容易和B制定了一系列的升职计划,进行到八个月时B又转去做其他领域;纠结继续按计划执行还是观望的时候迎来了新领导C。运气比较好,C还是很认可K的计划并帮助我在最后三个月里尽量完善升职资料,最后顺利的升职了。

下面来总结一些我认为有用,并行之有效的干货。

对项目要有Ownership

Ownership 名词。物主,身分,所有;所有权。

每次和我老板1对1聊天的时候,他总是强调要有项目的Ownership。起初我对这个很不以为意:做项目,有Ownership不是很应该的吗?但是随着参与进各类不同的项目之后,我发现每个人对Ownership的概念是不一样的。

有些人做项目做到一半,遇到一些来自其他组的阻力(blocker)后就原地躺平等别人来推动项目;有些人遇到阻力之后会积极的和其他组开会,达成共识,移除这些阻力。在绝大多数语境下,后者是对项目更有Ownership 的表现。而且要知道,对于升职的相关的项目,除了当事人之外没人会在乎项目进度与交付。所以对项目有Ownership,能更快的交付项目。项目好,你也好。

兼听则明,偏信则暗

我在开始执行升职计划的一年里,通过各种渠道找了三个导师(mentor)。一个是同组(org)的,一个是同大产品组(PA)的,和一个其他产品组的。每半个月会和三个导师分别聊半个小时左右。

有三个导师的好处就是,对于同样的一个问题,你能听到三个不同观点的反馈。并且他们会根据我自己的工作进度,职业规划给出一些很具体的建议。这样在遇到项目管理,项目选择等问题时我会有更多的信息来参考。当然,因为每个组和产品组之间的差异,不同的反馈也各有偏差。比如做应用与做底层之间对于同一个项目会有不同的难度系数。有时太多信息的反而会干扰决策。所以导师的数量和背景就需要个人的把握。

有效的文档

在谷歌,有一条广为人知的新人求生准则就是“多写文档,文档多多益善”。甚至有些走火入魔的同事们遇上个大事小情都要写文档,为了写文档而写文档。然而很多文档本身并没有太大的意义/作用。

有些文档是拿来做记录的,比如重点报告(one pager),可以写的很潦草,注意力放在要讨论的问题本身,不需要太多引用,也不用填充太多的细节;有些文档是拿来做实现参考的,比如设计文档(design doc),要写的很细致,引用证据丰富,并且逻辑上尽量无懈可击;有些文档是拿来协作的,比如会议记录(meeting note)、项目计划(rollout plan),这类捞干货,有清晰的重点就可以。写有效的文档会降低沟通成本,并且不会在“写文档”这件事上浪费太多时间。

以上三点算是对这次升职的一个小结。希望能够帮助其他还在挣扎在4升5的小伙伴们。

Read more

低绩效同事,先别急着下结论

低绩效同事,先别急着下结论

团队里最难处理的,往往不是最差的同事,而是那些卡在board line上,挤挤能出活、但不挤就磨洋工的low performer 同事。 这类 low performer 一出现,很多Manager的第一反应就是:ownership 不行。问题是,这句话太空了,空到几乎没法行动。 我更喜欢用一个简单的框架看这件事:先判断原因,再调整支持,接着设观察期,最后做去留决定。 先判断:到底是哪一类问题 low performance 不等于 low ability。常见情况其实不一样: * 不会做:能力还没到,拆问题、推进、沟通都卡住。 * 不想做:知道怎么做,但投入不够。 * 做错方向:很努力,但目标理解偏了。 * 岗位不匹配:人不差,只是不适合这个角色。 比如: * 一个同事总是晚交,但每次都能把问题讲清楚,可能是任务切太大了。 * 一个同事总返工,

By andy

Vibe coding 之踩坑记

Vibe coding 对于程序员的技能要求反而比之前高了 先讲一个故事。 我这几天突然被隔壁组叫去,帮他们解决一个支付系统的问题。 简单来说,我们的客户分成机构和下属的医疗场所。一个机构下面可能有多个场所,然后机构可以统一管理下属场所的账单,支付等等。这样就需要我们能在我们的支付系统里面建立一个关系树,让父结点能看到子节点的账单,并支付。 问题就出在这个关系树上。因为我们之前用过一个另外的支付系统,所以有一部分老客户是从之前的系统迁移过来的。 这个老系统给每个客户创建了一个独特的id,但是这个id 和我们内部使用的id 并不一致,所以我们需要自己把客户的id 和他们的支付账户连接起来。然而: * 新的支付系统只支持固定的一些属性进行搜索。所以之前做这个项目的工程师A耍了个小聪明,用客户的last-name 属性存储了我们的id * 第一个雷:用户的last-name是可以由用户自行修改的。如果他们修改了,我们的对应关系就乱套了。 * 但是这个id A存错了,应该存储机构的id,A存成了下属场所的

By andy

关于flashblocks

争取整个短文系列,迎合短视频的潮流。 base前段时间整了个活,提出了一个新的概念叫flashblocks。 在有flashblocks之前,每个区块的状态是要么这个区块还不存在,没法拿到区块的任何状态和信息;要么就是这个区块已经存在了,它的状态是不可变的,拿到就是最终区块。base链每2秒产生一个新的区块,即任何的交易需要2秒钟才能确认。 如下图,区块A生成之后,2秒内用户只能看到区块A,直到区块B生成。 flashblocks呢,它允许用户提前获取正在打包的区块的状态。正在打包的区块每200ms更新一次状态,直到10次更新之后,正在打包的区块变成一个完整的区块。 如下图,区块A打包200ms后,用户可以立刻看到区块B的状态0. 再200ms后,可以看到区块B的状态1,直到区块B的状态9,然后区块B稳定,开始生成区块C的状态1。 flashblocks的好处是什么呢?它可以在一个区块完全打包好之前,让用户提前知道自己的交易是否有被打包进当前的区块,加速交易状态的确认。 缺点又有哪些呢? 首先这个确认属于预确认(preconfirmation), 这个预确认还没有状态更新

By andy