本文是敏捷开发产品管理系列的第二篇。(序言及设立迭代目标,产品版本规划,产品用户群规划,新产品研发,预估会议,Product Servant,Product Owner团队,产品线管理)
本文是一篇旧文,原名为《“迭代期内无变更”与敏捷开发产品版本规划》,因符合本系列内容,做相应修改后重新编排发出。
迭代期间无变更?
支持派说:对,如果经常变,我们怎么开发啊。
反对派说:不对,敏捷开发不能上来就确认了需求,要的就是在开发中逐步了解需求,怎么可能不变呢。
只在开发层面,这个问题无解。让我们站在产品版本规划的高度来看这个问题。
基于商业目标的产品版本规划
下个产品版本(或下个迭代)中到底应该有什么功能?最重要的功能?最基础的功能?当前可能实现的功能?已经弄清楚的功能?
这些角度都是基于技术活动而非市场目标来制定的,都有其局限性。
其实,每个产品的版本都是企业的一步棋:在某个时间,推出某些功能,满足某些需求,获取某些客户,打败某些对手,取代某些产品。
若认同了这一点,则早在产品版本规划的时候,就应该确认此版本中应该大致包含哪些功能,而非到迭代计划会议或迭代中才会确认,更不会在迭代中间发生变化。
这样看来,“迭代期间无变更”指的是:“不应该到迭代开发已经开始了还没明确要开发什么功能”(What问题);而不是:“应该在迭代前把需求弄明确,一旦开发了就别改动了”(How问题)。
产品版本规划步骤图
产品立项 ------------------------------------------- 在这个时候大致规划出路线图,走多远,多久,走到哪里
V1.0 --------------------------------------- 在这个时候明确规划处这个版本要做哪些功能(未必到达故事点的粒度)
Sprint1计划会 --------------------------------- 在这个时候达到故事点的粒度,且从技术角度思考可以先做什么后做什么
日常工作 ----------------------------- 细化做成什么样子,随时可以变,但基本不会大量扔掉或换掉什么功能了
Sprint2计划会
……
Sprint Release ----------------------- 在这个时候,无论技术顺序的先后,所有V1.0的功能都做完了
V2.0 --------------------------------------- 根据市场反馈,调整产品路线图
V3.0 --------------------------------------- 继续
从这一点上,敏捷产品版本规划的目标与设定迭代目标的初衷相同:在“事先计划防止返工”与“随机应变防止想太多没用上”之间找到平衡,降低浪费。