在敏捷开发中,产品经理决定了每个迭代的交付内容。通常来说,产品经理会把积压的用户故事按照优先级排序,然后按照优先级和团队的开发速度选出最靠前的用户故事来计划当前迭代的交付内容。
按照优先级开发的好处是纯粹的客户拉动。客户急迫性决定了产品功能的开发顺序。产品能尽快地满足客户需要的功能。团队可以简单地理解积压的用户故事的顺序就是需要交付给客户的时间顺序。
只按优先级可能造成产品长时间原地踏步!
在考虑每个迭代的交付内容的时候,除了优先级这个维度以外,还应该考虑“用户故事旅程” (User Story Journey) 这个维度。用户故事旅程表示的是用户在使用产品的时候需要哪些步骤才能完成产品的价值产出。用户故事旅程可以让产品经理和团队从更“宏观”的角度思考产品迭代的交付给用户造成的影响,让产品在迭代的过程中在整体上更丰满,特别是在和竞争对手的比较中通过提高功能覆盖率提高竞争力。这种由优先级和用户故事旅程来决定产品交付内容的方法叫做“用户故事地图”。
如上图所示,我们以酒店机场出行服务为例用“用户故事地图”列举了组成了该“用户故事旅程”的 4 个史诗故事 (Epic)。史诗故事由许多用户故事组成。在每个史诗故事下按照优先级排列了构建该史诗故事的用户故事。如果只是按照优先级排序来组织用户故事的开发,团队可能在前期迭代里只关注某个史诗故事,在这个例子里可能在头几个迭代一直在做叫醒服务。这就造成了整个产品的原地踏步。避免这种情况出现的做法是在每个迭代按照用户故事旅程兼顾优先级选择要开发的用户故事。这样就能保证团队的每次交付都能够在整体上提升整个产品和服务,避免头重脚轻。
使用用户故事地图规划每个迭代的交付内容
用户故事地图把原来的按照优先级排列扁平化的用户故事列表,变成了由史诗故事组成的用户故事旅途和在每个史诗故事按照优先级排列的用户故事的一个立体地图。用户故事地图把史诗故事和用户故事有机地联系在了一起,自然而然地为整个产品生成了一条路线图。
在制作迭代计划时,产品经理需要既考虑优先级这个纵坐标,又要考虑用户故事旅途这个横坐标,和团队一起选择出用户故事,从而实现产品在迭代中的全面升级。做到每个交付都可以是一个完整的最小可行产品 (MVP)。
在上图中,第一个迭代 (sprint) 可以包含 “闹钟”,“送餐”,“前台退房”和“机场大巴”服务。这样在产品的初期就可以交付给客户实现完整的价值流。如果第二个迭代也按照地图进行,实现了“电话叫醒”,“桌餐”,“信用退房”,“出租车预约”,就实现了对产品的全面升级。这样就可以让客户体会到产品在每次迭代的快速而且全面的进步。
总结
使用“用户故事地图”可以避免仅考虑优先级的扁平故事队列来决定每个迭代交付内容出现的以下问题:
- 产品长时间原地踏步
- 团队缺乏对产品路线图的宏观了解
- 在和竞争对手的对标过程中处于下风
通过增加“用户故事旅程”的维度,团队使用“用户故事地图”可以得到以下收益:
- 可视化地展示了产品路线图
- 团队在规划每个迭代的交付内容时考虑的视角更完整
- 通过每次迭代的整体进步,迅速在和竞争对手的对标中占据有利位置。
更多文章
关注公众号更方便
查找公众号: agileddd 关注我。