今年7月份中下旬,笔者见过一个号称“资深开发者”的哥们(据说编程有十来年了),笔者问他:“你们平时用的持续集成工具都有哪些?”这哥们回答:“那些都是骗客户的,其实我们什么都不用,还是各干各的,然后让一个人收集代码,进行测试。那些大公司,比如XX数码什么的,CI用的也极差”。笔者于是愕然。可见在实际软件开发工作中,持续集成远未得到普及,其中的原因无非是:
l 程序员习惯了原有手工作坊开发的方式
l 没有真正体验过持续集成的好处
l 持续集成涉及的知识点、工具太多,学习比较困难,造成CI人才的严重缺乏
l 很多中小软件公司的老板不理解开发质量的重要性,认为持续集成是重复成本,不愿意花钱培养或雇用CI人才
其实,如果不吃几次亏,国内的软件公司很少会去主动实施CI。比如笔者一个朋友所在公司,以前软件开发连源代码备份都没有,产品被客户投诉N多回,结果以前的代码都找不到了,只好重新开发。后来不得已上了SVN、CVS,好歹可以备份源代码并且回溯版本了。最关键的是:没见到因为加了版本控制工作就多花了钱和时间!CI其实也是同样的道理。
以笔者有限的经验看,一旦你真的建立起自动化的持续集成环境,到开发软件的时候,就可以把主要精力放在产品设计和开发本身了,反而会节约不少精力。笔者作为一个门外汉,从知道有持续集成到能搭建出一个简单的、自动化的持续集成环境,实际花了一个多月的自学时间。对笔者来说,学习持续集成其实是件很头疼、很困难的事情,但这很有意义。对于软件开发专业人士来说,我想这个学习过程应该会更短、更简单吧。后面还有9篇学习笔记,待整理好后再逐次上传。