5 F; m: Z$ G4 [! t2 @" `# c
持续集成 研发管理 极限编程 敏捷开发 迭代开发 4 R9 d- ~/ O+ ]) ] 随着软件业的不断发展,软件项目的规模越来越大,软件结构越来越复杂,技术要求越来越高,参与人员越来越多,管理也变得越来越难。在这样一个大背景下,如何提高软件研发质量,相信是所有软件公司都在关注的话题。但是,如何提供研发质量,这决不仅仅是一个口号,我们必须有一套行之有效的方法加以管理。然而有效的管理带来的负面影响往往是成本的提高,这包括时间的成本、人力的成本、资金的成本。在大多数软件研发项目中,时间总是很紧,人力和资金也是有限的。这样,管理者往往步入一种两难的境地:一方面为了提高研发质量而需要加大对时间、人力、资金的投入,另一方面现实情况却不允许我们这样做,这也是很多管理制度不能真正实施下去的原因。难倒没有第三种方案能兼顾二者吗?时下正流行的持续集成技术为我们提供了一个答案。# a' j3 w' H9 Y+ A
$ |( U- B) J4 P. Q7 O* o) p持续集成(Continuous Integration,简称CI),又被称为持续构建(Continuous Build),最初是以一种研发管理的思想被提出来。1996年,持续集成的思想首先在Kent Beck的极限编程中被提了出来。Kent Beck在他的书中是这样描述的:“团队编程就是先分而治之地解决问题,然后集成。但集成的过程是不可预知的,你等待集成的时间越长,付出的代价就可能越高。因此,每完成一段时间编程,系统就应当进行一次集成,并进行相应的测试。”Kent Beck先生将这里的“一段时间”设定在几个小时,并提出了集成的同时应当进行测试的思想(这就是敏捷开发中的测试驱动设计)。) N3 ]- R' k1 t3 n& k. e9 r