天天学敏捷:Scrum团队转型记
上QQ阅读APP看书,第一时间看更新

1.1 为什么敏捷

“所有的项目都在转型到敏捷”“总部要求今年敏捷项目比例至少要到50%”“市场部的项目也要转型成为敏捷项目”……

根据Scrum联盟2017年年底发布的调查结果显示,有98%的人确认自己所在的公司计划在将来使用敏捷的管理方法来管理项目。著名公司,如外国的谷歌、苹果、脸谱、IBM、HP、PayPal、波音、美国在线、摩根、BBVA,中国的阿里巴巴、百度、腾讯、京东也都有敏捷的项目。更有甚者,据调查报告显示,敏捷正在从它兴起的软件产品部门快速渗透到公司的其他部门,甚至是渗透到其他行业。

而从敏捷项目地域分布的角度来看,在美国已经有将近一半的项目在使用敏捷的方法,而在中国这个比例还低于3%。我们有理由相信,敏捷方法的应用在中国将会越来越广泛。

在学习如何使用敏捷方法之前,要搞清楚一个问题:为什么使用敏捷的方法来开发产品?

在上次谈话一周以后,老王把小李叫到了办公室,他给小李介绍了敏捷专家老朱。

老王:“小李,这是我为团队请来的项目管理和敏捷专家老朱,接下来的三个月时间里,他将和团队一同工作来解决团队面临的问题。”

小李:“你好老朱。”

老王:“老朱,公司上层希望以小李他们今年的项目作为试点,在北京研发中心尝试敏捷转型,把小李他们团队转型为Scrum团队。还请你和小李一起工作。第一步,需要你们对项目团队能否转型成为Scrum团队进行评估。”

老朱:“好的。我需要和小李聊一聊我们的项目,并且我会把敏捷和Scrum的知识分享给小李,之后我们会做出评估。”

老王:“好的。公司会全力支持你们的工作。”

小李和老朱离开老王办公室后,小李开始给老朱介绍项目情况。

小李:“老朱,欢迎来帮助我们解决问题。去年的项目,我们很努力,但是效果却并不好。我们分析了原因,但结果却令我们沮丧,感觉每个人都已经努力做到了自己的最好,但是项目却仍旧做失败了。今年公司领导希望我们团队使用Scrum来研发新产品以解决去年项目的问题。可包括我在内的整个项目团队在敏捷和Scrum方面都没有经验,我们还是需要你多多帮忙,多多指教啊。”

老朱:“小李,我能理解团队这种无力感,希望我能够真的帮到大家。你能分享一下去年的项目里有哪些事儿是最令大家头疼的吗?”

小李:“根据我们团队的总结讨论,事情开始变坏是从产品经理遇到问题开始的,他无法在项目初期计划阶段确定所有需求,导致在项目进行到中期的时候我们又多出来了好多新的功能需要完成,感觉上他根本不知道客户到底要什么,我们到底要做些什么。这就好像是多米诺骨牌一样,需求变了,你要用的技术就要变,而这样一来一切就都变了。整个团队每天疲于奔命,可到了最后才提交所有功能给测试人员,可怜的测试们即使加班加点也没办法在被压缩的所剩无几的时间里做完所有的测试。于是,最终一个不满足客户需求质量低劣的产品被提交给了客户。而包括产品经理在内的所有人都感到自己既无助又无辜。”

老朱:“小李你们遇到的问题非常普遍,很多项目都会遇到和你们同样的问题。这些项目往往多是为了满足一个全新的客户需求而需要创造全新的产品,而这类新产品的最大特点就是没人能在给用户试用产品并且得到反馈之前确认清楚产品的功能需求。按照传统的项目管理方法,没法确定产品需求的结果就是接下来的开发技术不确定,测试时间不足,最终产品质量低下,严重延期。”

小李:“那怎么办呢?”

老朱:“新的项目和产品特点,需要我们找到新的方法来适应。运用敏捷的方法是个不错的选择。”

小李:“老朱,我理解需求不明确和技术不确定这两个特点导致瀑布开发方式不能很好地工作。刚才你说敏捷可以解决这样的问题。你能举个例子说明一下敏捷是怎么避免这两个问题的吗?”

老朱:“假设我要从北京出差去上海。如果我坐飞机去的话,在我登机之前以及飞行当中,我的飞机都受到地面塔台的控制。飞行员接收一条指令,然后执行这条指令。如果情况有变,例如天气不太好,飞行员也必须在接收到新的指令以后才可以对飞行姿势做出调整。当到达机场的时候,地面塔台会继续指导我们在哪条跑道着陆,在哪个登机口开舱门。这就是典型的传统管理方法,从一开始到最后对整个系统的需求和技术都是可以控制的。

假设我不坐飞机去上海,而是选择开车去。那么我可以选择任意自己喜欢的路线,在任何时候出发。在整个过程中,我可能并不能预知每个具体的时间会开车到哪里,也并没有计划完整的路线以及在哪里停车休息。我只是在整个过程中遵循最基本的交通法规,例如,红灯停,绿灯行,保持正常车速。在整个驾驶过程中,我随时根据情况做出调整,应对未知。这就是典型的敏捷方法,处理那些我们并没有掌握所有信息,无法控制不确定性的事物。

当项目的需求和技术不明确的时候,传统的把一切精准计划好并逐步实施的方法不再适用。我们需要一套新的可以随时做出调整的,适应复杂系统的开发方法。这就是敏捷开发方法出现的原因。”

小李:“原来是这样。敏捷的开发方式完全和以往的瀑布模型不是一个思路。它随时准备好应对变化,因此无论需求、技术怎么变,都能应付自如。”

老朱:“以Scrum为例,以下几点是实施Scrum的好处,也许你不能完全理解。不过没关系,留作参考就好。作为新接触敏捷的一线工作人员来说,你理解到刚才我举例子说明的程度就已经对你的工作有很大帮助了。”

实施Scrum对组织和项目的好处:

 更高的生产力和更低的成本。

 员工的参与度与工作满意度增强。

 更快的产品上市时间。

 更高的质量。

 项目干系人的满意度提升。

小李:“嗯,我认真学习一下。不过我有个疑问,你说Scrum是敏捷的一种方法。这个我有点儿不太明白。你能解释清楚一点儿吗?”

老朱:“小李,你这个问题问得很好。不过今天我想先卖个关子。这个问题我要慢慢解释给你听。今天我们先到这里,你和团队分享一下我们今天的讨论,再仔细分析一下你们今年要做的项目是否符合需求和技术不明确的特点。明天我会继续给你解释‘什么是敏捷’。”

图解Scrum

知识小结

由于传统的瀑布模型管理方法无法满足现代某些软件产品开发过程的特点,我们需要使用敏捷的方法(例如,Scrum是一个让我们关注于在短时间里交付高质量商业价值的敏捷框架)。

需求频繁变动,技术不确定,这正是传统管理方法不满足现代软件产品开发的两个突出问题。因为传统管理方法不满足需要,才出现了敏捷的方法。

需求不明确指的是:虽然对要做一个怎样的产品有规划,但是并不明确和确定所有功能的细节;并且随着产品的开发,极有可能对产品功能不断地改变以适应最终用户的需求。这种情况经常发生在对全新概念的产品的开发过程中。

技术的不确定性指的是:技术的发展日新月异,对于所定义功能的可实现性面临着多重不确定性的因素。

Lizzy说

传统开发方法和敏捷开发方法没有孰优孰劣之分。对于很多技术和需求可控的项目,传统的开发方式仍旧是首选。

学以致用

你的项目是否在技术和需求方面呈现不确定性呢?你的项目是否需要使用敏捷的开发方法?