zoukankan      html  css  js  c++  java
  • 计划会议想开好,这两件事必须清楚

    摘要:一个好的计划会议的标志是什么?开了这么多的计划会,如何知道每次开的好好不好?今天我们就一起来探讨一下这个话题。

    本文分享自华为云社区《开好计划会议只要搞清楚这两件事》,作者:敏捷的小智。

    前言

    从2001年敏捷宣言诞生到现在,敏捷已经走过了20个年头,越来越多的团队采用了敏捷软件开发模式,其中作为框架指导的Scrum方法应用最广,Sprint计划会议作为核心的事件成为敏捷开发中必不可少的一个环节。众多团队在每个迭代开始都会召开计划会议,可是经常出现“开始计划特别好,结果交付乱糟糟”,在一次敏捷线上分享活动中,就有开发者提出一个疑问:一个好的计划会议的标志是什么?开了这么多的计划会,如何知道每次开的好好不好?今天我们就一起来探讨一下这个话题。

    问题分析

    作计划这个事我们从小到大都进行,现在也需要经常作计划,学习计划,读书计划,出行计划,攒钱计划,购房计划,脱单计划,恋爱计划,成长计划……等等,这些都是和个人相关的,计划其实主要解决两个事:做什么和如何做。同样到敏捷中的计划会议也是一样,会议的核心就是解决这个Sprint做什么以及如何做的问题。所以要是把这两个事说明白,就可以认为是一个成功的计划会议。这样问题就聚焦到把做什么和如何做这两件事情说明白。

    解决方法

    做什么——迭代待办列表

    确定做什么的过程,就是形成迭代待办列表的过程。通常一个迭代是两周,在计划会议中确定团队接下来的两周做什么任务,这里面有三个核心内容:产品待办列表、团队速率和迭代目标。

    产品待办列表

    在敏捷开发中计划是分层进行的,不同的团队会对环节进行删减和个性化设置,常见的分层计划形式有:

    • 5层计划:愿景、产品路线图、发布计划、迭代计划、每日计划

    • 4层计划:产品路线图、发布计划、里程碑计划、迭代计划

    • 3层计划:发布计划、迭代计划和每日计划。

    不论是哪一种,计划的顺序都是自上而下,先有上一级,再有下一级。

    所以在我们的迭代计划会议之前,首先要有一个发布计划,形成一个根据发布计划、按照优先级顺序排列好的产品待办列表。作为会议的任务输入项才能确定接下来这个迭代做什么。

    团队速率

    团队速率简单来说就是团队在一个迭代中能够完成多少任务,也就是团队的生产能力。常用的表示有两种方法。

    一种是采用故事点数。比如:某Scrum团队1个迭代可以完成 30个故事点,那么30个点就是他们的速度;通常这个数值是默认等于最近一次迭代中的速度,Beck和Fowler称为昨日天气法。有些团队还喜欢使用平均值的方法,可能是过去3次迭代的平均值。如果是新的团队或者没有历史迭代就需要他们预计自己的速度。

    另一种是采用工时描述。比如:团队7个人,每个人可用于工作的时间在70%,其他30%用于迭代之外的工作和缓冲(支撑其他团队、会议、回复邮件等),这样团队在两周的迭代中可用的工时就是 7*8*10*70%=392小时,其中还要如果有请假等不能工作的情况要从可用工时中减去。

    如果采用故事点数,就是和产品待办列表的单位对齐;采用工时,就是和迭代待办列表中的任务相同。两种方法团队都可以尝试使用,最后选择适合自己的方法。

    迭代目标

    除了产品待办列表和团队速率两项内容还有一个重要的信息,就是迭代目标。迭代目标通常由产品负责人PO根据业务的情况去确定。团队基于这个目标,按照团队的速度,从产品待办列表中选择适当的条目形成迭代待办列表。

    如何做——故事分解为任务

    得到了迭代待办列表之后,列表中的条目都是故事的形式,通常代表产品的某个功能或者特性,如何将这些特性实现,接下来需要拆解为具体的任务,由团队在迭代内完成交付。

    比如:迭代中有个故事为“作为管理员应该可以进行积分管理”,这个是从用户的角度去描述。开发团队实现这个功能,就需要分解为团队可以理解的任务描述形式:积分功能业务逻辑开发、积分功能数据库设计和实现、积分规则设计。如下图所示。

    在拆分任务的时候,任务的颗粒度可以参考在1天(8小时)内完成,这样可以保证在每日站会的的时候大家都有进展可以汇报,避免积压出现瓶颈。

    分解为任务之后,团队可以对每个任务进行再次估算,得到这个迭代要完成任务的估算总和,将它和团队的生产能力进行比较,了解当初的承诺是否合适,可以进行调整,避免承诺不足或者过度承诺。

    在计划会议上搞清楚本次迭代团队需要完成哪些故事,以及如何完成这些特性,基本上这个会议就是一个成功的会议,过程图如下所示。

    除了上面两个核心的问题,计划会议还有其他的一些要素需要关注下。

    计划会议的其他要素

    参会人

    建议整个项目团队(产品负责人、开发人员、测试人员、UI设计师等)和干系人(客户、项目发起人、职能经理等)都参加计划会议,这样可以让大家项目的进展和团队当前正在完成的工作有所了解。通常干系人时间有限,可以只参加确定做什么这个阶段,后面的如何做阶段保证团队成员都参加即可。

    会议时长

    在敏捷中的各种会议都有一个可参考的时间盒,基于团队的规模和迭代的长度。5-9人的团队、长度为2周的迭代中,计划会议时长通常在4个小时以内。

    谁来做——任务领取

    前面解决了做什么和如何做这两个问题,下一个问题就是谁来做。在敏捷中提倡团队成员主动领取任务,而不是被动的等待分配任务。从心理学的角度上,主动领取代表着一种承诺,会增加成员的仪式感和责任感。关于领取任务的时机,可以在计划会议上领取,也可以在迭代中即时领取1-2项,做完手中任务再去领取新的任务。

    这两种方法团队都可以尝试,选择适合自己团队的方式。通常建议采用后面的方式,因为计划会议是团队对本次迭代的内容共同进行承诺的一个过程,敏捷强调团队共同责任制,而这时候领取任务就会变成个人负责制,弱化了团队对任务的所有权。还有在迭代过程中也会有一些意外情况导致任务的重新分配,所以不建议计划会议上领取任务,包干到个人。

    写在最后

    敏捷方法旨在管理不确定性,这里的不确定性是指与目的(客户的目标和需求)相关的不确定性和与手段(技术和人)相关的不确定性。敏捷方法用来应对不确定性的一个方法是,基于在迭代开发中获得的进展和收集到的新信息,进行频繁的重新计划。所以在前面的分层计划中可以看到迭代计划之后还有每日计划,迭代计划不是一劳永逸的,在迭代过程中要根据情况实时调整,调整的核心是聚焦于迭代目标的实现,交付有价值的产品。

    参考附录

    1.Scrum精髓:敏捷转型指南.Kenneth S. Rubin.北京:清华大学出版社,2014

    2.敏捷软件开发实践:估算与计划. Mike Cohn. 北京:清华大学出版社,2016

    3.敏捷项目管理:快速交付创新产品(第2版) .Jim Highsmith. 北京:电子工业出版社,2019.11

     

    点击关注,第一时间了解华为云新鲜技术~

  • 相关阅读:
    个人理财小助手 —— 简介
    我的分页控件(未完,待续)——控件件介绍及思路
    静态变量 静态对象 静态函数和非静态函数的区别。(我的理解,大家看看对不对)
    通过“访问多种数据库”的代码来学习多态!(.net2.0版)
    Step By Step 一步一步写网站[1] —— 填加数据
    个人理财小助手 —— 数据库(一)
    几个鸟叫的声音
    Step By Step 一步一步写网站[1] —— 帧间压缩,表单控件
    面向对象相关
    论程序的成长—— 你写的代码有生命力吗?
  • 原文地址:https://www.cnblogs.com/huaweiyun/p/15660135.html
Copyright © 2011-2022 走看看