研发团队如何使用敏捷
读到这儿,我想你已经跃跃欲试,准备踏上敏捷之路了。
敏捷非常注重节奏,当你有多个任务要交付,团队更需要注重节奏的把握。而身为项目经理,我们的职责是让整个团队通过协作最终交付产品。
敏捷是不断规划、执行、学习和迭代的过程,敏捷项目通常可以分解为一下7步:
第1步:通过战略会议定义你的愿景
每当开始新项目时,第一件要做的事情是定义产品的业务需求,或者说想要达到的愿景。事实上,我们只需要回答一个问题:你为什么想要做这个产品。这是我们心中的蓝图,时时提醒我们不要跑偏。
作为一家产品公司,定义愿景的最佳方法之一是电梯演讲:
- 用于:(哪部分目标客户)
- 需求:(用户的需求)
- 类别:(我的产品是哪种类型)
- 功能:(产品的价值、客户为什么选我们)
- 竞品:(主要的竞争对手有哪些)
- 差异化:(和竞品的差异化描述)
即使我们做的不是软件产品,我们也可以根据项目的目标来调整上述内容。
战略会议的参与角色都有谁?
此时我们要让更多人认同这个项目,所以很多关键的利益相关者自然不能缺席,包括相关主管、经理、主任和产品经理。
战略会议该什么时候召开?
项目开始前我们就该来开战略会,或者至少每年一次的定期会议来保证愿景依然不过时
战略会议要召开多久?
这个就由你主观来决定了,一般来讲,花4-16小时来探讨战略已经足够了。
第2步:绘制产品路线图
当我们开完战略会后,就该轮到产品经理把愿景变成产品路线图。产品路线图能帮助我们纵观全局、理清思路,让我们有宽松的时间来开发每个产品需求。“宽松”并不是说我们可以花数天或是数周的时间来推进每步计划,而是轻量级的去定义产品、理清需求优先级和粗略估算产品每个需求的时间。
项目管理专家Roman Pichler认为:目标导向的产品线路图能够聚焦于目标和产出结果(比如:获客、增加活跃度、满足客户需求)。而产品特性来自于这些目标,所以我们在制定目标时应谨慎,每个目标对应3-5个产品特征。
而每个目标,我们需要包含5个关键信息:时间、名称、目标、产品特征和衡量标准,有了这些,我们就能清楚知道哪些该做、什么时候算做成功了以及我们如何取得了成功。
整个过程都结束了,接下来干啥?
这时候我们可以选择发布新版本、获取用户反馈、规划新功能或者修复bug。持续性的发布、学习、再建,这一系列过程让敏捷在管理方法中异军突起。
比起单纯的靠产品需求清单来执行项目,在敏捷指导下,我们可以通过不断发布新版本来看看客户的反馈。相比花一年时间来开发和发布,然后发现缺失核心功能的传统方法,敏捷能在每次迭代后迅速发现问题,并在下次迭代中及时调整。
如何实施敏捷方法:Scrum和看板
我想此时你已经跃跃欲试想把敏捷带给团队。但还有重要的一步,正如我们前面所说的,敏捷是项目管理的全新理念。为了能更好的执行,有些人研究出了一些敏捷方法。这些方法相似度很高,但从实施的角度来看,两者各有不同:
Scrum
Scrum应该是最广为人知的敏捷方法,与看板并驾齐驱。其受欢迎的原因归功于操作简单、高效以及极高的可复制性。你可以观看这个7分钟视频,学习如何使用Scrum。
我们来看下Scrum的工作原理:
在Scrum中,产品经理和项目团队紧密协作,一起定义目标、梳理产品需求清单。清单中通常会包含产品特性、修复bug、非必要功能需求以及其他要在交付时完成的工作。
有了产品清单,产品经理就会开始确定需求优先级,研发团队通常会在接下来30天左右的迭代中产出“潜在可交付版本”。当研发团队制定了迭代清单后,除了团队成员外,任何人都不能再加入需求。当一轮迭代完成后,全员再次分析需求清单、划分需求优先级,然后进入下一轮迭代。
看板(Kanban)
看板作为敏捷方法的一种,提倡化繁为简,不让研发团队超负荷工作。因此它和Scrum有一定相似,都强调持续性交付,这个视频解释了看板管理项目的原理。
当然看板也会有自己的三原则:
1.工作流可视化
当项目逐渐复杂的时候,看板工具用“白板”帮我们理清所有项目的进度和归属:代办、进行中、已完成,洞悉项目的关联信息,让事情逐步变得简单清晰。
2.WIP原则
WIP类似于Scrum的迭代清单,一旦制定后就不再加入新的需求(研发团队除外),团队需要依靠看板来了解他们在每次迭代具体的任务量。
3.明确规划下一步
为了更好的实施看板,我们需要知道下一个任务是什么。这也就意味着我们需要实时更新产品需求,重新确定需求优先级。
实施敏捷管理最后的建议
恭喜!你现在应该已经学会了敏捷的概念,和如何实施敏捷开发的方法,现在可以再自己的团队内推广了。
但是值得提醒的是,由于敏捷开发中涉及到大量的计划、开发任务管理、时间进度和负责人,你需要使用一个项目管理工具,让整个管理过程更可控。一个项目管理工具可以这样帮助你做好敏捷开发:
1.进度报告:你可以看到还有多人任务等待完成、有多少延期任务
2.沟通:让每个人反馈任务中遇到的问题和进展
3.分配:项目下的任务应该支持分配到具体的负责人