- Scrum精髓:敏捷转型指南
- Kenneth S.Rubin
- 693字
- 2023-08-31 19:42:17
同时减少各种各样的不确定因素
开发新产品是一个很复杂的工作,具有很高的不确定性。这种不确定性可以分为以下两大类(Laufer 1996)。
● 结果不确定性(不确定做什么)——围绕最终产品特性的不确定性;
● 方法不确定性(不确定怎样做)——围绕产品的开发过程和技术的不确定性。
特定环境或特定产品还可能有客户不确定性(不确定用户是谁)。例如,哪些人才是这款产品真正的客户,对此,初创公司(包括开发新产品的大企业)也许只能靠猜。这种不确定性一定要处理,否则最后可能会出现好产品误入“养在深闺无人识”的境地。
传统的顺序开发过程事先全部定义需要构建哪些特性,先重点消除结果的不确定性,后处理方法的不确定性。
这种简单、线性的方法并不适用于降低不确定性,因为在产品开发这个复杂领域中,我们采取的行动与所处的环境相互制约。例如我们决定构建一个特性(我们的行动);接下来向客户展示这个特性。客户在看到展示之后,却改变原来的想法或意识到自己之前并没有说清楚特性的细节(我们的行动引发环境的响应);然后,我们根据反馈修改设计(环境的响应影响我们,使我们采取另一个之前无法预知的行动)。
在Scrum中,我们不会限制自己只在处理完一类不确定性之后才处理另一类不确定性。相反,我们采取更全面的方法,重点关注于同时减少所有不确定性(结果不确定性、方法不确定性和客户不确定性等)。当然,在任何时刻,我们可能会更侧重于关注某一类不确定性。通过迭代开发和增量开发,并在经常性的检视、适应和透明度指导之下,可以同时解决多种类型的不确定性。在出现未知的未知(我们不知道自己不知道的事情)时,这种方法能让我们抓住机会探测和探索周围的环境,识别和了解未知的未知。