穿上西装的那一刻我就知道完了。镜子里的人像个偷穿大人衣服的码农,袖口长了一截,肩膀那块布料空荡荡地耷拉着。最要命的是这身行头根本盖不住我脸上的东西——不是皱纹,是连续熬夜对接第三方API留下的那种青灰色,眼袋快垂到颧骨了,客户要是仔细看,能从我瞳孔里倒映出服务器日志的滚动条。
上个月我还信誓旦旦跟合伙人说,今年必须转型,不能再蹲在电脑前面当救火队员了。我们接了个本地生活类的小程序单子,预算三十万,对我来说简直是天文数字。我心想,成了,这就是我当老板的起点。于是招了两个人,一个前端一个设计,我亲自带。结果呢?前端连微信小程序的生命周期函数都搞不清楚,页面数据更新永远用setData暴力刷新,我跟他讲了多少次要用this.data.xxx先缓存再操作,他转头就忘。设计更绝,给的PSD图层命名全是“图层1副本(3)”,切出来的图不是尺寸不对就是颜色失真,我半夜一边骂娘一边自己用Python写了个批量重命名脚本,还得手动去调色板吸色。
管理这玩意儿比写爬虫绕过反爬机制难多了。爬虫遇到403,好歹能分析请求头、模拟登录、搞代理IP池,逻辑是死的。人不是。你跟他讲 deadline,他跟你讲家里有事。你跟他讲代码规范,他点头如捣蒜,提交上来的东西还是满屏var。上周客户催进度,我让前端加班改个下拉刷新的交互,他改到晚上十点给我发了张截图,说搞定了。我点开一看,好嘛,用的是scroll-view自己绑的touch事件,根本没调用官方的onPullDownRefresh,列表数据一多直接卡成PPT。我能怎么办?我总不能当着客户的面说“我手下的人太菜”,只能自己打开微信开发者工具,从wxml到js到wxss重写了一遍,搞到凌晨三点。泡面就是那时候泡的,红烧牛肉味,汤喝到最后齁得我嗓子发干。
今天去见客户,对方是个四十多岁的地产公司副总。我特意提前半小时到,把PPT过了三遍,把“商业模式闭环”、“用户留存策略”、“私域流量沉淀”这些词背得滚瓜烂熟。可一坐下,人家根本没问我这些。他指着手机屏幕上我们做的那个小程序首页问:“这个轮播图为什么划到第三张会卡一下?还有,这个‘立即预约’的按钮,颜色能不能再亮一点?我们老板喜欢金色。”我脑子里瞬间闪过的是前端那小子写的swiper组件里image标签没加lazy-load,以及设计给我的色值是#FFD700但实际渲染出来偏暗是因为微信canvas的色域问题。可我张嘴说的却是:“嗯……可能是网络加载问题,我们优化一下。按钮颜色可以调。”说完我就想抽自己——我在干嘛?我像个被产品经理质问的开发工程师,而不是一个该谈预算、谈排期、谈未来合作的“老板”。
回来的路上我把西装外套脱了扔在后座。领带勒得我喘不过气,真的,不是比喻。我突然想起2016年自己一个人干的时候,虽然也累,但至少代码是我写的,bug是我修的,服务器是我部署的。出了问题,我三分钟就能定位到是数据库连接池不够还是CDN缓存没生效。现在呢?我卡在中间,下面的人要我去填技术漏洞,上面的人要我去表演“管理者”的从容。我表演不出来。我指甲缝里还留着昨天调试嵌入式H5页面时沾上的马克笔痕迹,洗都洗不掉。
那碗泡面最后也没吃完,汤凉了,浮着一层白色的油脂。我坐在还没关机的MacBook Pro前面,屏幕光映在冷掉的泡面汤上,扭曲成一团模糊的光斑。算了,明天还是把这西装退了吧。不合身的东西,穿再久也变不合身。有些人生来就是在会议室里谈笑风生的,而我的战场,大概永远都是深夜亮着的这块屏幕,和屏幕上滚动的、诚实的、不会骗人的错误日志。














