有效的敏捷编程

很多企业一直都在寻找更小型、更快速和更廉价的软件。目前,一种新的软件开发方法—“敏捷编程”(Agile Programming)受到了很多企业的持续关注。如果将敏捷编程用在合适的环境和合适的项目中,这种开发方法就会非常有效。

“极限编程”(XP)是最早的敏捷编程方法,由肯特·贝克(Kent Beck)、沃德·库宁汉(Ward Cunningham)和容·杰弗里斯(Ron Jeffries)等在上世纪 90 年代末首先提出。到 2001 年,这个涵盖性术语的含义发生了一定的改变,它主要描述一些具有共同特征的编程方法,运用这些方法,都能将项目细分成小型化的、可管理的模块,都采用了多次反复开发的方式,而非传统的单向开发模式。

敏捷编程在新兴企业环境中或是针对一些保密项目特别有效。因为在这些保密项目中,在开发初期时,最终产品的定义总是不明确的,而这也是必要的。从企业的角度来说,敏捷编程很具有吸引力,因为它更贴切地反映了真实的市场开发过程。

敏捷编程与传统的“自上向下”(Top-Down)设计方法不同的地方在于,一旦整体基础架构建成,整个项目被分成小的模块,这些小的模块可以在很短的时间,通常不到 7 天或甚至只要一天,就可以组合为具有完整功能、经过检验的和潜在可用的产品。

由于敏捷编程方法在风险管理方面有很大价值,因此用户早期的反馈就显得非常重要。敏捷项目在初期就要很好地控制风险,避免浪费太多的资源。最糟糕的情况是,企业投入了大量资源进行项目开发,最后却发现产品的性能是用户不想要或不需要的。敏捷编程方法意味着开发团队只需专注于对用户最具价值的模块和性能。对于这样的开发方法,营销部门非常欢迎。因为在项目早期阶段,一些重要的产品功能就已开发出来,而且随时可以发布。

开发人员在构建单独的个人工作模块之前,必须周密考虑到工作的界面和协议、供应商名录等情况。因此,站在全局性的高度,让大家参与规划项目的整体架构就很有好处,尽管这并非是一个必要的工作环节。所以,对于企业来说,让开发人员理解项目的整体设计,以及设计的背后原因,就是比较理想的操作方法。

因为敏捷方法高度依赖于创建单独的工作模块,所以需要在整个开发过程中,进行大量内置的和反复的检验。质量保证(Quality-Assurance)和可用性(User-Acceptance)测试就是流程的一部分。由于最后阶段为了赶时间,往往很容易把测试部分略去,因此在敏捷编程过程中,这些工作就已经构建在代码编写的流程中,而不是像通常那样放在项目最后阶段进行。

如果运用恰当,敏捷编程会是一种特别有效的技术。它将项目分割成不同的模块,共同组成互相关联的、可管理的大型产品,每个模块性能都可以单独开发,同时在过程中保持了整体的产品功能。当然,和任何方法一样,敏捷编程工具成功应用的关键,还必须具备良好的编程操作和优秀的项目管理技巧。