# 团队分工的思考


> **先说结论，免得你白看**
>
> 从前分团队，按手艺分：前端、后端、产品设计。
> 现在分团队，按阶段分：
> **原型师** —— 抓住第一个想法，飞快试错
> **构建者** —— 把原型做成能推向市场的产品
> **维护者** —— 软件跑到规模之后守住它
> **扩展者** —— 把跑通的产品放大 10 倍、100 倍
> **收尾人** —— 打磨产品和代码，把毛刺磨掉
> 至于为什么现在才这么分，答案跟 AI 有关，往下看。

<!-- more -->

## 分工的两种分法

从前我们分团队，是分前端、后端、产品设计。这种分法有个隐含前提：软件是一栋房子，有人砌墙、有人装窗户、有人画图纸，各管一摊，把房子盖完，事儿就完了。

把软件比作房子，是程序员的自我安慰。房子盖完就能住人，软件写完只是个开头。你养过狗就知道，把狗买回来不算本事，难的是之后每天遛它、喂它、给它铲屎，还要在它咬坏沙发的时候忍住不把它炖了。软件就是那条狗，买回来那天，是它一生中最安生的时刻。

所以"你负责哪一块"这种分法过时了。更诚实的问法是：你负责它的哪个阶段。

前端、后端、产品设计，是按"你碰什么"来分，这是解剖学的思路：这是心脏科，这是骨科，这是牙科。五种角色是按"你什么时候碰"来分，这是畜牧学的思路：配种、接生、催肥、宰杀。解剖学描述尸体，畜牧学描述生命。我不是说前端后端产品设计不重要，我是说，它们是给死人用的学科，而软件是活的。

为什么偏偏是现在，旧分法开始显得过时？因为写代码这件事，变便宜了。

以前写代码是一门手艺，跟木匠、铁匠、劁猪匠一样，讲究十年磨一剑。你师父教你三年，才敢让你碰生产环境。现在大模型出来了，写代码跟写请假条一样容易，一个实习生带着 AI 能顶以前一个组。手艺的门槛塌了，按手艺切的地盘也就跟着塌了。这不是谁的错，这是时代把桌子掀了。

稀缺的从"写"变成了"判断"：试哪个方向、承诺什么、什么东西不能动、哪里会塌、哪里还不够好。这五种判断，恰好就是那五个角色。

团队实际分化出来的，是五种角色。

## 一件软件的一生

团队的分化不是计划出来的。第一个想法冒头的时候，总有一个人先动手，别人还在开会讨论可行性，他已经把页面戳出来了。等他玩腻了，另一个人把它收拾成人样，能给别人用了。再往后它跑起来了，有人开始守夜。它被越来越多的人用，又有人开始重新想架构。最后，总有一个人在看所有人都不看的地方——那个错位的像素、那句像报错一样的话术、那个点了没反应的按钮。

一件事要活下来，五双手都要伸出来。但五双手不是五个部门，它们是同一个东西的五个阶段。这一点，绝大多数团队要到吵过很多次架、摔过好几次门之后才明白。有的团队永远不明白，也没关系，他们只是换一拨人再吵一次。

## 原型师：先动手的人

原型师抓住第一个想法，飞快地试错。他的产出不是代码，是答案：这个方向对不对，值不值得继续往下走。说得学术一点，他是在用最小的成本，购买"此路不通"这个情报。

原型师最重要的本事是舍得扔。最好的原型就是被扔掉的那个，就像最好的实验就是失败的那个——它完成了任务，它的任务就是被证伪，然后被扔进历史的垃圾堆。一个原型师如果发现自己的代码活过了一个月，他会觉得那不是他的了，是别人捡去养大的。他的文件名通常叫 `data_final_true_final_v3`，因为他从一开始就没打算让它活太久。给死人化妆是不道德的行为，他深谙此道，所以连名字都懒得起好。

原型师讨厌一切让事情变慢的东西：文档、规范、命名评审、写单元测试。别人觉得他邋遢，其实他不是邋遢，他是诚实。就像外科医生不会给手术台上的临时切口绣花，他也不会给注定要死的代码写注释。

原型师最怕的不是失败，是别人把他的原型当成产品。一个本该被扔掉的东西，被认真地维护起来、认真地向用户承诺，那才是真正的灾难。方向错了可以换，被一个错的方向绑架住，就换不了了。这种事每天都在发生，原理很简单：扔东西需要勇气，而团队最缺的就是勇气，他们宁可抱着一个错的方向一起淹死，也不肯承认当初选错了船。

## 构建者：把它变成承诺

构建者把原型做成能推向市场的东西。原型和产品的区别，说穿了只有一个字：承诺。

原型是一堆碰巧能跑的巧合。产品是一个承诺——对用户承诺它能干什么，对团队承诺它今天能交付，对下一任接手的人承诺它看得懂。把"在我机器上能跑"翻译成人话，就是"除了我谁都用不了"；构建者的工作，就是把这句屁话变成一句真话。

构建者干的活全都不起眼：错误处理、空状态、断网的时候、加载失败的时候、用户乱点的时候。你知道断网的时候页面应该显示什么吗？这个问题没人记得是谁定的，但全世界用户都见过它。构建者就是那个在没人注意的地方，替全人类做出决定的人，而且决定得好了，没人感谢他。

构建者和原型师天生紧张。原型师觉得构建者把好东西做丑了，构建者觉得原型师画的图纸没画地基。他们都没错，只是站在同一栋楼的两个阶段上，一个负责上梁，一个负责打地基，偏偏顺序是反的，所以两个人互相觉得对方脑子有病。

## 维护者：让一切都别发生

软件跑起来之后，真正的成本才开始。行业内有个说法：绝大部分代码是维护代码，新功能只是其中一小部分。翻译一下：绝大多数人干了一辈子，干的是给前人擦屁股的活。这话难听，但数据支持。

维护者的成功标准是：今天什么都没发生。系统好好的，用户毫无感觉——而用户毫无感觉，就是他工作了。你想想守夜人：守夜人最大的成功就是一夜无事，但没人给他发奖状，因为没有任何事发生。可要是那夜出了事，责任全是他的。这叫负收益博弈，从数学上讲，当守夜人是全世界最不划算的职业。凌晨两点的告警是他的闹钟，别人留下的烂摊子是他的日常，代码里那些没人能解释的注释、三个已经离职的人做出的决定，都是他在记着。别人离职了，他们的记忆留在他脑子里了，而且没有加班费。

维护者保守，不是因为他古板，是因为他每天面对的是风险。他每改一行代码，都可能成为压垮系统的那根稻草，所以他学会了说"不"。这让他不讨人喜欢。所有想改东西的人都觉得他是绊脚石，只有系统挂了的时候，大家才想起他，然后用他的名义开复盘会。

维护者的报酬是隐形的：系统没有死在他手上。这件事没人会写进感谢信，但它每天都在发生，就像空气。人活着不感谢空气，但空气没了，五分钟人就没了。维护者就是软件行业的空气。

## 扩展者：让数字换个量级

把跑通的产品放大十倍、一百倍。有人说这是努力的问题，我告诉你，这是物种问题。一只鸡放大十倍，还是鸡，顶多算只大公鸡；但一个支撑一百人的系统放大到十万人的时候，它已经不是原来的系统了，它变成了另一种生物，像蝌蚪变青蛙——还得把自己的尾巴吞掉，才能变成一只呱呱叫的东西。

扩展者不看功能，看瓶颈：那条在 100 行数据时好好的 SQL、那台一直没换过的老服务器、那个从来没想过会出现第二个实例的架构。他愿意拆掉正在工作的东西——因为它现在能工作，不代表以后能。这句话反过来说就是：他要在系统还没死的时候，先把它拆了，防止它死。从外面看，这跟破坏没什么两样，所以扩展者通常是团队里最招人恨的。

扩展者和维护者的矛盾是结构性的，没法调和：一个守，一个拆。守的人花几年把系统养稳，拆的人用几个月把它重新拼一遍，拼完守的人又得重新养。你要是问他们俩谁对，我告诉你，都对，但你必须二选一，选完还得准备承担后果。不拆的下场是：产品成功了，然后被自己的成功压死。这种事情一点也不罕见，史书上管这叫盛极而衰，做产品的人管这叫"我们没想到用户这么多"。

## 收尾人：磨掉毛刺

收尾人打磨产品和代码，把毛刺磨掉。他看别人都看不见的地方：页脚那个错别字、加载时那一下闪烁、点了没反应的按钮、退出时那句冷冰冰的"确定吗？"。在座各位都是做产品的，你们肯定知道我说的这些东西。它们说出来谁都觉得是小事，但它们天天在用户眼皮底下晃，就像你鼻梁上沾了一粒饭，你自己看不见，全世界都看见了。

收尾人常被当成吹毛求疵的人——"这就是个细节"。但细节恰恰是用户摸到的产品本身。用户分不清"功能完成"和"产品完成"，他能感觉到的只有一件事：这个东西用起来是顺手，还是别扭。那个"别扭"，就是收尾人在填的坑，而且他填坑的时候，全世界都不知道有坑。

收尾人是最后一个碰作品的人，他继承所有人的偷懒。别人赶工期留下的每一个捷径，最后都是他来擦。他说"还差一点"，不是客套，是真的差那一点，只是那一点只有他一个人看得见。你管他叫强迫症也行，但你要知道，一个产品最后的体面，就是这种人撑起来的。

## AI 不会替掉这五双手

到这里会有人问：代码都是 AI 写的了，这五个角色还在吗？

在，而且比从前更清楚。因为这五个角色从来不是关于写代码，是关于判断。AI 接管的是手，留在人这边的全是判断：

- **原型师**：AI 让试错便宜一百倍，但"试哪个"还是人拍板。坏主意现在可以死得更快，好主意也一样，这很公平。
- **构建者**：实现可以交给 AI，但"承诺什么、标准是什么"得人定。AI 不会替你对用户负责，出事的时候它也不会替你挨骂。
- **维护者**：AI 能写测试、能修 bug，但"什么东西不能动"得人定。系统里最贵的知识不是怎么写，是哪里碰不得。这个知识 AI 学不会，因为它是用离职的人的血换来的。
- **扩展者**：瓶颈不再是写出高效的代码，是看懂系统。AI 看得懂语法，看不懂一家公司的架构史，就像它能读史书，但读不懂你们公司为什么有十七个版本的用户表。
- **收尾人**：AI 的产出是平均的，平均成了地板，审美成了天花板。人人都会用 AI 做出"差不多"的东西，差的那一点，就是收尾人。

所以 AI 放大的不是角色，是产能。判断还是那些判断，只是产能越大，判断错了，死得越快。很多团队 AI 用得风生水起，产品却没什么起色，多半就是这个原因：代码产量翻倍了，那五种判断没跟上。这就像给你配了一台跑车，但方向盘还是原来那个——不，方向盘也没了，原来那套还是手摇的。

## 接力赛死在交接棒

这五个人不是团队的五个岗位，是同一件东西的五种状态。一个人可以在不同时期戴上不同的手套，一个五人团队也可能五个人都是原型师——那样的话，他们会在第五个原型上吵起来，因为每个人都想试自己的方向，而且都觉得别人的方向是错的。

接力赛最容易输在交接棒上。四个人各跑一百米，成绩好坏全看交棒那一下。我见过跑得最快的队伍，因为交棒掉在地上，输给了隔壁跑得最慢的。软件的死法，大多不是死于竞争，是死于换手：

- 原型师放不下手。那个想法是他生的，别人接手像抢他的孩子，他一次次回来改，产品就永远停在原型阶段。这跟父母溺爱孩子是一个道理，孩子都三十了还当婴儿养。
- 构建者交不出手。他的架构从没想过要跑十万用户，等要扩的时候，等于把地基掀了重盖。他当年盖的是平房，现在要盖楼，他坚持说平房挺好。
- 维护者接不住手。系统出事之前，所有人觉得他可有可无；出事之后，所有人又都怪他。两头都不落好，所以他学乖了，学会推诿了——这不能怪他，这是被系统训练出来的。
- 最惨的一种：没人接棒。原型做完就没人管了，demo 永远躺在演示录屏里。这是软件的夭折，而且是溺死——不是没人救，是救生员都在开会，讨论该派谁去救。

## 缺了谁，东西死在哪

缺任何一个角色，东西都会死，只是死法不同：

- **没有原型师**：团队精心打磨一个没人验证过的东西。这让我想起一个笑话：一群人花十年盖了一座非常漂亮的楼，结果盖在流沙上。楼塌的时候，大家不后悔选址，后悔的是楼不够漂亮。没有原型师的团队，就是在流沙上盖楼，而且盖得很用心。
- **没有构建者**：永远在演示。什么都是概念验证，什么都不是产品。这跟一个人永远在相亲、永远不结婚是一个道理——每次都有火花，每次都无疾而终，最后年纪大了，连相亲对象都懒得见了。
- **没有维护者**：死于凌晨两点。所有系统都喜欢在凌晨两点死，仿佛它们生前和深夜有仇。一个人走了，代码的秘密也跟着走了，没人懂那堆复杂的旧东西。这时候大家才发现，原来维护者不是可有可无，是系统唯一的遗嘱执行人，而他还没来得及立遗嘱。
- **没有扩展者**：产品被喜欢，然后死于被喜欢。这是最讽刺的一种死法：一家饭店因为客人太多，把厨房挤塌了。老板临死前还在想：我们到底做错了什么？你们做错了"没想过会来这么多人"这一件事。
- **没有收尾人**：什么都不坏，但什么都不对。用户说不上来哪里不对，只觉得别扭。这种缺最阴险，因为尸检都查不出死因，大家只能怀疑是产品经理的建议。

## 报酬是反的

这五个角色在公司里的名声，和他们的重要性恰好是反的。原型师、扩展者最风光，一个代表创新，一个代表增长，都是能写进 PPT 的。构建者还行。维护者和收尾人最没存在感——他们的优秀是"坏事的缺席"，而缺席是没有新闻的。没有新闻，就没有汇报；没有汇报，就没有绩效；没有绩效，就没有年终奖。这是完整的因果链，环环相扣，缺一不可，可惜这条链子通向的地方，不是他们该待的地方。

组织的激励会把人推向看得见的两头，这符合经济学里的理性人假设：人们只做有回报的事，回报只发给看得见的功劳。于是出现一个奇观：一个正需要维护者的系统，没人愿意去守，因为守得好也看不见；一个正需要收尾人的产品，收尾的人被调去写新功能，因为新功能可以写进汇报里。

大部分软件不是死于竞争，是死于没人愿意做那些看不见的事。这句话值得重复一遍，虽然重复也改变不了什么，但至少能让读到的人心里咯噔一下。咯噔完之后，该看不见的，还是看不见。

## 问自己两个问题

所以别问"哪个角色最重要"。五个角色缺了任何一个，东西都会在某个阶段死掉，只是死法不同。问这种问题的人，就像问"肺和心脏哪个重要"——答案是都重要，但你要是非让我选一个，我选先跑。

要问的，是两个别的问题。

**第一个：这个东西现在在哪双手里？** 团队一半的吵架，吵的都是"现在该干哪一阶段的活"——原型师想再验证一下，构建者想快点交付，维护者想让它别再变了。三个人都对，只是他们不知道自己说的是不同阶段的事。这就像三个人争论一只鸡是煎着吃、炖着吃还是养着下蛋，其实鸡只有一只，三个人都饿着，而且鸡还活着。

**第二个：我自己是哪双手？** 答案藏在你做哪件事时感觉不到时间在走。注意，不是哪件事你做得好——被夸出来的好不算数，老板夸你是为了让你多干活——而是哪件事你没人看也在反复做。原型师会在洗澡时推演新想法，维护者会忍不住去修那个一直存在的别扭，收尾人在关电脑前还会再调那两像素。这两像素没人看得出来，但他调完了，睡得香。

一个人被迫待在手感不对的角色里很多年，会得一种说不出来的病：什么都没错，就是不顺。这不是矫情，是手和活对不上。就像让一个屠夫去绣花，他也能绣，只是绣出来的花都带着杀气，而且他自己也知道，这不叫花，这叫刀工展示。

## 最后

最后说点不合时宜的话。这五双手，也是一个软件从业者自己的职业生涯。年轻时多半像原型师，什么都想试，觉得天高地大；被交付磨成了构建者，学会了写注释和处理边界情况；再往后，要么守一个东西守到退休，要么去更大的舞台上做扩展者；而收尾人的审美是越老越值钱的——年纪越大，越忍不了毛刺。我见过不少四十多岁的人，年轻时也是热血青年，现在最大的乐趣是修好一个别人都不在乎的 bug，或者在深夜把一个按钮往左移两个像素。你问他值不值，他说值。你别笑话他，一个人能在没人看见的地方，心甘情愿地磨掉一根毛刺，这是很大的福气。

这行干久了你会明白：人生是个缓慢受锤的过程。锤完之后，你还认得自己是谁，还知道自己这双手该干什么，还想把手里的活干好，那这一辈子，就算没白锤。要是锤完之后，你连自己喜欢干什么都忘了，那才叫亏。

最好的团队，是五双手都知道自己是谁，也知道现在该谁上。更重要的是，他们都愿意在交接棒的时候，把手松开。松手这件事，比接棒难多了。人这一辈子都在学怎么抓牢，很少有人教我们怎么松开。可你想想，接力棒攥在自己手里不撒手，队伍是跑不远的。

