技术开发 频道

关于敏捷开发的精彩六问

    五、何时避免使用敏捷编程技术?

    应用软件开发根本就没有什么灵丹妙药可言。虽然敏捷编程技术可以很快开发出优秀的应用软件,但不是说这项技术适合每个项目。

    譬如说,一家公司需要开发无法分成诸多小部分的大型应用软件,要20余名开发人员才能完成。例如,为一家大医院开发心脏监测应用软件,就不希望只开发出监测心脏的那部分软件,在还没有开发出病人心脏有问题后发出警报的其他部分时就部署上去。这种情况下,必须开发出整个应用软件、整体测试后才可以部署,否则后果会很严重。这种场合下,敏捷编程技术算不上是良好的解决办法,因为一旦涉及了许多人,系统马上会崩溃。

    需要分布式开发的应用软件也不是非常适合使用敏捷编程技术。如果有些开发人员在英国、有些在美国,团队成员沟通起来不够迅速。分布式团队很难得到敏捷方法带来的所有好处。系统很快会陷入泥沼,你会发现大量时间用在了为团队的每个成员提供最新信息上。

    敏捷编程技术还很难应用于每个部分一开始就要用的关键任务型应用软件。因为敏捷编程技术最适合小的迭代过程,那样整个应用软件不必立即开发出来。这种方法要求公司部署不完全的应用软件,以便征求整个公司的意见。目的在于,迅速补救任何实际缺陷及使用问题,而不是开发出一个完整的应用软件,等项目结束后才能测试。

    有些公司本身也不适合使用敏捷编程技术,因为采用了集中的命令式管理方式,这遏制了敏捷编程发挥作用所需的有创意的方法。

    六、只有一种敏捷编程方法吗?

    敏捷编程包括好多方法,都可以用来实现目标。到底使用哪种方法,取决于想开发的应用软件类型、想要满足的客户以及公司内部的环境。下面是几种比较常见的敏捷编程方法:

    ◆极限编程(XP)

    这种方法强调的是适应性,而不是可预测性。它最适合这种场合: 公司并不确切知道自己需要什么样的最终产品。这种方法最先由Kent Beck采用。

    ◆Scrum

    这种方法强调的是重新开始迭代过程,而不是企图补救问题。它最适合这种场合: 公司在使用新工具,以及应用软件在开发过程中几乎肯定会变化。1993年,Jeff Sutherland在Easel Corporation最先使用了Scrum方法。

    ◆自适应软件开发(ASD)

    这种方法强调的是速度和灵活性。它最适合这种场合: 公司需要应用软件能够迅速见效,还能随客户使用需求的增长而灵活变化。这种方法的发明者是Jim Highsmith。

    ◆动态系统开发方法(DSDM)

    这种方法最初来源于强调用户参与的快速应用软件开发(RAD)技术。它最适合于在开发人员不是非常了解环境的情况。1990年,DSDM联合会在英国发明了这种方法,旨在综合编程非常好的实践方面的经验。

    ◆功能驱动开发(FDD)

    这种方法强调的是可预测性以及遵守开发非常好的实践。它最适合以下场合: 开发团队必须开发具有特定功能及可读性高于正常水平的应用软件。1997年,Jeff De Luca最早发明了这种方法,旨在满足当时一家新加坡大银行的需求。

0
相关文章