# 第2章:金手铐 三年前的某个星期二早晨。 门禁刷卡一响,绿灯亮起。玻璃门“嘶——”地一声自动滑开,像是对David叹了口气。 这儿是TechCorp总部,十四层高的楼,裸砖墙混搭着复古木材,设计师恨不得让你觉得这地方根本没设计过。吊灯冷冷垂下来,前台墙上的公司logo低调地泛着柔光——极简风,连字体都得无衬线。 现在是9点47分。David迟到了17分钟。 但没人会在意。工程师楼层十点才算正式“苏醒”。有些同事中午才姗姗来迟。面试时HR信誓旦旦地说:“弹性工时,我们相信你能管好自己。” David搭电梯到七楼。镜子里的自己盯着他看——衬衫没塞进裤子,黑眼圈昭示着昨晚熬夜刷手机(不是加班,纯属浪费生命)。那条牛仔裤,贵到他以前一个月的伙食费都比不上。 他和这里的每个人看起来都差不多。 楼层是开放式工位,格子间早被淘汰,老古董才用那玩意。大家围在长木桌前,屏幕、笔记本、人体工学椅、降噪耳机一个都不能少。角落的厨房区,四种咖啡、无限供应的康普茶、以及一篮子天价燕麦棒。 “早啊,David!”对面DevOps的Sarah挥手。她人挺好。其实这里的每个人都挺好。 他回了个手势,把包丢到桌上。屏幕亮了——三个Slack频道未读消息,两份日历邀请,一个GitHub通知,有人要他帮忙审查PR。 那条PR,就是三天前写的新功能,让用户能自定义仪表盘上的小部件。六个小时,代码干净,测试齐全,文档详细。 可没人会用。他心知肚明。分析团队上季度就算过账——不到2%的用户动过自定义。但产品经理拍板要做,因为竞品有。VP点头同意,因为季度汇报PPT上好看。 David点开PR,例行公事地留了几个评语,批准,合并上线。 地球另一端的服务器悄悄更新了。又一个没人需要的功能,推送给了成千上万不会使用它的人。 手机震动。是Alex,大学室友,现在在城另一头的科技公司混饭吃。 *中午一起吃?* David回:*不行,中午有sprint规划会。* *明天?* *一下午季度规划,周四?* *我周四五去西雅图,下周?* *行,下周。* 两人都清楚,下周也八成见不成。 Slack又叮咚一声,#engineering-all频道里弹出新消息: *“Q3发布圆满成功!OKR完成率97%,领导层非常满意,谢谢大家的努力!🎉”* David已经不记得Q3的OKR具体是啥了。只记得八月加了不少夜班和周末,厨房的披萨盒堆成山。大家还拿“冲刺期”当集体修仙乐,一副不拼命不兄弟的样子。 到底搞出了什么?一个新手引导流程、重做了设置页面、后端优化让页面加载快了200毫秒——技术上挺牛,用户感知基本为零。 手机又响,是老妈。 *你看了我发的买房信息没?你姨认识个靠谱中介。* 他没看。也没想过买房。薪水确实不错——甚至可以说很棒。但买房就意味着扎根,意味着要规划五年十年都得在这城市、这公司、这条人生轨道上。 他回:*最近太忙,周末再看。* 又撒了个谎。这个周末他大概率睡到中午,点外卖,翻翻三个月前买的小说。等周一又要感叹,时间都去哪儿了。 中午要开sprint规划会。 David打开会议议程。“优先Q4产品路线,分配任务点数,讨论技术债。” 所谓技术债,就是赶工时先糊弄,回头再补——但“回头”永远不会来。只会在破烂地基上叠加新功能,最后靠胶带和祈祷支撑着别塌。 可系统还是能跑,还能赚钱。用户抱怨?抱怨归抱怨,没几个真走的。公司股价节节高,大家年终奖照拿。 经理Kevin来了——三十四岁,俩娃,住郊区。 “David,有空聊两句吗?” 两人进了间小会议室。玻璃墙,一块白板,马克笔痕迹早就淡得看不清。Kevin关上门。 “先内部知会你一声,下季度你要升职了,晋升Senior Engineer。” David心里像被搅了一下。 “呃……谢谢。” “实至名归。你代码质量一流,值得信赖,团队也喜欢跟你合作。”Kevin笑着补一句,“还有,工资涨15%,奖金也多。” 15%。David脑子里飞快算了一下。再存18个月,首付就差不多够了。以后买咖啡不用有负罪感了,跟爸妈报喜也不用撒谎了。 但,这也让离开的难度直线上升。 “谢谢Kevin,真的很感激。” “你值得!对了,后面可能要你帮忙面试新人。招点应届生,团队要扩了。” David点点头,心想,自己还认不认得出那些刚毕业的样子——觉得“上线代码”和课堂作业天差地别,觉得“做出影响”不只是让转化率提升零点五个百分点。 Kevin走了,David独自坐在会议室。 透过玻璃墙,他看见满屋子的工程师。八十来号人,绝大多数带着耳机,有的在pair programming,有的三五成群在厨房区笑成一团。 都是好人,聪明又友善。 他们都在帮别人实现梦想。用自己的时光——日复一日、年复一年,换取工资和福利,享受不用自己纠结“做什么”的安稳。 David掏出手机,翻到Notes应用,滑过买菜清单和会议纪要,找到两年前建的文档。 标题:“Ideas”。 三十七条记录。创业点子,产品设想,自己发现却没人解决的问题。有的很傻,有的可能真有戏,但都在吃灰。 最新一条是半年前写的。之后再也没补充。 手机震动,日历提醒。*15分钟后sprint规划会。* David关掉Notes,站起身,整理下衣服。 窗外城市铺展开来,万千楼宇,千万人。此刻有多少像他一样,坐在会议室,脑子里打算盘:到底要多少钱,才能说服自己留下来? 有多少人,赢了? 他回到座位,打开Jira,浏览下个sprint分派的工单。 “实现按钮颜色的A/B测试。” “重构旧认证模块(加油目标)。” “给支付流程加日志,方便排查bug。” 全都必要,全都合理,全都无聊得要命。 David挨个点“接受”。会议邀请弹出来,点“加入”。 十二张脸出现在屏幕上。Kevin开始主持: “大家加油,让这季度更上一层楼。” David没开摄像头。没人注意。他早练就了开会必备技能:说点有用废话——“听起来不错”、“我可以接这个”、“两天应该够”。 1点15分,会议结束。他饿了,但食堂人山人海,只能啃根燕麦棒充饥。 手机又响,还是老妈。 *你爸问中秋回不回家?* 还有四周,他根本没想过。PTO是“无限”的——但没人真敢用,但HR手册上印着呢。 *大概不回,项目要上线,挺忙的。* 其实没有什么大项目。只是公司永远有“上线”。 老妈回了个失落的表情。爸爸什么都不会说,不需要说。David脑中已经放映全家群的台词:*他这么忙,工作这么好,我们当初拼命就是为了他现在这样。可为什么他看起来并不快乐?* David关掉Slack,关掉Jira,打开IDE。 代码在等他。整洁、优雅、有序。问题都有解,bug都能解决。 他沉浸其中六个小时。写代码,测代码,重构,世界安静下来。 这才是他当工程师的初衷。不是开会,不是规划,更不是办公室政治。是那种让万物运转的手艺和美感。 晚上七点,屏幕自动调暗,办公室早已空了一大半。剩下的人,大多是比回家还嫌麻烦的那一批。 David手机响,是Alex。 *今天怎么样?* 他打了三种回复,全删了。最后只发:*老样子。* *能喝一杯吗?* David看着屏幕,还有个测试没写,还有个边界情况没补。等搞完,代码上线,明天也许有人用,也许没人用,反正又要开始下一个工单。 *改天吧,还有事要弄。* *没事,下周再约。* 下周。 David保存,提交,推送。CI流水线开始跑。自动测试检查着有没有炸掉。 等着的间隙,他又打开Notes,翻到“Ideas”。 三十七条。另一个人生的幽灵。 他停在“+”号上,手指悬着。 没意义。他不会真去做这些想法。他不会辞职,不会冒险,不会让爸妈失望,不会成为失败创业者的“反面教材”。 他会留下来,接受晋升,享受加薪,面试新人,然后信誓旦旦地说:“这是个好公司。” 的确是家好公司。各大科技榜单都这么说。薪资福利好,同事聪明,问题也有趣。 只是,那些问题都不是他自己的。 David关掉Notes。CI跑完了,绿勾勾一片,亲切又温暖。 他上线代码,合上电脑,关掉显示器。 办公室只剩下出口指示灯,还有窗外城市的微光。 David搭电梯下楼,刷卡出门,走进十月的夜色。 空气微凉,天空被晚霞染成橙灰色,夜幕还未完全降临。 他站在人行道上,身边同事们正往停车场、地铁站、对街的酒吧散去,准备“下班解压”模式。 David没动。 他想起了晋升、薪水、福利和年终奖——像定时器一样,每次发放都提醒你“再坚持一阵吧”。金手铐,越戴越紧。 他想起Notes,三十七个想法,没有完美的,但都是自己的。 脑海里突然冒出多年以前在高中图书馆听过的一句话,Jobs的经典语录:“别让别人的声音淹没你内心的声音。要有勇气追随自己的内心和直觉,它们其实早已知道你真正想成为什么样的人。” 可这里的噪音太大了:薪水、头衔、安全感,妈妈跟亲戚炫耀的自豪,爸爸终于松口气的满足,Kevin真心实意的笑容…… 他还有自己的声音吗?还是早就用高薪和补牙保险把它卖掉了? 一阵冷风吹过,David拉紧外套,掏出手机打了车。 四分钟后,车到,把他送回了现在能负担得起的高档小区。开门,丢包,下单外卖——做饭的力气都没了。 等饭时,他又打开电脑。 Notes还在,三十七个想法依然静静待着。 他没加新条目。 但也没删。 至少,现在还没。 --- *第2章 完*