不确定性无处不在。当我写这篇文章的时候,我正在等水管工人,他已经迟到了一小时。他今天还来吗?什么时候来?
天气预报APP告诉我,今天应该是个晴天,而我却看见窗外正在下雨。
今天早些时候,我向开发人员提了一些需求变更。我大致知道我想要什么,但并没有考虑好所有细节。由于我思维里的不确定性,我也将不确定性带进了他们的世界。
我们周围充满着各种各样的不确定性,似乎我们应该适应了。你会觉得一个使用Scrum的敏捷团队应该对“未知”习以为常,但大部分团队并不是。
我也不是。水管工人何时到达实际上真的不重要,距离我需要出门还有足够的时间。所以我不应该为不知道他何时上门而感到困扰,而事实并非如此。
敏捷团队要与不确定性共舞
学会与不确定性共存,对Scrum团队来说尤其重要。在敏捷项目中,或者说在任何项目中,并不是所有事都能够被提前知晓。产品的细节会随着时间的推移而逐渐清晰。
这意味着不论团队或是干系人,没有人能够提前知道所有的需求。因为这根本就是不可能的事。有些需求会在开发的过程中,随着用户看到产品的雏形而慢慢涌现。
同样的,用户界面的细节无法提前确定,数据库也无法在一开始就设计得完美无缺。
无论用户故事写得多么细致,团队与PO和干系人进行了多少深入的交谈,有些细节只有在Sprint进行过程中才会浮现。
当我们试图消除不确定性时会发生什么
当团队成员对不确定性感到不适时,他们会表现出明显的迹象。
首先,团队成员经常花费大量精力在用户故事编写,产品待办列表精化,Sprint计划会议上,试图在开始工作前掌握所有细节。在某种程度之上,进一步减少不确定因素所耗费的价值会急剧下降。在这种情况下,团队成员的最佳选择是简单的开始工作,即使带着遗留问题。消除剩余的不确定因素的最好方法,往往是直接着手展开工作。
并且,想要消除不确定性的团队,往往会变得很抗拒变化。大家希望把需求框定下来,而不是积极地拥抱变化,当产品面向用户推出时,产生变化是不可避免的。
最后,当团队不适应不确定性时,Sprint计划会和待办列表梳理会就常常开得非常冗长。这些敏捷计划会议的目的应该是确定已经有足够的信息来推进工作,而不是所有信息都清晰了。害怕不确定性的团队,往往希望在这些会议中把所有不确定因素都消除殆尽。
ScrumMaster可以帮助团队的三个方法
幸运的是,我这里有一些方法,能让Scrum Master帮助团队来适应和应对不确定性。
01. 理解估算不是承诺
ScrumMaster可以从促进组织层面对估算的共识开始,让大家理解,估算只是估算,而不是承诺。每个估算背后都隐含着一个数据,就是这个估算准确的概率有多大?而这往往并未被明确表达出来。
如果一个团队说,他们可以在一周之内写出一个可靠的对标微软Word的产品,那么他们达成这个估算的可能性大概是0%。相反,如果团队的估算是需要100人年来完成,这个估算准确的可能性就会大得多。
让干系人,项目管理者,和其他得到估算数据的人都理解这一点,对于团队来说非常重要。
团队可以使用估算作为承诺(或保证)的基础,但承诺意味着达成的可能性要高得多。因此,团队往往需要给出一个更长的时间。
打个比方,团队估计完成一项工作最可能的时间是两个月。但如果需要做承诺,为了安全起见,基于这两个月的估算值,他们会说需要三个月来完成。
当干系人们都理解了这一切时,团队才能够放下迫切想要在开工之前得到所有问题答案的欲望。如果团队害怕因为一些不确定性导致工作耗时比预期长而受到责备,他们就会尽可能想要提前了解更多信息。
02. 确认需要答案的问题,但不要急着解决问题
第二个可以帮忙的办法是,当发生团队急于寻求不必要的信息时,指出具体的例子。我最喜欢的方式是,和团队说:“我明白你需要这个问题的答案,但你需要在开始这项工作之前就知道,还是在工作完成之前知道就可以呢?”
这样做既能验证团队的信息需求,又能帮助确认工作是可以在暂时没有答案的情况下开始的。
举一个实际的例子,一个正在为某系统开发登录功能的团队,他们的工作可以在不知道以下信息的情况下开展:
- 用户尝试登录错误多少次以后将被锁定账户
- 强密码的组成条件具体是什么
- 重设密码的机制是怎样的
类似这些问题的答案,在登录功能被称之为“完成”之前,是一定需要的。但一个通情达理的团队成员能够承认,在得到答案之前,工作也可以着手开始。
03. 分享会议的目的
Scrum Master能帮忙的另一个方法是,当看到有团队成员在任何Scrum会议中,过度追求消除不确定性时,向大家强调Scrum会议的目的。迭代计划会的目标,是选取适当或正确数量的工作,放入当前的迭代中。这并不要求所有待定的问题都在当时就有明确的答案。
不确定性会让人感到不舒服,我们中的多数人也许并不会完全适应它。但帮助团队学会拥抱不确定性,而不是试图消除它,可能是成为一个成功敏捷团队的必经之路。
你有什么想法?
你的团队是否适应不确定性?你做过哪些事来帮助团队克服对不确定性的排斥?请在评论区留言分享你的观点。
原文地址:https://www.mountaingoatsoftware.com/blog/3-ways-to-help-agile-teams-plan-despite-uncertainty
关于作者
【作者】Mike Cohn
Mike是敏捷联盟及Scrum联盟创始人之一,是帮助企业适应和改进敏捷过程及技术,以建立极致高效团队的专家。著有《用户故事与敏捷方法》,《敏捷估算与规划》,《Scrum敏捷软件开发》以及视频课程《更好的用户故事》。
【译者】Scrum中文网翻译组:
Scrum中文网是全球第一个Scrum中文网站,中国最早的Scrum和敏捷教育及推广机构,也是国际Scrum联盟(ScrumAlliance)官方授权教育机构和大规模敏捷SAFe官方机构SAI在中国的授权合作伙伴。
Scrum中文网是国内领先的敏捷培训及教练咨询机构,作为中国敏捷教练的摇篮,启蒙和培养了数万名敏捷专业人士,帮助数百家知名企业成功转型敏捷。
注:部分图片来源于网络