
在外包项目里,用敏捷把“两家人”拧成“一股绳”
说真的,每次一提到“外包”和“敏捷”这两个词放一起,我脑子里就浮现出两个画面:一边是甲方团队在内部会议室里,对着Jira看板愁眉苦脸,担心外包团队是不是又在“闭门造车”;另一边是乙方的程序员,对着一堆模糊的需求文档,一边改代码一边在心里骂娘。这种“隔阂感”,是IT研发外包项目里最大的敌人,比代码Bug还难缠。
很多人以为敏捷就是每天开个站会,用个Jira或者Trello就完事了。如果是在同一个办公室,这可能够了。但一旦涉及到外包,物理距离、文化差异、KPI导向不同,这些都会成为巨大的摩擦力。想靠简单的仪式(ceremony)来解决?门儿都没有。这篇文章不想跟你扯那些虚头巴脑的理论,我们就聊聊怎么用敏捷的“魂”,去填外包合作的“坑”,让两边的人觉得大家是在一条船上划桨,而不是在两条船上互扔救生圈。
第一道坎:信任的建立,从打破“黑盒”开始
外包合作最怕什么?怕的是“黑盒交付”。甲方说:“我要个苹果。” 乙方说:“好的。” 然后两个月没动静,最后扔过来一个梨,还带虫眼。这时候甲方想杀人,乙方觉得委屈:“你也没说清楚要红富士还是嘎啦果啊!”
敏捷的核心是反馈,但在外包场景下,反馈的链条太长,信号太弱。要解决这个问题,不能只靠文档,得靠“人”的渗透。
把乙方的“自己人”变成真正的自己人
很多甲方喜欢把需求写得巨细无比,然后扔给乙方,觉得这样就“责任明确”了。这是大错特错。在敏捷外包里,我们首先要做的,是打破物理和心理上的墙。
如果预算允许,最有效的一招是“嵌入式”合作。不是让乙方派个接口人每周来开个会,而是让乙方的核心开发、产品经理,甚至UI设计师,轮流到甲方的办公区“驻场”一段时间。哪怕只是两周。这听起来有点老土,但效果惊人。当乙方的后端小哥坐在甲方产品经理旁边,听到他跟业务方打电话时的纠结和妥协,他写出来的代码逻辑会更贴合业务场景。这种“物理共处”产生的化学反应,是视频会议无法替代的。

如果做不到长期驻场,那就搞“交换生”制度。甲方派个懂业务的产品经理,去乙方那边待上几天,参与他们的需求评审和代码设计。这不仅是监督,更是赋能。让甲方的人看到乙方的技术难点,让乙方的人理解甲方的业务痛点。这种“我懂你”(I see you)的感觉,是建立信任的基石。
共享看板,拒绝信息差
不要用两套系统!不要用两套系统!不要用两套系统!重要的事情说三遍。
很多甲方用内部的Project或Excel,乙方用Jira或Tapd。这简直是灾难的温床。两边的信息永远对不齐,状态永远有延迟。必须强制要求双方共用一个任务管理工具。这个看板,就是双方共同的战场。
在这个看板上,每一个任务卡片(Ticket)的描述、验收标准(DoD)、优先级,都必须是双方共同确认的。不要搞什么“需求池”和“开发池”分离,就一个池子,所有人看着同一个泳道。谁在做,谁在测,谁阻塞了,一目了然。这种透明度,会逼着双方把问题摆在桌面上,而不是私下消化或者拖延。
第二道坎:沟通的降噪,从“仪式感”到“实效性”
外包项目里,会议很容易变成“汇报表演”。甲方问:“进度咋样?” 乙方答:“挺好的,在做。” 这种对话毫无意义,纯属浪费时间。敏捷的仪式感,如果用不好,就会变成形式主义。
站会(Daily Stand-up):不是汇报,是同步
外包团队的站会,很容易开成“给老板汇报工作”。因为物理隔离,乙方潜意识里会把甲方的Scrum Master或PO当成“监工”。
我们要明确站会的目的:不是为了证明你在干活,而是为了暴露风险和寻求帮助。

建议调整一下站会的结构,特别是当有时差的时候。如果时差不大,尽量三方(甲方PO、乙方开发、乙方QA)一起开。如果时差大,比如中美团队,那就要讲究策略。乙方团队内部先开,快速同步,然后由乙方的Tech Lead带着问题和方案,参加甲方的同步会。
在站会的提问上,不要只问“What did you do? What will you do?”,要多问一句:“有什么东西阻碍了你吗?(Is there anything blocking you?)” 并且鼓励乙方直接说出阻塞项,比如:“我们需要甲方的API密钥,现在拿不到,整个功能卡住了。” 这种直白的暴露问题,比藏着掖着最后延期要好一万倍。
演示会(Review):别演戏,要真测
每个迭代(Sprint)结束时的演示会,是外包项目里最脆弱的环节。很多时候,乙方为了应付演示,会准备一个“Demo数据”,在特定环境下跑通流程。甲方看着挺顺溜,就签字验收了。结果一上线,全是坑。
演示会必须是“可交付”的,而不是“可演示”的。
怎么做到?
- 用真实环境或类生产环境: 别用乙方的本地开发机演示。数据要尽量接近真实,流程要走全。
- 让甲方的QA上手操作: 甲方的测试人员要参与演示环节,甚至在演示前就拿到测试包进行冒烟测试。演示会上,让甲方的人自己点点点,乙方的人只做引导。这种“用户视角”的检验,能瞬间暴露很多“演示脚本”掩盖的问题。
- 验收标准前置: 在Sprint开始前,每个User Story的“完成定义”(Definition of Done)就要双方签字画押。演示时,一条条对照。没达到?抱歉,这个Story不算完成,不能计入工作量,也不能算作交付。
回顾会(Retrospective):敢于“撕破脸”
回顾会是敏捷的灵魂,但在外包场景下,很容易变成“茶话会”,大家客客气气,不说真话,怕伤了和气。
作为甲方的负责人,你需要带头“自黑”。比如:“我觉得我们上次给的需求文档确实太乱了,导致你们返工,这是我的问题。” 你先暴露自己的不足,乙方才敢说真话:“其实我们觉得你们的验收反馈太慢了,一个Bug要等三天才能确认,严重影响我们的迭代节奏。”
回顾会一定要产出具体的、可执行的改进项(Action Item),并且要指定负责人。比如:“下周二前,甲方PO必须整理出V2.0的需求清单初稿。” “乙方QA必须在24小时内回复甲方的Bug报告。” 这种具体的承诺,比空洞的“加强沟通”有用得多。
第三道坎:需求的博弈,从“传声筒”到“合伙人”
外包项目中,需求变更就像家常便饭。甲方觉得:“我付了钱,改个需求怎么了?” 乙方觉得:“你改来改去,我这代码没法写了。” 这种矛盾的本质,是双方对“价值”和“成本”的认知不一致。
Product Backlog:不是垃圾桶,是路线图
甲方往往容易犯一个错误:把乙方当成一个“需求执行器”。于是,甲方的PO(产品负责人)会把所有听到的需求,不加过滤地扔进Backlog,然后要求乙方按优先级做。
在外包模式下,乙方的PO(或者乙方的Tech Lead)必须拥有“二次翻译”和“技术否决权”。
当甲方提出一个新需求时,乙方不能只说“行”或“不行”。乙方需要问:
- “这个功能背后的业务目标是什么?”
- “有没有更低成本的替代方案?”
- “这个需求的优先级,是否高于我们目前正在做的X功能?”
这种对话,把乙方从一个“搬砖的”变成了“顾问”。好的外包团队,应该能告诉甲方:“你想要个锤子,但其实你只是墙上有个钉子,我们用图钉就能解决,成本低得多。” 这种基于技术能力的建议,是外包团队的核心价值。
故事点(Story Points)与工时(Hours)的博弈
在外包合同里,最敏感的就是钱。而钱通常跟工时挂钩。很多外包合同按人天结算,这会导致一个恶果:乙方没有动力提高效率,因为做得越快,赚得越少(除非能接更多活)。
尽量避免纯粹的“人天”合同,转向基于“功能价值”或“固定迭代”的合同模式。
如果必须按人天算,那么在敏捷管理中,要严格区分“故事点”和“工时”。
- 故事点(Story Points): 用来估算复杂度。这是团队内部的衡量标准,不直接对应钱。它帮助团队理解工作的难度。
- 工时(Hours): 用来做承诺和计划。团队基于故事点,结合自身能力,承诺在Sprint内完成多少个点的工作。
在对外包团队的考核上,不要盯着他们每天几点上下班,也不要盯着他们花了多少小时。只看交付物(Deliverables)。一个Sprint结束了,承诺的User Story完成了多少?质量如何?Bug率多少?这才是核心指标。
这里有一个很实用的工具,叫“燃尽图”(Burndown Chart)。但看燃尽图有讲究。如果燃尽图很平滑,说明团队估算准确,进度可控。如果燃尽图突然掉崖(很多任务突然完成),或者一直高位横盘(任务迟迟做不完),这都是危险信号。甲方PO要盯着这张图,不是为了催进度,而是为了问:“兄弟们,是不是遇到什么难处了?需不需要支援?”
第四道坎:质量的把控,从“事后救火”到“事前预防”
外包项目最容易牺牲的就是质量。因为赶进度,因为要应付演示,因为觉得“反正不是自己的产品”。这种心态必须扭转。
DoD(Definition of Done):不可逾越的红线
什么是“完成”?在很多外包团队眼里,代码写完,本地跑通,就是完成。但在敏捷里,这叫“半成品”。
必须定义严格的DoD,写在墙上(或者Jira流程里)。例如:
- 代码已提交并通过Code Review。
- 单元测试覆盖率 > 80%。
- 自动化测试通过。
- 通过QA的冒烟测试。
- 文档已更新。
只有满足了所有条件,这个卡片才能从“In Progress”移动到“Done”。任何不满足DoD的交付,都是技术债务。 在外包项目中,技术债务积累得特别快,因为下一波人可能根本看不懂上一波人的代码。所以,必须在每一个迭代里,把债还清。
自动化测试与持续集成(CI/CD)
信任不能代替检查。对于外包团队,甲方往往没有精力去逐行Review代码。怎么办?靠机器。
强制要求乙方建立持续集成(CI)环境。每次代码提交,自动触发构建和测试。如果测试失败,构建就挂了。构建挂了,代码就不能合并,也就无法发布。
这就像给代码装了个“安检门”。乙方提交的代码质量如何,不用甲方问,看构建状态就知道。如果乙方的构建经常红,说明他们的代码质量有问题,或者测试覆盖不够。这时候甲方就要介入,要求他们停下来专门解决质量债。
此外,甲方的QA团队要定期对交付物进行探索性测试(Exploratory Testing)。不要只按Test Case执行,要像真实用户那样去“瞎点瞎逛”,往往能发现很多流程逻辑上的漏洞。
第五道坎:文化的融合,从“甲乙方”到“共同体”
最后这一点,最虚,但也最重要。外包项目往往签了厚厚的合同,明确了SLA(服务等级协议),但这并不能解决所有问题。合同是冰冷的,人是热的。
共同的愿景与激励
在项目启动会(Kick-off)上,不要只讲合同条款。要讲这个项目对甲方意味着什么,对乙方意味着什么。如果这是一个新产品,那就一起畅想它上线后的样子;如果是一个重构项目,那就一起吐槽旧系统的痛点。
建立一种“荣辱与共”的氛围。当项目上线成功时,甲方的庆功宴,一定要把乙方的核心骨干请来,给他们敬酒,发红包。当项目遇到危机时,甲方的负责人要站出来说:“这是我们共同的问题,我们一起解决。”
我见过一个很聪明的甲方,他给外包团队设立了一个“特别贡献奖”。只要外包团队在某个迭代中,提出了优化建议并被采纳,或者主动解决了一个历史遗留Bug,就直接发奖金。这个钱不多,但传递了一个信号:我看重的是结果和贡献,而不是你是不是我的正式员工。
知识沉淀与转移
外包项目最怕的是“人走茶凉”。乙方的核心骨干一离职,甲方的系统就成了没人敢动的“黑盒”。
在敏捷管理中,要强调文档的轻量化,但强调知识的显性化。比如,要求乙方在每个迭代中,必须产出“技术设计文档”或“接口文档”,哪怕只是几页纸。更重要的是,要求乙方在代码中写好注释,在交接时进行Code Walkthrough(代码走读)。
甲方也要派人参与学习。不要完全依赖乙方。甲方的IT人员,至少要能看懂核心逻辑,能进行简单的配置修改。这种知识的双向流动,能极大降低外包风险。
写在最后
管理外包研发团队,本质上是在管理一种“弱关系”下的“强协作”。敏捷方法论提供了一套很好的框架,但框架是死的,人是活的。
不要迷信工具,也不要迷信流程。多去乙方的工位看看(哪怕是视频连线),多听听他们的抱怨,多看看他们的代码,多请他们吃顿饭。当你不再把他们当成“外包”,而是当成“不在一个办公室的战友”时,那些协同效率的问题,往往就迎刃而解了。
这世上没有完美的合作模式,只有不断磨合的两个人群。用敏捷的迭代思维来对待合作本身:发现问题,快速调整,持续改进。这大概就是在外包项目里,能走得最远、最稳的路吧。
高管招聘猎头
