对于开源软件来说,最大的支出有两个,一是二次个案的开发,另外一个是时间上的支出。无论是哪一种支出,跟传统的商业软件都是不能比的。根据我的了解,这两方面的支出,比商业软件项目都要大的多。所以,企业若采取开源软件项目的话,在成本预算与控制上,一定要比较严格。否则的话,开源软件项目不但不能给企业省钱,而且,对企业来说,反而会成为一个名副其实的烧钱工具。
对于二次开发来说,企业需要先对所采取的开源软件有一定的了解,然后在结合自己公司的情况,先确定二次开发的规模,然后在这个基础之上,得出二次开发的成本预算。我见过不少的客户,他们做的二次开发预算,基本上不可行。为什么呢?因为他们的二次开发预算是凭空想象出来的,或者是以商业软件项目为参考的。如此做出的二次开发预算,当然没有可行性。
时间支出也是如此。根据相关统计,开源软件项目的实施周期比商业软件要长,因为其二次开发的功能多。可见,若我们以商业软件的眼光去评估开源项目的实施周期的话,显然不是很合理。
另外,还需要注意的一个情况就是,若我们对这些支出没有严格预算与控制的话,那么,项目的支出会如同滚雪球一般,越滚越大。因为世上没有完全完美的系统,而用户会认为开源软件是开源的,不用软件授权费用,那么在二次开发上多支出一点,是值得的;而且,用户的需求随着项目实施的深入,会不断的调整,而且会涌现许多新的需求,在这种情况下,若没有严格的费用支出预算,及没有项目周期的控制的话,那很难保障项目能够不超出预算,或者在规定时间内完成。
笔者建议:
采用开源软件项目的时候,建议仍然要采取分阶段实施的策略,同时,根据不同的阶段,分别采取不同的成本预算与控制方案。把一个大的预算,分解成一个个可以控制的预算。如此的话,企业对于成本的控制,可能可行性会比较高,不会感到无处入手。
四、要有比较好的项目管理工具。
开源软件还有一个比较头疼的问题,就是二次个案开发的比较多,而且,版本升级比较快。如何在新版本上,把二次个案开发的内容加载上去。这就是一个很头疼的问题。
现在很多企业给客户的建议是,不要进行版本升级。即使新版本功能有增加的话,若企业觉得这个功能有需要,那还不如通过二次开发的形式,把新功能在旧版本上加上去。确实,若我们前期准备工作做的不好的话,还不如这样来的方便。但是,我们要知道,这二次开发也不是随便开发的,需要企业真金白银的付出去的。而且,长而久之,也不是解决之道。
最好的是,对于以前做的一些二次开发,我们都需要做详细的记录。如此的话,在后续版本升级过程中,我们才可以比较容易的把原先的二次开发移植上去。一方面可以享受新版本带来的便利,另一方面,也不需要支出过多的额外成本。