开源平台的开发效率
本文没有太多技术细节,是给项目管理人员和决策人员看的,技术人员请略过,不要耽误您的时间。
由于业内搬砖时间较长,我在使用开源平台之前使用商业平台的时间也很长。最近由于工作需要,我们将开源GIS平台和商业GIS平台的优、劣式进行了一些对比,过程中发现:其实开源平台相比商业平台一个重要的缺点不是产品质量、软件效率或其它网上常说的一些问题,而是开发效率。(当然我们这里只讨论实战的开发,学校里自己学习另当别论,那个随你怎么玩都行)
以QGIS为例,经常看到很多壮志凌云的高手自己编译最新QGIS版本,经过几个星期甚至几个月的漫长艰苦编译过程后,再慢慢学习如何使用QGIS提供的接口来开发应用,而且应用开发中在还得不断修正QGIS本身的BUG和不足。
其实有实际项目经验的人都知道,这些做法在实际做项目的情况下几乎是不可能的,做过项目的都知道:大部分项目都是以一年为期限,大项目会分割为好几期,然后一年做一期。基本上每个月都要给用户汇报实质性的进展成果,如果按照前面提到的开发进度开展这项目不但是成本超支而且最后很可能最后做黄了。
所以使用开源平台不能只从开发人员角度去看,更应该从全局角度来看。这当然就需要决策者既要懂的商业逻辑同时也要了解技术细节,不能被年轻人的一腔热血和冲天干劲所蒙蔽,不要让自己的重要项目成为别人技术积累的试验品。
本来由于开源软件本身文档支持不是很好,需要通过很多渠道查找,这样开发效率自然比商业软件低,但这个还基本可以克服,而且随着使用的增多相关技术文档也会不断增多。
但有些人居然还像商业软件一样使用开源最新版本,而且重新自己编译,没有任何前期积累和准备就像商业软件一样拿来就用。这样我们缺了开源软件的前期测试、技术准备、产品打包、环境搭建、技术熟悉等许多环节。这就像我们在饭店里等着吃饭,服务员告诉你米饭还没种出来一样,这样来得及吗?
这样的事情发生多了,就会造成了很多用户宁肯用盗版也不愿意使用开源的软件,因为基本不知道你啥时候能做出来,能不能做出来。
更可怕的是许多学校气息严重的人或单位会把软件开发当成是一种研究过程而不是一个工程。但他们不明白这两者有本质的区别,区别在于研究是没有期限并且可以失败的,而工程是有期限而且基本不容许失败的。对于一般普通技术人员来说开发不出来大不了不干了换个公司,可对于决策层或公司来说项目失败代表你在这个行业将失去信誉、公司丢掉市场、客户方面主要负责人被处分。我们以前做项目的时候基本上是1/3的时间做开发,其它时间基本上是等客户或配合客户完成项目的其他工作,所以技术及平台软件基本上是需要成熟且准备充分的。
当然我本身现在搞开源,我绝对不是劝大家不要用开源平台,而是劝您要选用可行的技术方案、平台或找有比较成熟技术方案的人或公司合作。其实我觉得科技行业和其他行业没有区别,这里一样需要不忽悠脚踏实地一步步走,持之以恒的慢慢积累、一点一点的进步;更需要和别人合作分工,互利共赢。而不是说你有一个新想法,然后凭着自己体力好,一个月加班不睡觉就能把所有事情搞成的。
本来作为一名技术人员不应该说这些,大部分技术人员都是勤勤恳恳、实实在在的耕作者,也都本着实事求是的技术精神。但由于环境影响,也有很多人对技术了解一些皮毛就到处忽悠,吹嘘一些自己完全不了解的技术或解决方案。具体在实际工作中的表现是:有很多人在老大面前吹的无所不能,回头就去大神!大神!的求别人给解决方案,要不来解决方案就去把责任推到其他人或支撑软件平台身上。总之不是他自己的问题,而是…...原因,结果搞得非技术人员都不知道该相信什么,不相信什么。更可怕的是如果这个技术忽悠是技术负责人或团队领导,这样会造成整个团队无休止的加班和项目无限期的拖延,而成果和进展却几乎没有。用“将帅无能,累死千军”描述他们再贴切不过了。
就像当前某科技企业企一样估计领导也是被这样的技术忽悠给蒙蔽了,以为真的是完全自主创新了,结果潮水退去真相就出来了,但最后担责是谁呢,肯定不是那帮忽悠,他们早想好后路了。
总之IT行业其实和其它行业其实没什么区别,都需要点点滴滴的积累才能真正做出属于自己的好东西。那些招几个年轻的帅哥美女,租一个写字楼,然后搞几台电脑,喝几杯咖啡,加几晚上班就说自己是科技了创新了。我觉得这是拍电影不是现实。我们不能把电影或梦里的情节当现实,否则醒来后会很痛苦。