请选择 进入手机版 | 继续访问电脑版

ITIL,DevOps,ITSS,ITSM,IT运维管理-ITIL先锋论坛

 找回密码
 立即注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

查看: 52|回复: 0

敏捷研发Sprint计划的流程

[复制链接]
发表于 2022-1-9 17:42:41 | 显示全部楼层 |阅读模式
本帖最后由 FYIRH 于 2022-1-9 17:45 编辑 + n3 c! N7 ~8 ~

; h6 u1 Z0 O1 d9 C
Sprint计划的输入有:

, I, Y4 \" v# O2 u1 Q' ]6 U, O/ y
  • 为Sprint准备高质量的产品Backlog;
  • 团队的历史速率;
  • 团队做SprintBacklog的可用时间;
  • 产品负责人提议的Sprint目标。# @# A7 K& w" s

3 j! ~9 o- R0 J6 H: N
Sprint计划的输出有:

0 {0 j' l; N7 _8 i- R/ W1 Y: G
  • 团队承诺的Sprint目标;
  • SprintBacklog。
    4 [% L( [% w* Z; q) P( Q8 j

4 M: G3 b) C- N3 z0 r
Sprint计划的参与人有:
& n* Y" j) p, A. m
  • 产品负责人;
  • 团队成员;
  • ScrumMaster。
    " U9 f0 \5 R' ^1 X* h9 t! |
+ _4 w# b, ~$ m8 L
Sprint计划的流程如图6-7所示。
粘贴上传202201091739341862..png

/ T0 R0 a; c6 t$ Z
图6-7Sprint计划的流程

! r% [2 M/ D/ F( R; {
高质量的输入是举行高效的Sprint计划会议的前提条件。

5 J( H) E; L- U  w8 W* j, ?
输入1:高质量的产品Backlog
% @& \9 L0 K% {+ q, l' Z" j
Tommy团队的产品负责人是David,他经常在每个Sprint计划会议开始后飞奔而来,手里捏着几个用户故事卡片。到会场后,David气喘呼呼地给团队讲用户故事。每个用户故事都让团队成员感到头大,因为每个用户故事听起来都很大,需求也很模糊。当团队问起每个用户故事的细节时,David一样感到头大,因为他完全没有想过细节,只是在会前花了10分钟匆匆忙忙地把想法用卡片写下来了。团队问起这个Sprint的目标,David说的目标让团队集体“晕倒”,因为那个目标大到至少三个月才能实现。

4 {. g( n9 \) E
可见,一份高质量的产品Backlog对Sprint计划是多么重要。很多团队为了解决这个问题梳理了“就绪的定义”(DefinitionofReady,简称DoR),定义了进入Sprint计划的前提条件。这个“就绪的定义”与“完成的定义”的作用类似,都是对用户故事的检查。两者的区别是:“完成的定义”定义了产品增量做到什么程度算是完成,而“就绪的定义”定义了产品Backlog可以进入Sprint计划的前提条件。

, e% j) A5 b. N/ F5 v; i
Tommy引导团队制定了“就绪的定义”:
# ~4 A! _0 W$ h
  • 已经打印或手写了用户故事;
  • 用户故事已经具备技术可行性;
  • 用户故事满足INVEST原则(好的用户故事需要遵循的原则,详见第8章);
  • 用户故事的优先级已经排好;
  • 用户故事已经具备参考的文档并被团队熟悉;
  • 用户故事卡片里含有对接受条件(AcceptanceCriteria)的描述;
  • 已经明确了依赖关系;
  • 已经估算了用户故事点数,且大小在一个Sprint完成。
    - {/ D( o1 J. ~& U5 L
    ; `+ I- A4 I9 w( w
4 U7 z7 |& N8 U: x# r/ ~9 k
与“完成的定义”一样,每个团队需要依据自己的情况来定义“就绪的定义”。对于Tommy的团队来说,如果团队与产品负责人达成了“就绪的定义”这个规约,就可以约束产品负责人David的行为,督促他维护高质量的产品Backlog,从而给团队高质量的输入。
, c+ L3 t- q. k: H4 v3 C$ Z8 O
输入2:团队的速率
) j9 O! k3 X: I* @( C# S, ]$ _
下面这个案例在很多公司里都出现过。

$ r7 J2 F7 x% ?
我刚进入Tommy的团队做教练的时候,Tommy说,他们团队已经做Scrum几个月了,感觉基本的知识都会了。我说:“那很好啊,那么你们的速率是多少呢?”Tommy一脸茫然:“速率是啥?”
5 }0 C) _' N8 `5 x0 z
我问团队:“你们不知道速率是什么,那你们每个Sprint依据什么来决定要完成的工作量呢?”
; x; C% \  v3 `' [  m$ V
团队答:“就按照产品负责人给我们的SprintBacklog来做。”我问团队:“那么你们每个Sprint的完成情况如何呢?”

' Y" e9 D4 h' X
团队答:“没注意过,好像都没有完成过啊!”
; E- I2 X" C. h
速率在Sprint结束时由实际完成的所有用户故事点数之和来度量。速率的统计有两个作用。
2 n( s. C2 Y; \# E( B7 j+ J* i
  • 让团队对每个Sprint的产出量做到心里有数,这样能够做出靠谱的预测。
  • 速率是发布计划的重要输入。比如,你的产品当前版本的Backlog有150个故事点,而团队每个Sprint的平均速率是30个故事点,这样你就可以预测出这个版本大概需要5个Sprint来完成。. |8 ]8 }! X9 H, l  C7 F3 ~
    6 X" z0 s3 ?, `, R/ d2 ~# r

$ \/ A/ |, G: ^
很多团队将没有完成的用户故事也统计在速率内。这是错误的统计方法。

% T# E3 A4 I6 R, Y  K# A
一个用户故事要么是完成了,要么是没完成。即使是完成了99%,也是没有完成,没完成的用户故事没有价值,因此不该统计在速率里。

. c9 S1 W, C* a% Z8 a- W! M7 \
Tommy团队在一个Sprint结束后,出现了这样的速率统计结果(如图6-8所示)。  
" ~: _: M$ N$ Y0 ~6 ^
粘贴上传202201091740014675..png
图6-8速率的计算

) q% J3 D' u- s) l
团队质疑道:“最后那个故事卡,差一点就完成了,为什么速率统计不是2×90%,而是0?这样没有真实统计我们团队的速率啊!”

- \9 I7 r+ O- C$ n3 Z
其实,即使团队完成了用户故事的90%,但是如果没有达到“完成的定义”,就不具备完成的条件,在速率的计算中,99.9%=0。

4 i1 a( E2 c, ?4 X
累积了多个Sprint后,就可以计算历史Sprint的平均值,以及最大值和最小值,并将其作为下一个Sprint的参考(如图6-9所示)。

! t' e( `6 k- x% ]
粘贴上传202201091740288016..png
/ `! @* l- E4 c' z) l
图6-9历史速率统计
. @* ]+ K$ E$ \! M
图6-9的历史速率统计为团队做Sprint计划提供了量化参考,团队应依据此数据把握Sprint的装载量——在最大值和最小值之间,接近平均值。
! `- x4 J# u9 e6 S
输入3:团队做SprintBacklog的可用时间
+ ], q4 w8 N0 x5 |
Tommy的团队在一个Sprint计划的时候出现了这样的情况:公司要求所有工程师在这个Sprint都参加计算机编程考试,考不过的同事会影响其职位晋升。为了考过,每个人得花点时间准备一下才行。于是团队疑惑,这个Sprint还能装载多少工作呢?
; T- f3 _! R( _7 x8 P5 j
如果团队有6个人,Sprint长度为10天,每天按照8小时计算,那么经计算得出,该团队成员总共的工作时间是480小时。

  I4 \' N  N9 A6 o* J. k1 E
对于已知的干扰事件,比如,每个人都要参加考试,在这个时间里团队没有做SprintBacklog的工作,因此需要去除掉。如果每个人考试需要3小时,准备考试需要大约半天的时间,于是,基本上一天的时间就被耗进去了。因此,这个Sprint的有效长度其实只有9天。

' d. l, z4 @% D5 a5 J! k3 {( n0 Q
值得注意的是,每个人有效的工作时间并不是8小时,通常也就是5~6个小时。如果用6小时来算作有效工作时间,那么经计算得出,在这个Sprint中,该团队的有效工作时间是324小时。
$ G. G2 V" ~9 D- O
再看看这个Sprint里有没有人休假呢?小王休假2天,小李休半天,这样,团队的2.5天就需要被去除掉。经计算得出,可用的有效工作时间是309小时。最后,这个Sprint本身还有Scrum的基本活动:Sprint计划4小时,Sprint评审2小时,Sprint回顾2小时,Backlog梳理4小时。经计算得出,该团队可用的有效工作时间是237小时。
! j2 }/ ?/ n! L/ V8 {4 e
算到这的时候,团队说:“难怪不知道时间都去哪了!好了,本来以为480小时的工作时间现在只剩下一半了,这下可以了吧?再减就做不了什么了!”

: R8 s" t# v! B" m7 n! u
我问团队:“这237小时,你们确实都用来开发SprintBacklog吗?”团队答:“要是没有Bug的话,是的……可是我们在每个Sprint都会收到用户发现的线上Bug,以及从以前的Sprint测试中发现的Bug也会有一些遗留到下一个Sprint里,这些都要修改。”这才是真实的Scrum世界,在开发伟大特性的同时还要清扫垃圾。所谓的零缺陷在软件世界里只是个梦想。
+ y& @4 ?6 E- f' f+ W5 B$ G" q
我问团队:“那么你们每个Sprint大概花多少时间来处理这些Bug呢?解决线上Bug和遗留Bug的时间,与开发SprintBacklog所用时间的占比是多少呢?比如,是3∶7、2∶8,还是1∶9?”

6 A' b% [; @) S3 b' ^
团队查看了历史数据,大概是4∶6的比例。
% X% s3 R$ |" S) p
因此,团队真正能够装载SprintBacklog的时间是142小时(237小时×60%)。
. S0 u, R1 T: a6 w
输入4:产品负责人提议的Sprint目标
8 k8 c) @" v" |: s; B  e
产品负责人在Sprint计划会议上提议一个Sprint目标。这个Sprint目标不是产品负责人单向压给团队的,而是需要与团队协商的。最终团队与产品负责人就目标达成共识,团队承诺的Sprint目标才是最终的目标。

  {: _+ w9 R  N, l6 u8 z9 a& P' `: @

8 l' O. I0 N. g. v  u) |6 [2 M6 c




上一篇:承诺敏捷研发Sprint目标
下一篇:开展敏捷研发Sprint计划会议的步骤
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

参加 ITIL 4 基础和中级专家认证、v3专家升级、DevOps专家认证、ITSS服务经理认证报名
本站关键字: ITIL| ITSM| ISO20000| ITIL培训| ITIL认证| ITIL考试| ITSS| ITSS培训| ITSS认证| IT运维管理| DevOps| DevOps培训| DevOps认证| itop| itil4| sre| 开源ITSM软件

QQ|ITIL先锋论坛 ( 粤ICP备11099876号 )|appname

Baidu

GMT+8, 2022-1-20 18:42 , Processed in 0.105549 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表