速度、质量和成本这三者通常被称为“项目三角”,这种说法给我们提供了一种很好的视觉图像,展示了三者是如何密不可分,以及为什么我们不能同时三者兼具。项目三角还有几种变体,它们加入了范围,作为第四种元素。可以以质量为中心,以速度、范围和成本为三条边来表示这种变体。我们更喜欢采用传统的速度/成本/质量的项目三角,用三角形的大小来表示范围。其中三条边表示的是速度、成本和质量,而三角形的面积表示的是项目的范围。如果这个三角形很小,说明项目的范围很小,而成本、时间和质量因素也会与之成比例。项目三角虽然是很形象的视觉图像,但它更重要的是提醒了我们,要开发产品,必须保持这四个因素之间的平衡。
忽略这个三角形的任何一条边都会使你交付的产品低劣。如果你忽略了产品的质量,就会造成开发出的功能不能满足想要的或要求的特征和功能,或者造成产品中有很多bug,导致它不能使用。如果你选择忽略速度,那么你的竞争对手很可能会在市场上打败你,你会失去先行者的优势,还会失去被看作创新者而不是追随者的认知度。项目的范围越大,项目的成本就会越高,上市速度越慢,达到质量标准所需的工作量越多。如果你要认真思考你和你的组织如何才能积极地平衡这些约束条件,那么这些场景中的任何一个都够你烦恼的。
要完全明白为什么会存在这些权衡以及如何管理它们,首先你必须理解它们的定义。我们把成本定义为一个项目使用的或者需要的所有相关花费或资本投人。成本包括按照为项目工作的工程师人数、驻留新的服务所需的服务器数量、宣传新服务的营销活动等计算的直接费用。此外,它还包括间接成本,例如增加了一组新的数据库,造成了工作量增加,从而需要一个新的数据库管理员,或者客户使用某个功能需要额外的带宽。你也许会问,为什么要把这些成本算到该功能的成本中呢?答案是,如果你在这个功能上花费的时间越多,那么你越有可能找到办法缩减新硬件、额外的带宽以及各种杂项的成本。因此,在某件事情上花费的时间与之相关的最终成本之间显然有种权衡。
对于质量的定义,我们不仅加人了常见的理解,即bug的数量,还加入了功能的完整性。如果发布的功能只有指定功能的一半,相对于完整的功能来说,就不太可能引起客户的兴趣,也不会从客户那里收到钱。因此,决定尽快发布一个功能,通常会由于功能不完整而造成质量不合格。同样地,一个项目可用的工程师人数少,或者给原本需要高级工程师的项目分配的大多是初级工程师,也会造成这样的问题。如你所料,质量还包括为质量保证过程中所提供的时间和资源。质量保证所需的资源不只包括测试工程师,还包括相应的环境和测试工具。在测试工具上节省的组织,是不能有效地利用它们的测试工程师的。
对于速度的定义,我们将使用一个功能或项目从产品开发生命周期的第一步起到把产品发布到生产环境为止所花费的时间。我们知道,产品开发的生命周期不是到把产品发布到生产环境就停止了,事实上接下来还有支持阶段和最终的折旧阶段。不过这些阶段通常是由早期决策决定了的。例如,如果一个匆忙开发的功能,没有安排足够的时间进行设计或质量保证测试,那么在生产环境中支持它所需的时间将会大大增加。如果你在联合架构设计流程中没有足够的时间设计一个功能,然后在架构评审委员会中没有足够的时间审查它的设计,那么这个功能注定质量较低,或者成本较高,或者两者兼具。
对于范围的定义,我们将考虑要开发的产品功能的数量以及开发每个产品功能所需的工作量,实现个办值的业名标所需的需求不同,常你会洲烈地改变该功他的花用大小,知板客户市册的功值,这功他的目标是把完成注册客户的数量批高10%,也就船说,在开始生册值利的客声中,要使完期的客户数服州m10这个功他服初的范用可能规定了婴把它和分一个服务南机供的单M化k功他集成在心但通过用户测试,负责该功他的团队决定这种单点登录的功他不是必需的,因此它的范围就大大缩小了。在图19中,我们用等边的项目三角表示这些约束是同等重要的。而在图192中,改变了项
量,这必然造成了成本增加。这种项目可能是为了阻止竞争对手。因此,在月底之前就发布它,目的侧承M和范围。左右网图表示r不同项目的不同侧重点。左边的项目侧重于快速度和高质而儿还要具有完备的功他,这样才能在市场上击败具有相似产品的竞争对手。为了在市场上赢得一席之地,增加工程师,可能是增加高级工程师和测试工程师,所花费的成本还是值得的。
有边项目的侧重点在于用较低的成本和降低的产品质量,加快产品的上市速度。这种项目可能是为了实现承诺,以赶上截止日期,避免受罚。这种功能不太可能产生利润,因此,有必要保持成本尽可能低。这种项目有点像“千年虫”bug,即不必全面展开修复工作,只需在特定的日期,用最小的成本,执行基础的功能即可。
任何人只要有过商界经历,对于处处要做权衡决策,就会毫不感到意外。不难想见,在商界,领导者每天都要做决策,决定如何分配他们宝贵的资源(工程师、资金和时间)。这些决策通常都是通过精心设计的流程来做出的,这样可以了解给某个项目多分配些或少分配些时间、资金或人员的优缺点。正如我们将在本章后面的小节中所讨论的,有几个流程可以用于分析这些决策,其中有些比其他的更为正式。我们知道商业就是要不断地权衡,而产品开发生命周期也是权衡决策的一部分。我们必须决定给功能分配工程师的数量,当一个功能被证明估计错误时,必须决定是否删除它,而当候选的发布版本中还有已知的bug时,还必须决定是否让这个版本通过。
整体上看,构成网站设计项目三角的四种约束因素,成本、质量、速度和范围,同等重要,但就它们对具体某个项目的重要性和管理所需的工作来说,不同项目之间可能有很大的不同。对质量要求到要求。因此,只是因为我们需要项目的质量更高,并不代表该项目的成木与质量直接就星线性较高的项目并不定会实现比其他项目更高的质量。同样,项目的成本较高,也并不定就能达能就需要增加10%。因此,每个项目都要根据自己的项目三角标明的侧重点分配资源。如果你认关系。例如,质量提高1%,可能需要成本增加5%但如果质量改善超过T20%,那相应成本可想而知,你做权衡决策也可以不用这个图。为这个图能为参与项目的每个人都提供有用的信息,那么可以在项目的规格说明书中加人它。
>>> 查看《网站设计业务上的权衡》更多相关资讯 <<<
本文地址:http://www.phpweb.com.cn/news/html/3861.html