上班,有时候就该啥也不干

摘自 sean goedecke 博客 《啥也不干》

很多程序员,真该少干点活儿。我指的不光是少写两行代码、少提交几个改动,而是字面意义上的——每天少干几个小时。就算到了该干活的时候,也得把节奏放慢。我习惯让自己的“占用率”默认停在八成:除非手头有火烧眉毛的项目,否则每天至少有两成时间,我是完全不碰电脑的。

真正值钱的活儿,往往不靠拼命

为什么?因为在一家科技公司里,决定你绩效的,往往是一些“非常规事件”。回头想想,我做过最有冲击力的那些改动,很多其实简单到不可思议。搞软件开发,从来就不是拼谁更努力,关键是在对的时间点,解决对的问题。

在有点规模的工程师团队里,总有一些芝麻大的技术活儿,你只要干了,就能给公司带来几千万甚至上亿的回报。说三种最常见的情况:

第一,公司正在争取一笔大单子,这时候你带着一个功能或者一个 bug 修复半路杀出来,很可能直接促成签约。功能甚至不需要多完美,有时候让对方看见你们反应够快、愿意马上动手改,这本身就够了。

第二,提早预防或者及时摁住一次线上事故——很多时候你只需要知道该关哪个功能开关——就能省下一大笔钱。不止是事故那几分钟丢掉的收入,还有那些本来可能因此流失的客户,或者打死也不肯再签的待定合同。

第三,公司想上线一个备受瞩目的功能,成败往往就卡在一些不起眼却又没人懂的破事上(比如,得能在用户设置里飞快加个新字段,或者去搞那个好几年没人碰、一坨屎山的企业数据导出功能)。你对系统熟不熟,就能决定这种改动是花几个小时,还是拖上整整一周。

这些例子有个共同点:全都跟时机绑定。你没法早上坐到工位,才临时拍脑袋说“我今天要去促成一个重大交易”“我去压个事故”“我去给重点功能提提速”。难道纯粹是“来得早不如来得巧”?不完全是。更重要的是,你不能是个本来就忙得脚不沾地的人。

你得“松”下来

如果你永远把自己用到 100%,埋头干那些优先级排不上号的活儿——比如说,不停从待办列表里薅工单,干掉,再薅下一个——那你就会从两个方向上,完美错过那些真正值钱的活儿。

第一,你会忙到根本没眼力劲儿发现机会。你不会跟做其他事的同事闲聊,不看团队周报,也不关心正在发生的故障。这样一来,参与高影响力工作的最佳途径——主动拿自己的本事去帮忙——就跟你没啥关系了。

第二,如果你整天看上去都忙得冒烟,你老板也就不好意思再帮你揽活了。而这就是参与这类工作的第二条好路子:让你老板或产品经理说,“哦,Sean 这会儿有劲儿,我叫他上”。这条路为什么更好?因为老板和产品经理对啥活儿含金量高,通常比你清楚得多。很多会,你压根儿就没参加。

啥也不干,不是罪

如果你应该把时间留给那些高含金量的活儿,而不是埋头刷工单,那你每分钟到底该干嘛?难道真就啥也不干?对啊!

啥也不干,其实是好事。搞软件工程是个有压力的活儿,但这种压力通常不是均匀的:它往往来自偶发的线上事故、急得上墙的紧急需求,或者(最近这两年)大裁员。假如你在工作中那些相对太平的阶段,也绷得跟救火一样紧,那等真正高压的事儿砸过来,你早就又累又麻,根本扛不住。

就算在压力山大的时候,啥也不干也还是好事。我给刚接手 on-call 的工程师一个建议:别着急忙慌的。接起电话、张嘴说话之前,先喘两口气,整体上试着“用慢镜头思考”。大多数线上事故自己就会消停。事故处理期间,那些火急火燎、觉得“试试这个说不定能好”的改动,十有八九只会让事情更糟。有个通用法则:只要你做到不慌,你的事故响应水平就已经超过绝大多数工程师了。

“啥也不干”本身就是一个让事情发生的空间。让你的脑子歇一歇,你反而更可能冒出些新点子。当有人甩给你一个重要任务,你能把全部注意力投进去,而不是跟前前后后三件后台跑着的事来回拉扯。当你不那么忙的时候,才有时间东看看西看看,吸收点新信息。

有意识地“不去碰”某些事

很多工程师看到有活儿摆在那儿,却不去做,心里就会七上八下。我也是这德行,这是一种很多软件工程师共享的心理癖好,因为(在一定限度内)有这种癖好,你才适合干这行。所以,为了能匀出时间“啥也不干”,有时候你得硬逼着自己别往上凑。

举个例子,我觉得工程师一般来说应该躲着点“胶水工作”。大多数胶水工作——比如确保大家互相通气、给不是你主导的项目更新文档、主动跳出来说要处理技术债——反映的其实是组织没真正重视这些事。要是真重视,哪还用得着你主动往上贴?这里面就两种情况:要么这事儿放任不管也没啥大事,要么这就是个大坑。如果没啥大事,那你就不该跳上去接着,纯属浪费自己时间,还会让老板觉得你烦。如果这是个天大的错误,那你更不能干。因为你在拿自己的职业生涯和心理健康当护垫,让公司不用为自己犯的错付出代价。

这对你来说是笔血亏的买卖,给后辈同事树了坏榜样,还开了个坏头——等你哪天毫无意外地 burnout 之后,马上又会有下一个人被推进同一个坑里。如果后果真的很严重,那就让它发生好了,这样组织才能感到疼,然后改它的规矩。

我还觉得,太热心肠会让你在那些想白嫖你劳动的人面前变得很脆弱。科技公司里,到处是想从工程师身上榨取无偿劳动的人。这跟你通过正常渠道接的活儿不一样,后者的回报是晋升、奖金(还有你正常的工资)。我说的,是那些通过私下渠道摸过来的活儿——对方没有能力,也没那个意愿,保证这些工作能正式记在你名下。比如,其他部门的产品经理给你发消息:“你查数据太牛了,能帮我拉一下关于 X 的统计吗?”或者另一个团队的工程师找你“结对编程”,到最后变成代码全是你写的,人家安安静静用自己的名字把改动交了上去。这类活儿,适量帮点没什么,能拉一把是一把。但你必须得会“施加反向压力”——要么直接说“不”,要么就故意把回复拖上几个小时甚至几天。

还有个很值得避开的坑:别在那些大概率会不了了之的事情上砸太多心血。比如说,你正跟着一个边做边改主意的产品设计师干活。早上九点,他说页面头部要长这样;十点,他又来微调;十一点,再改……你千万别傻到每个小时都扑上去把整个页面重写一遍。相反,你应该啥也不干(比如下楼溜达一圈),然后下午照着最新一版设计,一次性改完。另一种常见情况是:“一个没啥政治能量的经理,突然蹦出个宏大想法”。通常,你大可以熬时间,熬到这个项目理所当然地流产。

总结

很多软件工程的建议和工具,都是围绕怎么放大你“努力”的能力来设计的:帮你同时干更多的事,做更大规模的项目,或者单纯敲出更多代码。但搞软件工程能不能成事,跟这些都没太大关系。关键在于在正确的时间做正确的事,而这恰恰要求你在日常工作中,刻意收住一部分力。

就我的经验来看,只出八分力,照样能当“高绩效工程师”。实际上,这样更容易。因为你不大会因为压力犯低级错误,而且你随时都能腾出手,跳上那种能带来超额回报的高含金量任务。

这不代表你就得永远不拼命。我大概一年会有两三次,把自己推到极致:长时间、极高强度地专注,从睁眼到闭眼脑子里都是那一个问题。但我把这种模式,只留给回报真的极高的时刻。剩下的时间,我基本都过得比较从容。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容