开源之盛宴——欢呼之后的思考

来源:互联网 发布:微信树洞源码 编辑:程序博客网 时间:2024/04/27 22:06

洋鬼子有时候真的是非常的可爱,在这个免费午餐几乎绝迹的年代,源源不断的推出一大堆的所谓“开源软件”,除了不要钱就能免费获取外,居然还提供了完整的源代码,让我等具有“捡钱包”天赋之国人常常捡的合不拢嘴。

由于工作的关系,经常和各种不同的软件公司打交道,发现在软件开发管理实践中有众多的开源软件被使用,尤其是测试、配置管理及构建等领域,开源工具往往占据相当大的比例。然而,这些开源软件的使用无论是深度、广度还是使用的规范性,往往都还停留在相对初级的程度。因此,在我们为免费午餐之丰盛欢呼之后,有一些困惑和问题值得我们进行一些深入的思考

捡到篮子里的就是菜了吗?——评估和选择的困惑

面对众多的开源软件,往往有一种挑花眼底感觉,通常在某个特定的领域,会面对N种的选择,当我们打开专门罗列各种开源软件的网站http://www.open-open.com时,在每一个分类下都可以看到一串长长的列表。在我们为客户服务的过程中,也经常会被问到“该选择哪个工具”之类的问题,面对这样的问题,我们往往也是非常的困惑,因为世界上从来没有最好的工具,只有最适合的工具。而且和商业软件不同的是,开源工具的功能性往往并不那么完整,而是往往具有某些偏向性。这就需要在对工具和使用环境充分评估的情况下才能做出最明智的选择,而这种评估机制在大多数情况下是缺位的或不完整的,这在很大程度上影响了开源软件的有效应用。

彼此可望不可及的孤岛——关于工具的整合

开源软件在大多数情况下都是相对独立的而非相互集成的,但我们的软件过程却往往正好相反,例如:测试产生的缺陷如何跟踪、统计和分析,这就涉及到如何在众多的测试工具及缺陷管理工具(如BugZilla)直接搭建数据的桥梁,又如对于处于受控状态(如已经纳入基线或已经发布)代码中所发现的缺陷的修复必须对配置管理中的基线进行更新.....。而现实的状况是:开源软件往往只专注于某一个特定领域的功能,其相互缺乏有机的关联,从而造成了数据的隔离和信息的阻断,使这些工具只能片段的为我们的开发过程提供有限的支持。

脑袋指挥脚还是脚指挥脑袋——软件过程和工具的关系

大多数企业在使用开源软件的时候,通常是在某个或某些点上,分散的(而不是整合的)在使用,而使用的时候,大多数的情况下并没有什么相应的过程规范,即便有也是由工具本身的一些特性所驱动的,而非根据有针对性的,完整的软件过程而来。这就好比是在用脚指挥大脑,而不是大脑在指挥脚。无论再好的软件,其使用的目的是为了解决问题,而要完整而有效的解决问题,首先是应该满足于软件过程的要求,其次才是满足功能性的需求,离开软件过程单独的讨论软件的使用没有任何意义。

回归——商业?
当我们陶醉于免费午餐的盛大而慷慨之时,也许我们并未留意到我们是否有足够强健的肠胃来消化这顿摆在我们面前的盛宴,要真正用好一个工具并非简单下载并执行一个安装包那么简单,例如Rational的系列工具,除了各个工具先天的无缝连接外,还通过巨量的文档提供了完整的部署、实施和使用的帮助,此外,对于某些特定的过程,还提供了和工具配套的方法模型——UCM。这才构成了一个相对完整的解决方案。这些都是开源系统所不具备的。

显然,这些貌似可爱的洋鬼子也并非是现代的活雷锋,Collabnet在大力资助Subversion开发的同时,也适时的推出了基于同样技术的完整的商业解决方案,并以不菲的价格向市场推广。而开源软件相关的培训和咨询者国外更是一个非常庞大的市场。也许开源运动的原教旨主义者们会强烈鄙视商业服务向开源领域的渗透,但不可否认的是,要让开源软件走出技术人员的小圈子而真正在企业级环境下得到应有,就不可避免的需要各种商业服务的支持

Technorati 标签: 开源,软件工程
原创粉丝点击