自主开发与带兵打仗两个好似毫不相干的东西在最近的工作中越来越觉得两者有着越来越多的相似之处。好吧说说目前的情况,我公司是个集团下属的IT公司,有几十名自己的研发团队。有比较多自主开发失败的情况,所以公司内部老是在讨论我们到底是应该自己开发还是直接外购系统或外包出去。刚好前一段时间看了《三国》,想想自主开发跟带兵打仗还是有很多相似的地方。
1. 成本高
俗话说“养兵千日,用兵一时”,要培养一支训练有素的军队不容易,它要花费很长时间和大量物力。在企业里面也是一样,一个研发人员的待遇一般可以养得起2-3个业务/行政之类的人员了,因此研发团队成本对一个企业来说是一个不小的负担,对于管理水平低的企业来说更是如此。
2. 风险高
一但决定了要自主开发了那么就需要人力、物力、精力不断的往里投,而且还不见得能能搞出来,搞不好可能搞了百千万进去了最后也没搞出个像样的东西,然后团队一解散,竟然只给公司剩下几台“破”电脑(所谓的代码如果没有人的驾驭是没有价值的,暂且忽略)。打仗也一样,“兵马未动,粮草先行”,仗还没开始打呢就要先运吃穿住的东西了,而且有时投了很大的力气,仗却打败了。
3.心态是一样的
我觉得研发人员很像古代的将士,即所谓的“一将功成万骨枯”,作为将士只有“战死沙场”方显英雄本色,作为研发团队的我们肯定也是通过一个个成功的项目、一个个成功的产品来实现自己的价值,(当然失败的项目和产品大家一般都不会说的,至少在简历里是这样的,呵呵)遇到什么问题很喜欢通过自主开发的方式来解决,当然非研发人员其实更倾向于成熟的产品(如果市面上并且价格还能接受的话),也就是所谓的“外交渠道”来解决问题。
4.相似的“政治”
小时候看故事的时候经常会有这样的情节就是:将帅(主角)在前线拼死拼活的打仗,但是背后朝廷里却有不少人在告状,最终导致“出师未捷身先死,长使英雄泪满襟!”,虽然在企业里没有那么残酷,但是由于不同人员他们所站的位置是不一样的,因此导致了不同的价值观及事情的判断,如果项目进度再遇到点问题那么这种反面的声音就会越来越强烈,而老板可能也会想投了这么多钱却没出啥成果干脆Close掉得了,导致了项目的失败。
以上列举了这么多弊端,凡事都是有两面性的,其实大家是多少有点明白的,不然也不会有这么多的公司有着自己的研发团队,下面来说说好处吧。
1.枪杆子里面出政权
众所周知,如今要在信息化高速发展的信息里如果没有自己靠得住的研发团队的话是很难在激烈的竞争中取得优势的,特别是对于产品或研发型的公司。所谓的“枪杆子里面出政权”,就是“只有掌握自己的武装力量才能以革命的武装反对反革命的武装”,你看那些成功的大的公司哪家没有几百上千号人的研发团队,他们能在本行业的信息化、互联网化当中不断的取得先机与主动,拼的就是的研发啊!所谓的外包、最佳实践都是忽悠的,信息化走在前头的公司都清楚,其实这些都是只能参考而以,本行业的信息化还是自己最清楚。
2.打下来的才是牢靠的
从很多故事里我们了解打的要比谈的靠谱,如果产品是自己研发出来的那么肯定也比直接外购的考谱(当然我说的是投入是差不多一个水平上的,你别说是光投了2个开发的就要跟人家MS的产品去比较)。有源码在手,又是专门定制开发的,团队还能够比较清楚的了解系统。以后想整合的话想改哪就改哪,做过企业应用整合项目的肯定对此都深有体会。
总结
其实之前很多情况下我也是比较主张自主开发的,但是有一次看了一家公司的产品(特定行业),功能无比强大,价格还无比便宜(小几万块钱)。想想之前我们自己开发的一些产品的经验。如果我们想要做出同样功能的话起码成本得贵上十几倍,而且可能还需要有一个相对长点的迭代周期。所以其实无论是自己开发还是外购,其实主要还是要看自己的需求与市场上产品的满足程度,如果确实有很成熟的产品了那么其实外购也无可厚非,如果再想稳妥点的话能把源码给谈下来更好了。那么如果是决定自己开发的话也别什么都是自己做,其实IT真的很贵,用不好会伤身的,当然用得好了可以强身健体。呵呵!