2021年,我们团队5个人,3个时区,以为敏捷开发就是每天开15分钟站会。结果两个产品并行跑了36个月,某天复盘才意识到——这俩产品根本没见过面。
不是比喻。字面意义上的没见过面:A产品的后端和B产品的前端,代码仓库在同一个GitLab,Slack频道挨着,但两人从未就任何接口对过话。各自照着文档猜,猜对了算运气,猜错了生产环境炸。
早期创业团队的远程协作,本质上是一场"默契幻觉"。你以为大家在协作,其实只是各自把活干完,然后祈祷拼图能对上。
第一个产品:文档驱动型"伪协作"
我们的SaaS工具从0到1阶段,严格执行"异步优先"。Notion写PRD,Figma贴交互,Linear管任务,Loom录演示。看起来很美,直到用户开始投诉核心流程卡死。
排查了两天,发现是认证模块的时区处理逻辑冲突。后端工程师在柏林,按UTC写死;前端在越南,按本地时间渲染。两人在文档里各自"确认过",但文档没规定到底以谁的时钟为准。
产品经理的复盘笔记很克制:「我们省了开会时间,花了十倍时间修bug。」
更隐蔽的损失是决策质量。早期产品每天面临几十个小抉择:这个按钮放左边还是右边?异常状态要不要阻断流程?远程环境下,这些决策被拆解成Slack线程里的@提及,上下文碎成渣。
面对面时,一个皱眉的表情能让讨论回退三步;远程时,同样的疑虑可能变成代码里一个被忽略的TODO注释。
我们统计过,第一个产品的前6个月,"快速修复"类提交占比37%,远高于行业平均的15%。不是代码能力差,是协作摩擦把"想清楚"的成本抬得太高,团队本能地选择"先跑起来再说"。
第二个产品:被迫"物理隔离"的意外对照组
2022年,联合创始人带着两个工程师搬去里斯本"闭关"。名义上是避寒,实际上是另一个产品的生死线——现金流只够撑9个月,必须出MVP。
这三个人每天共用一张桌子。不是敏捷宣言里的"每日站会",是真的站起来就能看见对方屏幕。有问题当场喊,有分歧当场吵,吵完当场改。
8周后MVP上线。对比第一个产品同期的代码提交热力图,里斯本小队的"有效提交"(即最终保留到生产环境的代码)占比是61%,而远程团队是29%。
但讽刺的是,里斯本产品上线后,我们试图把这套"高密度协作"复制回主团队。失败了。
原因很 mundane( mundane 的):远程成员感到被排斥。Slack里里斯本小队的内部梗、未经文档化的决策、突然冒出来的功能,让其他成员从"信息不同步"滑向"动机不同步"。
早期团队的凝聚力,很大程度上依赖"共同受苦"的体感。物理隔离制造了一种特权感,远程成员则从"不同工"变成"不同心"。
第三年:我们怎么发现"两个产品"的
2024年Q1,两个产品终于需要打通。技术负责人拉了一张架构图,会议室沉默了五分钟。
两个产品的用户认证走了完全不同的技术栈:一个用Supabase,一个自研。数据模型对"组织"的定义冲突:一个把organization当租户隔离,一个当业务实体。甚至对"实时"的理解都不同——一个指WebSocket推送,一个指轮询间隔小于5秒。
这些不是技术债,是协作债。三年里,两个团队各自解决了"让自己跑起来"的问题,但从未解决"让对方理解"的问题。
修复成本?两个高级工程师全职6周,相当于把一个产品的MVP周期再烧一遍。
更贵的代价是机会成本。如果早期能识别这种"分布式单干"模式,我们本可以在18个月前就做技术统一,而不是等到架构债务复利滚到无法忽视。
我们试过的解法,以及为什么大多没用
文档标准化:失败。早期产品变化太快,文档永远滞后。我们试过"文档即代码",但维护成本压垮了小团队。
强制同步时段:部分有效。规定每天4小时重叠时间,确实减少了异步等待。但时区差异意味着总有人要牺牲睡眠,三个月后执行变形。
结对编程工具:工具层面的安慰剂。CodeTogether、Live Share让"一起看代码"变容易了,但不敢当面说的质疑,屏幕共享时同样不会说。
唯一持续有效的,是一个反直觉的做法:故意制造"低效"的面对面窗口。
每季度把全员拉到同一个城市,不做产出要求,只解决"那些不会在Slack里问的问题"。2023年的四次聚集中,有三次产生了直接改变产品走向的决策——不是因为讨论质量更高,而是因为远程环境下被过滤掉的"蠢问题",面对面时敢问了。
一个工程师在里斯本聚会时的原话:「视频里我不敢打断你,怕显得我没听懂。现在我可以指着你的屏幕说,这行代码什么意思。」
给同类团队的非建议
我不打算列"远程协作最佳实践"。早期创业的特殊性在于,你付不起最佳实践的成本。
但有一个识别信号值得警惕:当你的团队开始用"对接"而不是"讨论"来描述跨角色协作时,你们已经在分布式单干了。
"对接"意味着接口清晰、边界明确、责任到人——这是成熟组织的美德,也是早期团队的毒药。早期产品没有清晰边界,需要的是持续的重叠、摩擦、甚至浪费,来让隐性知识显性化。
我们最终没有"解决"远程协作问题。第一个产品卖了,第二个产品转型了,团队也散了。但那个架构图上的冲突,成了我评估任何早期团队的体检指标:你们有多少"从未对话过"的代码,正在生产环境里假装协作?
你的团队最近一次"面对面解决了一个本可以异步处理的问题",是什么时候?
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.