昆山规划建设局网站,网页游戏大厅下载,保驾护航装修网,建站宝盒如何使用什么是真正的敏捷开发#xff1f;敏捷开发与瀑布开发有何不同。从本质上讲敏捷开发的一个重要目标是建立持续价值交付的能力。这种能力最终必须服务于业务的创新#xff0c;促进业务的成功。
敏捷开发的目标——更早的交付
我们经常会说敏捷模式#xff0c;那什么开发模式…什么是真正的敏捷开发敏捷开发与瀑布开发有何不同。从本质上讲敏捷开发的一个重要目标是建立持续价值交付的能力。这种能力最终必须服务于业务的创新促进业务的成功。
敏捷开发的目标——更早的交付
我们经常会说敏捷模式那什么开发模式是不敏捷呢我们通常说“瀑布”是不敏捷的。 瀑布开发模式把开发分成一系列阶段如需求、设计、开发、测试就像上图它画出来的看起来很像瀑布所以叫瀑布开发。问题是需求的交付难道不都是要经历这些阶段吗
瀑布开发的本质问题并不是阶段而是批量。需求批量地在一起进行设计然后是批量地开发批量地测试、交付等等。批量有什么问题? 首先批量让价值交付延迟所有需求在最后的阶段才能交付价值交付比较晚。 价值交付比较晚又怎么样看这幅图。左边是Intel的创始人摩尔摩尔定律的提出者。摩尔定律告诉我们18个月之后用同样的钱能买到多一倍的东西比如计算能力、存储量、晶元数等等。而右边这位是Google执行董事长施密特他提出了反摩尔定律表述为“如果18个月之后我们只能卖出跟今天一样的东西我们就只能得到一半的收入”。
反摩尔定律是摩尔定律的一个简单推论它告诉我们越迟交付的价值也是越低的价值。对硬件公司这很关键甚至决定它们的的宿命——技术进步必须跟得上摩尔定律否则利润就会被摩尔定律吞噬让产品或公司走向灭亡。
软件或互联网服务又怎样呢? IBM在上世纪90年代意识到不能做一家硬件公司转而主攻服务和软件行业它的确过了一段好日子。然而很快互联网时代到来了软件和服务行业的创新一下子加速了。这时相对硬件公司反摩尔定律在软件和互联网服务公司的作用是有过之而无不及的时间的迟早可能不仅仅决定价值的多少有时错过整时间窗可能会一无所获。 反摩尔定律告诉我们越迟交付的价值也是越低的价值。所以对于软件开发来说瀑布模式延迟了价值交付得到的价值也更少。相对瀑布我们提出了迭代交付我们把开发分成迭代每个迭代交付一部分价值更早交付的价值往往意味着更多的价值。就这一点来说迭代相对瀑布的本质是更小批量的快速交付从而更早获取更多价值和获取市场竞争的先机。 所以敏捷开发有第一个目标就是更快的交付价值这里的快指的不是绝对速度而是更早的交付。
敏捷开发的目标——有效学习和灵活响应变化 我们再看一个坐标图这个坐标是项目的时间历程最左是项目开始最右是项目结束。纵坐标是团队拥有的这个项目和产品的知识比如说用户要什么采取什么样的产品方案应该做什么样的功能以怎样的形式来协作选择什么样的技术方案等等。
我们想问一下团队包括产品也包括开发、业务什么时候对于产品和项目的知识最充分、最多大家的答案都很一致项目结束的时候。这显而易见我们在项目进程中积累了知识特别是当向用户交付产品后用户反馈“我要的不是这个啊我说的明明是…”这时候你瞬间狂涨知识并感叹道“你怎么不早说呢”。这中间可能有沟通问题但更多可能的是用户这时才清楚或能够描述他们要的是啥更有甚者我们可能一开始连用户是谁也未必能准确的定义。产品和业务开发本来就是一个探索的过程开始时一定是最无知的时刻。
再问一个问题。项目中的大部分决策是什么时间做出的呢大家的答案也很明确——项目开始的时刻。这里埋藏了一个重大的悖论我们在最无知的时刻做出了最重要而且是绝大部分的决策并把它作为随后执行的依据。面对不确定的技术、市场环境传统开发模式已无法适应要求悖论越发突出。 对于这一悖论敏捷的对策还是迭代。开始时我们会做出一些初始的决策比如说总体目标是什么大概的策略和打法是什么从哪里开始怎么检验等等。但这些只是初始决策定义了大致的方向。在整个开发过程我们迭代交付需求获取市场的反馈和最新的信息并基于这些反馈和信息积累和修正对产品的认知增量地决策和调整。 产品开发过程中技术环境、市场环境、竞品策略、团队认知都会发生变化。面对变化的环境我们必须承认自己的无知在开发过程主动有效地学习不断地汲取反馈灵活地调整。这也是敏捷的第二个业务目标有效学习和灵活响应变化。 综合上面提到的敏捷开发的两个业务目标我们就可以给敏捷开发下一个定义了。敏捷指的是创建一个组织更快早的交付价值和更有效学习和灵活应变的能力。 从能力的角度敏捷的核心是持续交付价值的能力以及以持续交付为基础的快速反馈学习能力。为了具备这样的能力产品的开发和交付方式需要做出根本变化。这幅图从概念上体现了传统批量式的开发方式到敏捷的持续交付方式的转变。
传统开发方式下需求成批量的流经各个阶段和组织部门如产品、UED、开发、测试、运营等直至交付各个职能各自优化自己的工作形成效率竖井。由于批量的原因需求等待整个批量完成才能集中进入下一阶段。从单个需求的角度看需求大部分时间都处于等待状态。
上图的右半部分表达了这一过程单个需求的实际处理的时间很短图中折线中上面绿色的短线它们大部分时间都处于等待状态图中折线下面红色的长线最终表现出的实际交付周期很长。
通过敏捷开发的实施我们希望整个组织协调一致更紧密协作缩短交付周期。图中左半部分是理想的敏捷开发模式它体现了敏捷开发的基本目标——持续价值交付和快速反馈、学习这其中持续价值交付是基础。
原文链接
本文为阿里云原创内容未经允许不得转载。