MVP方法:如何借助“敏捷开发”快速实现MVP?
在敏捷实践体系中,迭代交付模式是敏捷开发的核心要素。敏捷开发方法有很多,Scrum提供了迭代管理和持续改进的框架,如图5-15所示。Scrum中的主要角色包括同项目经理类似的Scrum主管角色负责维护过程和任务,产品负责人代表利益所有者,开发团队包括了所有开发人员。
图5-15 Scrum敏捷开发流程
Scrum是一个包括了一系列的实践和预定义角色的过程骨架(是一种流程、计划、模式,用于有效率地开发软件)。Scrum的最大特色是灵活和增量交付,要求团队之间有开放的沟通和协作。首先是由产品经理收集和整理需求,然后和开发团队确定开发列表,接着进入开发冲刺状态,[张乐飞1] 后面就是日常开会、后期改善。在实际应用中,我们通常将其分为以下5个步骤。
步骤1. 创建用户需求列表[张乐飞2]
一个产品的需求可能来自客户、团队或者产品经理的想法,这些需求的描述必须符合:作为_______,我希望_______,以完成______。这样的好处是让整个团队更容易理解需求,达成共识,图5-16所示为一个实例。
图5-16 用户需求列表(产品功能需求)
步骤2. 召开计划会议和制定开发计划(计划版)
Scrum Master负责组织召开计划会议,产品经理和团队一起根据需求的重要性、开发量来确定开发优先级,做工作量预估,制定迭代开发计划(从需求列表中挑选出高优先级 Story(用户需求)[张乐飞3] 作为本次迭代完成的目标,这个目标的时间周期是1~4个星期,然后把这个Story进行细化,形成一个Sprint Backlog(迭代代办事项)[张乐飞4] )。开发团队一旦接受这些开发任务,就应该准时完成,不得修改交付标准。
步骤3. 执行迭代计划(任务板)
首先,你需要确定每次Sprint(开发冲刺)[张乐飞5] 的周期,短的周期可以更频繁的发布产品版本,因此可以从客户那里更迅速地收到反馈,修正错误。这个周期一般为1~4周,当然,你可以根据团队成熟程度或迭代任务确定一个合适的迭代周期,比如2周。这样可以让开发人员更投入地工作。
所谓Sprint,就是在一定时间内全身心投入开发。这个阶段通常用看板来管理需求,每个卡片[张乐飞6] 就是一个开发任务,工作完成后,可以将卡片移到下一个阶段,用看板管理需求,如图5-17所示:你也可以使用专门的软件来管理看板,例如国外的Jira、国内的明道。
图5-17 敏捷开发项目管理看板
在冲刺中,每一天都会举行项目状况会议,被称为“每日站会”。会议在固定地点和每天的同一时间举行,对于迟到者团队常常会制定惩罚措施(例如罚款,做俯卧撑,在脖子上挂橡胶鸡玩具)。不论团队规模大小,会议被限制在15分钟。所有出席者都应站立,每个人都必须发言。会议的目标是讨论当前的任务的状态,一个推荐的汇报形式是:我昨天已经做了什么?我接下来准备做什么?现在遇到什么阻碍和问题?注意在会议中团队成员不必要针对每个问题进行探讨,只是作为一个重要信息的反馈通道,具体问题相关成员在会后私下当面沟通解决,这样更加高效,避免浪费问题无关成员的时间。
步骤4. 产品测试和演示
因为每次的Sprint目标就是交付一个可以用的产品特性,所以测试工作非常重要。有不少方法可以减少测试周期,比如,你可以减少需求数量,或者让开发参与测试。当一个Story完成,也就是Sprint Backlog被完成,也就表示一次Sprint完成,这时,我们要进行演示会议,也称为评审会议。产品负责人和客户都要参加(最好本公司老板也参加),每一个Scrum团队的成员都要向他们演示自己完成的软件产品(这个会议非常重要,一定不能取消)。
步骤5. 回顾会议和下一个Sprint计划
每一个冲刺完成后,都会举行一次冲刺回顾会议。回顾会议也称为总结会议,会议的时间限制在4小时,以轮流发言方式进行,每个人都要发言,哪里做得好、哪里不好都可以提出,总结并讨论改进的地方,放入下一轮Sprint计划。