技术开发 频道

敏捷开发技术在电子商务软件中的应用分析

  第二章 敏捷开发技术的应用

  2.1 敏捷开发技术的几种主要类型

  1.XP(Extreme Programming -- 极限编程

  2.Cockburn的水晶系列方法

  3.开放式源码

  4.Highsmith的适应性软件开发方法〔ASD〕

  2.2 敏捷开发技术的特点和优势

  1.个体和交互胜过过程和工具

  人是获得成功的最为重要的因素。如果团队中没有优秀的成员,那么就是使用好的过程也不能从失败中挽救项目,但是,不好的过程却可以使最优秀的团队成员失去效用。如果不能作为一个团队进行工作,那么即使拥有一批优秀的成员也一样会惨败。团队的构建要比环境的构建重要得多。许多团队和管理者就犯了先构建环境,然后期望团队自动凝聚在一起的错误。相反,应该首先致力于构建团队,然后再让团队基于需要来配置环境。

  2.可以工作的软件胜过面面俱到的文档

  没有文档的软件是一种灾难。代码不是传达系统原理和结构的理想媒介。团队更需要编制易于阅读的文档,来对系统及其设计决策的依据进行描述。然而,过多的文档比过少的文档更糟。编制众多的文档需要花费大量的时间,并且要使这些文档和代码保持同步,就要花费更多的时间。如果文档和代码之间失去同步,那么文档就会变成庞大的、复杂的谎言,会造成重大的误导。虽然从代码中提取系统的原理和结构信息可能是困难的,但是代码是惟一没有二义性的信息源。在团队成员的头脑中,保存着时常变化的系统的脉络图(road map)。人和人之间的交互是把这份脉络图传授给他人的最快、最有效的方式。

  3.客户合作胜过合同谈判

  不能像订购日用品一样来订购软件。你不能够仅仅写下一份关于你想要的软件的描述,然后就让人在固定的时间内以固定的价格去开发它。所有用这种方式来对待软件项目的尝试都以失败而告终。有时,失败是惨重的。告诉开发团队想要的东西,然后期望开发团队消失一段时间后就能够交付一个满足需要的系统来,这对于公司的管理者来说是具有诱惑力的。然而,这种操作模式将导致低劣的质量和失败。成功的项目需要有序、频繁的客户反馈。项目的需求基本处于一个持续变化的状态。大的变更是很平常的。在这期间,也会出现整个功能块被减掉,而加进来另外一些功能块。然而,合同和项目都经受住了这些变更,并获得成功。成功的关键在于和客户之间真诚的协作,并且合同指导了这种协作,而不是试图去规定项目范围的细节和固定成本下的进度。

  4.响应变化胜过遵循计划

  响应变化的能力常常决定着一个软件项目的成败。当我们构建计划时,应该确保计划是灵活的并且易于适应商务和技术方面的变化。计划不能考虑得过远。

  2.3 敏捷开发技术的12个原则

  1.我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。

  2.即使到了开发的后期,也欢迎改变需求。

  3.经常性地交付可以工作的软件,交付的间隔可以从几周到几个月,交付的时间间隔越短越好

  4.在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。

  5.围绕被激励起来的个人来构建项目。

  6.在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交谈。

  7.工作的软件是首要的进度度量标准。

  8.敏捷过程提倡可持续的开发速度。

  9.不断地关注优秀的技能和好的设计会增强敏捷能力。

  10.简单使未完成的工作最大化。

  11.最好的构架、需求和设计出自于自组织的团队。

  12.每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整。

  2.4 敏捷开发技术的适用范围

  1.项目团队的人数不能太多

  2.项目经常发生变更

  3.高风险的项目实施

  4.开发人员可以参与决策

0
相关文章