提前做规划这个做法太有诱惑力了,以至于很多人把计划放在第一位,把实际情况和行动方案抛诸脑后,他们心想每件事情都可以预先规划好,这是本末倒置。永远不要忘记:地图不是真实的地貌。
不确定性圆锥(跟PMP里的渐进明细是一个概念。),将导致预估与实际可能存在4倍的差异。Scrum的关键在于,要在项目执行过程中及时加以调整和改进,而不是刻板地遵循计划。你先详细地规划出能够创造新价值的部分,至于项目中的其他部分,计划粗略一些也无妨。
我们先把任务列出来,然后确定它们的优先顺序。这样有助于找出那些真正重要的工作。
6.1 规模的确重要,但是相对规模
列出要做的事情并且排列好优先顺序后,接下来就是确定这个项目需要花费多少精力,时间和资金了。但是人们不擅长评估事情,但是还好我们擅长比较大小。
6.1.1 狗点 (Dog Points)
可以通过Dog Points来评估任务的大小或重要性。一般我们都使用1,3,5,8,13这几个数字。
当我们去评估一个任务的难度时,不必追求绝对准确。
6.2 德尔菲评估技术
PMP里也详细介绍了德尔菲技术。核心理念就是通过1对1地匿名调查,评估任务难度。具体做法是单独让专家进行评估,并给出相关作证信息,然后将这些信息反馈给所有专家,再进行下一轮调查。在几轮调查之后,结果就趋于差异缩小了。这种方法很好的避免了人的从众心理,不会因为别人的结果而影响自己的判断。但是缺点在于比较耗时。
6.3 计划扑克 (Planning Poker)
6.4 不要盲目执行任务,要领会用户故事
很多时候我们只是从别人那里接受任务,却不知道为什么要这么做。员工的问题在于没有得到足够的信息,而上司的问题在于没有微下属提供足够的信息。面对同一条任务,当在不同的具体情况中,都会出现不一样的结果。
所以当你面对一条任务时,要学会从用户的角度来描述用户渴望得到的功能,也就是学会写“用户故事”。
6.4.1 用户故事三要素:角色,活动,商业价值。
6.4.1.1 角色:这就要求我们思考:谁将使用这个功能?这项任务是为谁而做的?打造这样东西,我们应该从谁的角度出发?
6.4.1.2 活动:要求我们思考我们要完成什么样的功能。
6.4.1.3 商业价值,或者说动机。要求我们思考用户为什么需要这个功能,以及这个功能如何才能给客户创造价值。这是最重要的一步。
同样一个任务,比如造一台汽车,在不同用户故事里,将导致结果完全不同。比如我是住在郊区的通勤族,我想要一台车以便开车上班,对比我是居住在犹他州荒芜之地的农名,我想要台车以便开车上班。这两台车能造成一样的吗?
6.5 用户故事宜短不宜长
用户故事宜短不宜长,以便对其进行评估。用户故事必须是细化的,非常明确和具体的。如果用户故事太宽泛,无法指导具体行动,可以将其分解为多个小故事。
6.6 用户故事必须完整,任务必须彻底完成
当你撰写用户故事,或列出待办任务清单时,有两个问题很重要:用户故事完整吗?你如何才能知道自己已经完成了任务?
6.6.1 一个好的用户故事,必须满足INVEST标准
6.6.1.1 独立性 (Independent)。尽可能让一个用户故事独立于其他用户故事。因为用户故事之间的依赖使得制定计划,确定优先级和工作量评估都变得困难。通常可以通过组合用户故事和分解用户故事来减少依赖性。
6.6.1.2 可协商性 (Negotiable)。用户故事的内容要是可以协商的,因为用户故事并不是合同,故事卡片上只是一句简短的描述,不包括太多细节。具体的细节可以在沟通阶段提出。如果一个用户故事带有太多细节,将会限制和用户的沟通。
6.6.1.3 有价值 (Valualbe)。
6.6.1.4 可评估 (Estimable)。开发团队需要衡量用户故事,以便确定优先级和工作量,安排工作计划。
6.6.1.5 规模小 (Small)。一个好的故事要尽量维持小规模,以便能在一个冲刺周期内完成。用户故事越大,在安排计划,工作量评估等方面的风险就越大。
6.6.1.6 可测试 (Testable)。
6.7 冲刺规划会议
每次冲刺阶段都要举行会议,规划本阶段的工作内容,称为冲刺规划会议(sprint planning meeting)。团队所有成员聚在一起,审视必须落实的用户故事。
6.8 如何知道自己的速度
我们已经得到了全部的用户故事,也已经对它们进行评估,得到了每个任务的dog points。当我们完成第一个冲刺时,可以把所有完成的任务列出来,得到总的dog points,这就是我们的速度。然后我们再看还有多少dog points是没有完成的,就能知道整体预计什么时候能够完成了。
一旦我们掌握了自己的速度,就可以着手解决Scrum中最重要的事情了:有什么因素在妨碍进度?在上一章,我们谈到浪费现象,这些现象都会使你慢下来,消除浪费现象是关键所在。
6.9 本章重点
6.9.1 地图不是真实地貌。不要爱上自己的规划。
6.9.2 仅仅规划你需要做的事情。
6.9.3 评估犬点Dog Points。
6.9.4 使用德尔菲法评估犬点。
6.9.5 使用计划扑克评估犬点。
6.9.6 学会写用户故事。思考哪些客户会从产品中得到价值,再思考究竟要为用户提供什么价值已经用户为什么需要这些价值。比如作为X,我想要Y,所以Z。
6.9.7 掌握自己的速度。
6.9.8 速度 * 时间 = 交付工作量。
6.9.9 大胆制定目标。