深夜的巷子口,老陈的食堂刚刚亮起灯。三年前他可不是这么干活的——那时他学大饭店,每年年底就把一整年的菜单定死,后厨按“备料、切配、下锅、摆盘”一条龙从头走到尾,等最后一道菜端上桌,客人早就换了口味,一桌菜全砸在手里。痛定思痛,老陈换了个活法:菜单改成每周更新一版,先上两三道新菜试水,客人皱眉就改,客人点赞就保留,后厨的节奏也跟着稳了。老陈不懂什么叫“敏捷开发”,但他误打误撞踩中的,正是这套方法论的核心。 敏捷开发并不神秘。它是一套对付“变化”的管理哲学:既然需求像客人的口味一样捉摸不定,那就别指望一口气交付完美成品,而是把项目切成一小段一小段(迭代),每段都交付一个能看的版本,边做边听反馈,边做边调整。这篇文章会带你走进 AI 项目管理里的敏捷世界:从敏捷宣言讲起,看清团队里的三个角色,再拆解冲刺迭代、用户故事、看板实践、瀑布对比、质量保障和风险管控。你会发现,管理一个 AI 项目——从模型训练到数据标注——和经营一家深夜食堂,本质上是一回事。

岗位关联

对 AI 从业者而言,掌握敏捷开发意味着能把不确定的算法探索变成有条理的项目节奏:更准地预估排期、更快地响应需求变化、更稳地保障交付质量,这是从“写代码的人”走向“带项目的人”的必修课。

目录
  1. 可视化演示
  2. 敏捷起源:从“瀑布之痛”到“四项宣言”
  3. 框架角色:餐厅里的铁三角
  4. 冲刺迭代:一周一桌新菜
  5. 用户故事:客人的一张点菜单
  6. 看板实践:出菜口的任务墙
  7. 瀑布对比:大饭店和深夜食堂
  8. 质量保障:不能等上桌才发现咸了
  9. 风险管控:主厨的冰箱清点
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

展示Scrum Sprint迭代循环(计划→开发→评审→回顾)、看板流动管理(WIP限制)及敏捷度量指标(速率/燃尽/缺陷率),动态演示敏捷开发全流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

Scrum框架:Sprint迭代循环 靛蓝为计划阶段 浅蓝为开发阶段 绿色为已完成 Sprint = Plan + Dev + Review + Retro (2-4 weeks) Scrum以固定长度Sprint为迭代单元,每个Sprint交付可工作软件增量

敏捷起源:从“瀑布之痛”到“四项宣言”

老陈以前在大饭店后厨干过,那里的规矩是“一锤子买卖”:菜谱年初定死,从备料到摆盘一条流水线走到底,中间谁也不能改单。结果辛苦忙活大半年,端上桌的菜早不是客人想吃的了。这种“一次性走完”的流程,在软件行业里就是瀑布模型——需求、设计、开发、测试、交付五个阶段串行推进,每个阶段都要等上一个阶段彻底结束才开始。最大的痛点是:需求冻结得早,反馈来得晚,等到验收时才发现全盘跑偏,返工成本高得吓人。

2001 年,17 位软件行业的老手聚在一起,提出了敏捷宣言。他们给出的解药不是更厚的文档、更严格的流程,而是四个价值取舍:个体和互动高于流程和工具;可工作的软件高于详尽的文档;客户合作高于合同谈判;响应变化高于遵循计划。注意,宣言没有否定流程和文档,只是说当两者冲突时,前者优先。就像老陈的食堂,菜单、账本都还在,但客人的实时反馈永远是第一位的。

这套思想孵化出了一系列具体框架:Scrum 负责节奏和角色,看板负责可视化流动,极限编程(XP)强调工程实践。它们共同的特点是“短周期、快反馈、勤调整”。敏捷不是没有纪律,相反,它用更轻的流程约束换来了更频繁的纠偏机会。

框架角色:餐厅里的铁三角

深夜食堂能运转,靠的是三个角色各司其职。老板老陈决定卖什么:他观察客人口味、维护一份“候选菜单”、拍板哪道菜下周上——这是对菜品价值的最终裁决。主厨阿忠不碰菜单,他管节奏:催菜、协调、扫清障碍,保证后厨不崩盘。至于每道菜具体怎么炒、谁来炒,阿忠不插手,由厨师们自己商量着来。

在 Scrum 里,这三个角色有一个标准名称。产品负责人(PO)是唯一的“价值决策者”,他负责维护产品待办列表(Product Backlog),把需求按商业价值排序,回答“做什么、先做什么”。敏捷教练(Scrum Master)不是经理,是流程的守护者:他确保会议按时开、规则被遵守、障碍被移除——就像阿忠在后厨四处灭火,但从不替厨师颠勺。开发团队则是自组织的,他们自己拆任务、认领任务、决定技术方案,回答“怎么做”。

自组织不等于没人管。恰恰相反,成熟的团队需要更强的责任感:任务认领靠自觉、进度透明靠自律、跨职能补位靠默契。老陈的食堂里,切配的师傅偶尔也会去盯一眼蒸锅,这叫“团队整体对交付负责”。一个 AI 项目团队同样如此——算法工程师、数据工程师、产品经理之间没有森严的等级,只有清晰的角色边界的共同目标。

冲刺迭代:一周一桌新菜

老陈现在的经营节奏很有规律:周五闭店后试菜,定下下周菜单(计划会);每天早上开工前,前厅后厨对一遍单子,谁卡住了当场说(站会);周日晚上请几位老客人来试新菜,听反馈(评审会);全部收拾停当,大伙儿围一桌复盘这周哪里手忙脚乱(回顾会)。这一整套循环,就是一次“冲刺”(Sprint)。

冲刺是一个固定时间盒,通常 1 到 4 周,目标是产出“可以端上桌”的交付增量。冲刺计划会从产品待办列表里挑选本迭代要做的用户故事,并拆成具体任务;每日站会严格限时 15 分钟,只同步三件事——昨天做了什么、今天做什么、遇到什么障碍,不展开讨论;评审会向干系人演示可工作的产品,收集反馈;回顾会则聚焦流程改进,找出一个下个迭代要改的点。四场会议形成一个闭环:计划 → 执行 → 反馈 → 改进。

团队能持续稳定地规划冲刺,靠的是一个关键指标——速度(Velocity)。它的计算很简单:

V=∑i=1NPiN\displaystyle V = \frac{\sum_{i=1}^{N} P_i}{N}
速度的意义不在“快慢”,而在“可预测”。有了稳定的速度,老陈才敢向客人承诺“下周这时候新菜一定上”,项目经理才敢向老板承诺“下个迭代这三项功能一定能交付”。
  1. 故事点求和P_i 表示第 i 个冲刺实际完成的故事点总和,故事点是对工作量的相对估算单位,相当于给每道菜标一个“复杂度系数”。
    ∑i=1NPi\sum_{i=1}^{N} P_i
  2. 平均处理把 N 个冲刺的完成量加总后除以 N,得到每个冲刺的平均完成量,这就是团队的速度。
    ∑i=1NPiN\frac{\sum_{i=1}^{N} P_i}{N}
  3. 规划应用速度 V 用于预测下个冲刺能承接多少故事点,它是容量规划的依据,而不是考核团队好坏的标尺。
    V=∑i=1NPiNV = \frac{\sum_{i=1}^{N} P_i}{N}

用户故事:客人的一张点菜单

有客人进店说:“来点热乎的。”老陈若真端上一碗热汤,客人可能皱眉说“我想要的是热粥”。需求说不清,后厨再忙也是白忙。在敏捷里,“用户故事”就是解决这个问题的翻译器。它的标准格式只有一句话:“作为〈某个角色〉,我希望〈做某件事〉,以便〈达成某个价值〉。”三个要素缺一不可:角色回答“谁要”,功能回答“要什么”,价值回答“为什么”。

好故事要符合 INVEST 准则:独立的(Independent)、可协商的(Negotiable)、有价值的(Valuable)、可估算的(Estimable)、小的(Small)、可测试的(Testable)。就像一张合格的点菜单,不能含糊其辞,必须具体到“少盐、不放香菜”这种可验证的程度。估算时,团队用故事点而非小时——故事点衡量相对复杂度,常用斐波那契数列(1、2、3、5、8、13),因为人对复杂度的判断天然是模糊的、非线性的,就像给菜分“家常菜、功夫菜、硬菜”三档比精确到分钟更靠谱。

优先级排序常用 MoSCoW 法:必须有(Must)、应该有(Should)、可以有(Could)、不会有(Won't)。老陈上新菜也会先问:这菜没有会砸招牌吗?有它会加分吗?没有它客人会介意吗?最后还要配上验收标准,AI 团队最常用 Given-When-Then 格式:“给定模型已训练完成,当我提交一份新样本时,那么系统应在 1 秒内返回预测结果。”这让“做完”有了客观证据,而不是凭感觉。

看板实践:出菜口的任务墙

深夜食堂的墙上贴着一排任务卡:备料、切配、下锅、上桌。每张卡代表一份订单。老陈立了条铁规矩:每个厨师手里最多同时捏两张单子,做完一张才能从线上再抽一张。这条规矩让后厨从没乱过——没人闲得发慌,也没人忙得四脚朝天,菜品的等待时间大大缩短。这就是看板方法:把工作流可视化,然后限制在制品(WIP),让工作“拉动式”地流动。

看板的核心有三个:第一,可视化工作流——把流程分成若干列(如待办、分析、开发、测试、完成),所有任务以卡片形式贴在对应列里,谁在做什么一眼可知;第二,限制在制品——每列有 WIP 上限,比如“开发中最多 3 张卡”,堵住的列不再进新卡;第三,拉动式生产——上游只在下游有空位时才补充新任务,而不是一股脑往下推。这套逻辑和食堂后厨一模一样。

为什么限制在制品能加快交付?利特尔法则给出了数学解释。它描述的是排队系统里三个量的关系:

L=λ×W\displaystyle L = \lambda \times W
很多团队把看板当“任务展示板”,只可视化不设限,结果列里堆满卡片,交付速度反而更慢。老陈的规矩告诉我们:看板不是给人看的,是给流程上“刹车”的。
  1. 在制品 L同一时间点“正在做但没做完”的任务数量,像灶台上同时开火的锅数。锅开得越多,看似高效,实则每锅都在排队等翻炒。
    LL
  2. 吞吐率 λ单位时间内完成的任务数,比如每天完成 2 个用户故事,相当于每小时出锅的菜量。
    λ\lambda
  3. 前置时间 W一张卡片从进入看板到完成离开的平均耗时,像客人从点菜到上菜的等待时间。
    WW
  4. 等式关系三者满足乘法关系。若想让W变小,要么降低L(限制在制品),要么提高λ(提升效率),而限制在制品往往比硬催效率更立竿见影。
    L=λ×WL = \lambda \times W

瀑布对比:大饭店和深夜食堂

大饭店接婚宴订单,菜单提前半年定死,流程照本宣科,好处是计划性强、文档齐全、责任清晰——这是瀑布模型。深夜食堂的客人随来随点,菜谱周周更新,边做边改——这是敏捷。两者没有高下之分,只看场合。瀑布模型适合需求明确、变更极少、合规要求高的项目,比如银行核心系统、航天控制软件;而敏捷适合需求不确定、需要快速试错、市场变化快的项目。

AI 项目有个鲜明的特点:大部分时间花在“探索”上——模型效果好不好要训练了才知道,数据够不够要标了才清楚,用户买不买账要上线了才见分晓。这种高度不确定性让瀑布模型举步维艰:你可能花三个月把“需求文档”写到完美,却发现算法在真实数据上根本不 work。敏捷的“小步快跑、每步可验证”正好对症:先做一个能跑的最小版本,让数据和用户说话,再决定下一步往哪走。

选择方法论时可以问三个问题:需求是确定的还是探索的?交付是低频合规还是高频试错?团队是职能竖井还是跨职能小团队?答案偏向前者选瀑布,偏向后者选敏捷。但现实中很少有“纯瀑布”或“纯敏捷”,更多是混合形态——比如整体框架用瀑布做里程碑,每个里程碑内部用敏捷迭代。老陈的食堂也接宴席订单,只不过他会把宴席拆成“前菜、主菜、甜品”三个小迭代来准备。

质量保障:不能等上桌才发现咸了

老陈定过一条死规矩:任何菜出锅前必须试味,不合格直接重做,绝不让客人当小白鼠。这条规矩的成本看似增加了,实际上省下了更大的代价——一盘菜被退回重做,浪费的食材和客人差评的口碑,远比试味那几秒钟昂贵得多。敏捷里的质量保障也是这样:质量不是最后阶段“大检查”查出来的,而是每个迭代里“内建”进去的。

具体到工程实践,三件事最重要。第一是持续集成(CI):代码每天合并到主干、自动构建、自动跑测试,让“集成地狱”消失——就像老陈每天开张前先试一遍所有灶台的火焰,而不是月底才检查煤气管道。第二是自动化测试:单元测试、接口测试、端到端测试组成一张“安全网”,回归测试不用靠人肉记忆——就像后厨有一套标准化的口味检查清单,新手也能照着试味。第三是结对编程:两个人一起写同一段代码,等于“双人四手、两双眼睛”,它本质上是实时的代码评审。

团队还需要一个共同的质量底线——完成的定义(DoD,Definition of Done)。一个用户故事要算“做完”,必须同时满足:代码评审通过、自动化测试通过、文档已更新、产品可部署。DoD 是全组共识,不是某个人说了算。它像后厨的“上岗证”:一道菜从“炒完”到“可以上桌”,中间隔着一整套试味和装盘标准,谁也不能跳过。

风险管控:主厨的冰箱清点

每天晚上打烊前,主厨阿忠都会清点冰箱:牛腩还够明天两桌,青菜只够一桌半,得马上通知老陈调整菜单。这个朴素的动作,在项目管理里就是风险管控——风险不可怕,可怕的是风险没被看见。敏捷最常用的“看见”工具是燃尽图:把剩余工作量画成一条随时间下降的曲线,和理想线对比,偏离了就能立刻预警。前面可视化演示里的那张图,就是一次典型的“第 4 天突增需求”引发的燃尽线反弹。

需求变更是 AI 项目里最频繁的风险。模型效果不达标,突然要加数据;业务方看了 demo,临时要调交互。敏捷处理变更不是“来者不拒”,而是有秩序的变更管理:新需求先记录下来,评估它的故事点和优先级,然后用等价的故事点“交换”掉待办列表里优先级较低的任务,而不是简单塞进当前迭代。这样既尊重变化,又保护了冲刺承诺。就像老陈遇到客人临时加菜,他会说“这道菜要 40 分钟,您看是等,还是换一道同样费时的炖菜?”

风险燃尽图是燃尽图的变体:纵轴换成风险等级(发生概率 × 影响程度),跟踪高风险项是否随迭代推进而下降。进度可视化(看板 + 燃尽图)让所有人都能看到“车在哪、往哪开、油还够不够”。冲刺回顾会则是风险管控的最后一环:把本周踩过的坑、堵过的车写进改进清单,下个迭代必须落实一项。

AI 应用场景

AI 数据标注团队的冲刺看板

阶段:数据准备与标注管理

解决的问题:传统方式下,标注任务像“大水漫灌”——大量原始数据一次性丢给标注团队,结果标注质量和进度都失控。AI 方式用看板管理标注流水线:每条标注任务是一张用户故事卡,标注中、质检中、已完成三列各有 WIP 上限,标注员做完一张才拉取下一张,积压和阻塞一眼可见。

具体案例:某自动驾驶团队用 2 周冲刺管理障碍物识别标注任务。冲刺计划会上按 WSJF 优先级挑选“雨天场景标注”而非“晴天场景标注”,每日站会同步标注与质检进度。中途车企追加了“夜间路灯场景”需求,团队用等价故事点交换掉低优先级的“乡村土路场景”,迭代结束时模型 mAP 提升 5 个百分点。

大模型应用的 Prompt 迭代冲刺

阶段:模型调优与效果验证

解决的问题:Prompt 调优高度依赖试错,传统做法是“调一版——等评审——再调一版”,周期漫长且易迷失方向。用敏捷思路把 prompt 优化拆成 3 天小冲刺:每个业务场景写成用户故事,配验收标准(如“财务问答准确率 ≥ 90%”),每天站会同步实验结果。

具体案例:某智能客服团队要优化大模型的“退款流程”回答质量。冲刺计划会选择 5 个高优先级场景,故事点估算按 prompt 复杂度给 3/5/8 分。评审会上发现“多轮追问”场景效果不达标,团队当场决定下个冲刺追加一个“上下文压缩”故事,而不是把整个迭代推倒重来。通过 6 个冲刺,核心场景通过率从 72% 提升到 91%。

MLOps 持续交付的敏捷节奏

阶段:模型部署与运维

解决的问题:传统 ML 项目“模型训练完才算开始”,部署环节常常炸雷。敏捷和 MLOps 结合后,每个冲刺结束都产出一个“可部署的模型版本”——持续集成流水线自动完成训练、评估、打包,自动化回归测试保证模型效果不倒退,让“交付”从阶段性的里程碑变成持续的节奏。

具体案例:某推荐系统团队把模型更新纳入双周冲刺,每次冲刺结束模型灰度发布。冲刺回顾会上发现“特征数据延迟”是导致效果波动的根因,团队在下个冲刺加了数据监控看板故事。半年后,模型上线事故率下降 60%,用户 CTR 提升 12%。

Python 演示

python55 行
# -*- coding: utf-8 -*-"""敏捷冲刺规划模拟器: 按 WSJF 优先级挑选用户故事进入冲刺"""  class UserStory:    def __init__(self, title, points, value):        self.title = title          # 故事名称        self.points = points        # 故事点 (工作量)        self.value = value          # 商业价值     def wsjf(self):        # 加权最短作业优先: 价值/点数, 越大越优先做        return self.value / float(max(self.points, 1))  class SprintPlanner:    def __init__(self, velocity_history):        self.stories = []                    # 所有待排期故事        self.velocity_history = velocity_history  # 历史冲刺速度     def add_story(self, story):        self.stories.append(story)     def avg_velocity(self):        if not self.velocity_history:            return 0.0        return sum(self.velocity_history) / float(len(self.velocity_history))     def plan_sprint(self):        capacity = self.avg_velocity()        used = 0.0        plan = []        # 按 WSJF 降序挑选, 容量超 20% 则不再加入        for st in sorted(self.stories, key=lambda s: s.wsjf(), reverse=True):            if used + st.points <= capacity * 1.2:                plan.append(st)                used += st.points        return plan, used  def main():    planner = SprintPlanner([34, 40, 38, 42])    planner.add_story(UserStory("数据标注流水线", 5, 20))    planner.add_story(UserStory("训练监控看板", 8, 30))    planner.add_story(UserStory("Prompt 调优工具", 3, 15))    planner.add_story(UserStory("模型灰度发布", 13, 50))    plan, used = planner.plan_sprint()    print("选中故事数:", len(plan))    print("占用故事点:", used)    for st in plan:        print("-", st.title)  if __name__ == "__main__":    main()
目的:模拟一个 AI 团队在冲刺计划会上如何用 WSJF(加权最短作业优先)给用户故事排序,并基于历史速度挑选本迭代要做的故事。
  1. class UserStory:定义用户故事类,包含标题、故事点(工作量)和商业价值三个字段,对应正文里用户故事的三要素。
  2. def wsjf(self):计算加权最短作业优先得分,价值除以点数,得分越高越优先,像老陈判断“哪道菜最值得先上”。
  3. self.velocity_history = velocity_history保存团队历史冲刺速度列表,用于估算当前迭代容量。
  4. def avg_velocity(self):计算历史速度平均值,对应正文中的速度公式 V = ΣP/N。
  5. for st in sorted(self.stories, key=lambda s: s.wsjf(), reverse=True):把所有故事按 WSJF 降序排列,逐个尝试放入冲刺计划。
  6. if used + st.points <= capacity * 1.2:容量校验,允许 20% 的弹性空间,防止硬塞导致迭代承诺落空。
  7. if __name__ == "__main__":可执行入口,运行后输出本迭代最终选中的故事清单。

常见误区

误区每日站会就是给项目经理汇报“我昨天干了啥、今天要干啥”,所以应该把领导也请来旁听,这样领导才能掌握进度。

正解站会不是汇报会,而是团队内部的协作同步会。它的服务对象是团队成员自己——通过每天早上对单,发现谁被卡住了、谁需要帮助、今天怎么配合。领导旁听会让大家不自觉进入“汇报模式”,反而压制了真实问题的暴露。老陈的早会对单,是和厨师们对齐,不是向老板表功。

为何常见:因为很多人把“管理”理解为“向上负责”,误以为同步给领导就等于沟通到位,忽略了站会的真正价值在于团队内部的信息流动。

误区敏捷宣言说“可工作的软件高于详尽的文档”,所以敏捷项目不需要写文档,写了就是违反敏捷。

正解敏捷宣言说的是“高于”,不是“替代”——当两者冲突时,优先保证可工作的软件,但必要的文档(架构简图、接口说明、部署手册)依然要写,只是要“恰到好处”:能支撑协作即可,不追求厚重完整。老陈的食堂也有账本和菜谱,只是他不会花三个月去写一本精装菜单。

为何常见:很多人把敏捷误解为“反文档、反流程”,把宣言里的一句话从完整的价值体系中剥离出来,当成偷懒的挡箭牌。

误区把任务写在便利贴上、贴到白板上的三列里,就是上了看板。看板的全部价值在于“看得见”。

正解看板的精髓不是可视化,而是三件事的组合:可视化工作流、限制在制品、拉动式生产。如果只贴卡片不设 WIP 上限,任务照样堆积,交付照样延迟。看板本质是一套“流量控制系统”,就像老陈给后厨定的“一人最多两单”的规矩,那才是效率的来源。

为何常见:可视化是最容易模仿的部分,而 WIP 限制和拉动机制需要理解背后的排队论逻辑,所以大部分团队学看板只学了皮毛。

误区这个冲刺完成 40 个故事点,下个冲刺要完成 45 个才算进步;团队 A 速度 50 比团队 B 的 30 厉害。

正解速度是容量规划工具,不是绩效考核指标。不同团队的故事点估算基准不同——A 团队觉得 5 点的工作,B 团队可能估 3 点,速度跨团队比较毫无意义。同一团队内部,速度受迭代任务类型影响很大,硬性要求“每周提速”只会逼团队虚报点数,最终破坏数据的可信度。

为何常见:管理者的本能是用数字考核团队,但速度这个数字的定义就是主观的(相对估算),用主观数字做客观考核,必然催生博弈行为。

面试题

Q1. 每日站会的时间盒通常是多少?

单选题 · easy

  • A.五分钟
  • B.十五分钟← 正确答案
  • C.三十分钟
  • D.六十分钟

答案:B。每日站会限时 15 分钟,只同步进展和障碍,不展开讨论。它的目的是快速对齐,像老陈早上对单,简单高效。5 分钟太短不够同步三件事,30 分钟和 60 分钟则会陷入细节讨论,违背站会设计初衷。

Q2. 产品负责人(PO)的核心职责是什么?

单选题 · easy

  • A.指定回归测试方案
  • B.维护产品待办列表← 正确答案
  • C.编写核心算法代码
  • D.监督团队每日考勤

答案:B。PO 是唯一的价值决策者,负责维护产品待办列表并按价值排序。测试方案是质量实践,算法代码是开发团队的工作,考勤更与 PO 无关。就像老陈决定卖什么菜,但他不亲自颠勺也不管打卡。

Q3. 敏捷宣言更看重以下哪一项?

单选题 · easy

  • A.详尽文档放第一位
  • B.流程工具高于个体
  • C.响应变化高于计划← 正确答案
  • D.合同谈判优先客户

答案:C。宣言明确“响应变化高于遵循计划”。它不否定计划,而是强调当变化来临时,应优先调整方向。文档、流程、合同都重要,但优先级上让位于人的互动、可工作的软件、客户合作和响应变化。

Q4. 用户故事标准格式的三要素是什么?

单选题 · mid

  • A.作为-希望-以便← 正确答案
  • B.功能-测试-文档
  • C.时间-成本-范围
  • D.角色-流程-工具

答案:A。用户故事标准句式是“作为某角色,我希望做某事,以便获得某价值”,三要素分别是角色、功能、价值。B 是工程产物,C 是项目管理三角,D 是流程要素,均不是用户故事的描述结构。

Q5. 根据利特尔法则 L = λ × W,要缩短交付前置时间 W,最有效的做法是?

单选题 · mid

  • A.提高在制品数量
  • B.降低吞吐效率
  • C.限制在制品数量← 正确答案
  • D.增大需求批量

答案:C。L = λ × W,即“在制品 = 吞吐率 × 前置时间”。要缩短 W,要么降低 L,要么提高 λ。提高 L 和增大批量都会让 W 变长;降低 λ 是负优化。限制在制品(WIP)是敏捷中最直接有效的杠杆,就像少开几口锅,每道菜反而更快上桌。

Q6. 看板方法中 WIP 限制的主要意义是什么?

单选题 · mid

  • A.约束团队人数规模
  • B.防止任务积压变慢← 正确答案
  • C.限制每日加班时长
  • D.控制测试用例数量

答案:B。WIP 限制通过控制同时进行的任务数,减少多任务切换和排队等待,从而加快流动速度。它不限制人数、加班或测试用例。老陈“一人最多两单”的规矩,就是 WIP 限制,目的正是防止后厨积压。

Q7. Scrum 框架的会议仪式包含以下哪些?

多选题 · mid

  • A.冲刺计划会← 正确答案
  • B.每日站会← 正确答案
  • C.代码评审会
  • D.冲刺回顾会← 正确答案

答案:ABD。Scrum 的四个正式会议是冲刺计划会、每日站会、冲刺评审会和冲刺回顾会。代码评审是工程实践(常与结对编程结合),不属于 Scrum 仪式。四场会议构成计划-执行-反馈-改进的闭环,是冲刺迭代的节奏骨架。

Q8. 团队前三个冲刺分别完成 38、40、42 故事点,下个冲刺最稳妥的容量规划是?

单选题 · hard

  • A.计划 40 故事点← 正确答案
  • B.计划 120 故事点
  • C.计划 100 故事点
  • D.计划 10 故事点

答案:A。速度 = (38+40+42)/3 = 40,用历史平均速度做下个冲刺的容量预算是标准做法。120 是三个冲刺的总和,100 没有依据,10 则严重低估团队能力。速度的意义是“可预测”,40 是最接近团队稳定节奏的估计。

Q9. 以下哪些属于敏捷风险管控的实践?

多选题 · hard

  • A.风险燃尽图← 正确答案
  • B.变更管理规则← 正确答案
  • C.需求冻结计划
  • D.冲刺回顾复盘← 正确答案

答案:ABD。风险燃尽图跟踪风险等级下降,变更管理规则让需求变更进入有序的评估-交换流程,回顾复盘沉淀经验教训,三者都是敏捷风险管控手段。需求冻结是瀑布思维——它抗拒变化,而敏捷的应对之道是拥抱变化同时管控其影响。

Q10. 关于“完成的定义”(DoD),下列说法正确的是?

多选题 · extreme

  • A.由开发团队单方定义
  • B.包含评审与自动化测试← 正确答案
  • C.产品负责人共同确认← 正确答案
  • D.代码写完即算完成

答案:BC。DoD 是团队与产品负责人共同确认的质量共识,通常包含代码评审、自动化测试通过、文档更新、可部署等标准。它不能由开发团队单方定义(缺乏业务视角),更不是“代码写完就算完”。DoD 就像后厨的试味标准——一道菜从“炒完”到“可上桌”,隔着一整套质检动作。