该下去写,但不是回去当码农。
你现在不是"要不要写代码"的问题,是"代码质量快要失控、review 抓不住关键问题、线上故障最终扣在你头上"这个局面怎么解。不写,基线立不住;全情投入写,管理节奏确实会崩。我的经验是:技术总监写代码的责任没变,但写的方式和目的必须换——从产出代码变为产出约束和标准。
你担心的两句话——"总监就该写代码,不写就废"和"写代码是逃避管理"——都没说全。"不写就废"指的是脱离一线后技术判断力退化,这点确实存在;但"写代码是逃避管理"也成立,前提是你把写代码当成跟业务开发抢需求的借口。所以关键在于你写什么、怎么写、写多久,而不是写不写。
下面把尺度、原因和配比分点说清楚。
技术总监写代码该写什么
你下去写代码,目的不是把关键模块做完,而是立基线代码。什么是基线代码?就是一套其他人可以直接照着抄、照着扩展的参考实现,它能回答"这个项目怎么写才算对的"。
具体到你12人团队、新人多的场景,我建议挑这三类东西写:
- 外暴露接口的定义和契约测试骨架。不写内部实现,但把接口签名、错误码规范、幂等约束、限流策略在代码里钉死,再配上基础的契约测试。新人对着接口实现,搞乱的概率大幅下降。
- 一个核心业务模块的"第一条链路"。比如创建订单→库存预占→消息发送这一条完整路径,你把数据库访问方式、异常处理风格、日志打点位置全部按你自己认可的标准写好,剩下类似的链路丢给团队照做。
- 可复用的观测性基础设施。比如标准化的健康检查端点、关键指标的埋点封装、自定义的断路器实现。这些东西写一次,全团队接入,review 时你只需要看业务代码,不用每次查底层问题。
这三类东西有个共同点:你写的是规则和框架,不是业务需求。产品和项目经理不会因为你写这些就找你拍需求,因为这些不直接对应功能点。
我自己带团队时犯过一个错:下去写了一个完整的支付回调处理模块,写完发现团队还是乱写其他模块,因为我写的太"完整",别人没法照抄,只能当黑盒用。后来改策略,只写骨架和约束,让业务代码不得不按框架来,就有效多了。
管理节奏怎么保?用"写代码"倒逼授权
你说担心管理节奏散、跨部门扯皮没人顶——这个问题恰恰说明你现在在"人治"而不是"机制治"。你下去写代码之前,先做三件事:
一,拉一个可解释的决策清单。把你平时拍板的事情——排期冲突怎么取舍、需求变更怎么定价(工时评估)——总结成几条原则,写成文档丢群里。比如"非本周 sprint 的需求变更,统一走 backlog 排序,不插队""需要其他部门配合的接口变更,提前2天在XX渠道同步"。有了这些,80%的日常扯皮你可以不露面。
二,指定一个产品侧对接口和排期的代理人,公开授权。直接跟产品负责人说:"接下来两周我上午写代码不接即时通讯,排期争议找XX,他定不了组会统一过。"多数产品经理其实能接受,只是需要一个明确的对口人,怕的是找不到人拍板的时候你失联了。
三,把代码 review 升级成团队机制,而不是你一个人的活儿。新人多,就强制两人 review 才能合入主干。你只 review "关键设计点的决策",不看琐碎的代码风格问题——风格靠 linter 和 formatter 管住。这样你每天花在 review 上的时间可以压缩到1小时以内。
有这几个动作,你下去写代码就不是"管理逃逸",而是正常的时间重新分配。管理没丢,只是从靠你本人变成了靠你设定的规则。
周/日投入怎么分?给一个可执行的配比
我给你一个在12人团队里跑过的参考配比,你可以按实际情况调:
- 每周 5 个工作日,3 个上午留给写代码,每个上午2.5-3小时。下午原则上不写,除非线上紧急问题。下午留给管理、review、沟通。
- 那 2 个不写代码的上午,一个用来对跨部门对齐和排期,一个用来看团队的技术方案和架构建模(不是操作性的工作)。
- 写代码期间完全离线,即时通讯标"忙碌",团队有急事走电话或短信。这个习惯要公开说明并坚持至少两周,团队才会适应。
按这个配比,你每周大概有7.5-9小时的深度写代码时间,产出基线代码应该够用;管理事务也留了足够的窗口。对比整天陷入零散干扰的状态,这个节奏的产出反而高。
有一点要直说:你如果每天写代码超过5小时,管理一定崩,不用试。这个配比的上限就是半天。
避坑清单
再说几个我自己踩过和见别人踩过的坑:
- 别跟团队抢核心业务的代码。你写基线,不是写功能。抢功能会让新人没活干,也会让你变成项目瓶颈。
- 别在写代码过程中做技术选型决策。写基线代码之前,技术选型、架构边界这些必须已经定好,不然你会被淹没在重构里,两头耽误。
- 警惕"写顺手了停不下来"。如果你发现自己连续一周每天写超过5小时,基本就是已经在逃避管理了,这时候要强制切回管理看板。
- 写出的代码必须公开 review,而且你要接受团队对你的代码提意见。如果你写的代码团队不敢改、不敢评,那基线就变成了神主牌,这是更危险的技术债。
最后说句不太好听的:代码质量出幺蛾子,根子往往不在你不写代码,而在架构约束没说清楚、review 没形成制度和新人上手没有参考实现这三个件事上。你现在下去写代码,正好用"基线代码"把这三件事一次补齐,而不是单单去救火。
如果这周只能做一件事,我的建议是:拿一个线上出过故障的核心模块,你亲自把它的骨架、接口契约和观测代码写好,丢给团队作为新的实现模板,同时宣布上面说的管理代理人机制。两周后看故障率和 review 效率的变化,再决定要不要继续加码写代码。