分享
不懂技术的互联网创业公司是选择技术外包还是雇佣技术团队完成产品?
互联网初创公司,前期资金已到位(预算50万),想建立一个垂直传媒类web网站,目前缺少一套【项目管理,产品,设计,开发(前端后端),测试】方面的人才。咨询过一些外包公司,产品全套下来大约需要30万左右的资金。因为是第一个产品大家都不希望这钱打水漂,很怕遇到前期说大话最后产品质量不过关的问题。在外包平台(开源中国,程序员客栈,实现网等)上也看到可以雇佣一些从事自由职业的技术人才的信息,如果找他们的话说不定还能顺其自然发展成一个全能团队,但大家都不懂技术而且需要逐个与各领域人才做沟通,怕协调不起来。这种情况下我们是给外包做产品还是找人组建一支团队做产品好?
回复 ( 3 )
不知道题主为啥邀请我啊,我的知乎还是空白的:)不过,巧合的是,我最近刚写了一篇文章,就是关于外包的,希望能对题主有所启发。 另外,我的公众号叫做 北纬37度 专注于创业,技术思考,和德州扑克。有兴趣的同学关注我哈。全文如下:
———————————————————————————————————
在笔者最近几年的工作中,总是(大部分时候是被迫)要去做一个选择把整个系统或者其中一部分外包出去开发或者采购。大部分时候,我都是抗拒的。你知道,在一个组织里,如果不是独裁者,是不能简单的拒绝一件事情的。拒绝是需要理由的,而且往往需要和人辩论,这促使我不得不对技术外包进行思考。首先我要定义一下,我这里讨论的技术外包,指的是在IT领域,将一个设想中的软件系统或者已有软件系统中的一个模块给第三方公司去开发,或者采购现有的系统。而人力资源外包(即驻场开发)则不在讨论范围内。
我们不妨先讨论一下外包的好处和坏处。
好处:
一般来说,成本更低。大部分时候,采用外包的成本是更低的。如果要自建团队,现在靠谱的工程师普遍很贵,还得为他们缴纳四金,租赁办公场地以及购买硬件设备和其他福利,以及相应的其他部门人员成本的增加,比如人事和财务。如果项目最终不靠谱,还得计算Cut Off的成本。综合下来,你会发现大部分的外包公司开出的价钱远低于这个成本。
一般来说,更为快速。如果要自建团队,找到靠谱的人需要一定的时间,而且这些人开始开发可能还需要积累经验。而找外包团队或者采购现成的产品,则马上可以开始。
好处不多,但是都颇为关键,还有什么比成本和时间更为重要呢?然而,请注意,我加上了“一般来说”,我不认为这两点好处在任何时候你都能得到。比如,如果你完全不懂IT技术,也不认识靠谱的外包团队,你被人宰一刀,花更多的冤枉钱是完全可能的。比如,外包和你的沟通不畅,双方不能完全理解对方,做出来的系统要一遍又一遍的返工,更快上线也是有很大风险的。比如,为什么外包公司总能开出更低的价钱呢,同样要雇人,同样要缴税,同样要场地,难道他们的管理真的这么厉害,以至于总比人自己开发要便宜?这两点好处能否得到,在什么情况下可以得到,还值得深入讨论,暂且只肤浅举例之。我们再看看外包的坏处和风险:
外包为交付而开发,而不是为长远而开发。你和外包公司之间的合同决定了,外包按合同交付产品,然后通过验收,拿钱。至于以后的事情,则不在关心的范围内。系统有多少坑,内部设计多么不合理,并不关心。只要在外观上,表面上通过验收则可。这完全无可厚非,在商业领域,每个参与者都追求利益最大化。如果外包为长远去设计,那么势必会增加短期内的开发成本,而且他把内部设计得很合理,如果你不懂技术,你也看不到,不会有什么好处。外包这个工作就是通过牺牲长期利益(你的),来使得短期成本(他的)可控。好比小时候,打扫房间,把灰尘扫到看不见的角落以快速完成任务。另外,在激烈竞争的外包开发领域,因为成本,外包公司未必肯花大价钱来招一个靠谱架构设计,这也使得从长远看,系统很糟糕。
外包开发的质量经常达不到你的要求,甚至很烂。如果你把一个项目,比如直播平台放到市场上去找外包,你会发现不同的外包公司报价有时候相差甚远,相差几个数量级都是有可能的。我认为都是合理的,大家对软件交付的理解不一样罢了。拿直播来说,几百万的报价开发一个直播平台是靠谱的,几万块开发一个也是靠谱的。甚至几千块找个学生开发也是可行的。毕竟,直播的服务端技术问题已经被大大小小的服务提供商解决了(包括腾讯,金山,网易等等…),而他们提供的客户端Example甚至已经是一个五脏俱全的直播APP了。如果你总是在寻找更低的报价,你总是可以找到,直到找到那个实习生。质量就可想而知了。此外,即便是大的软件外包服务商,也不可能像互联网公司那样开高薪去招聘最好的工程师,否则他的报价一定要高于其他外包商的。外包说到底是一个关于成本控制的生意。再次,软件开发本身就是不确定性太多的工程活动,需要时时的保持沟通,而保持时时沟通也是外包开发的软肋。
外包做出来的东西可能跟你预想的差很多。很多项目发起者对具体要做什么自己都难以用中国话描述清楚,更何谈用程序员能理解的话去描述。这并不代表他不靠谱,他可能有一定的方向,在业务领域是专家。但成熟的业务模型可能需要时间去改进,也可能需要在前进中逐步迭代,进化和完善。这个时候去找外包开发,很难做到让自己满意。你更需要一个技术合伙人,和你一起成长,当你肚子里的虫子,将你只可意会不可言传的东西领会得彻底。在互联网产品领域,毫不夸张的说,一个按钮的大小,颜色,摆放位置都值得仔细的斟酌考量,差之毫厘谬以千里。所以,你总会觉得外包做出来的东西就是哪里不好,但又说不上来哪里不好。实际上,如果是互联网创业项目,能够精准描述而又不会有变化的项目真的很少很少很少。
我发现有两种项目发起者特别喜欢找外包:
第一种是无知者无畏。他们的口头禅就是,不就是个XXX系统吗,我在淘宝2000块就可以买一个。比如搞一个论坛上线,确实可以免费或者几千块买一个。但问题是,你明白你为什么要个论坛吗?你明白这个买来的论坛能否达到你的目的吗?你理解这些论坛源码的功能和可配置化程度吗?你理解将买来的系统和自己的系统进行对接,用户统一登录的代价吗?很可能超过从零开发一套的代价。P2P最火的时候,把P2P读成P二P的老板们估计有2/3是购买系统草草上线的,这里面绝大部分连简单的记账算账都没做好,这些老板们的解决方案估计是雇了一堆财务在手动进行清算,留下一堆糊涂账和历史遗留问题。
第二种是无知者无奈。很多的创业者就缺一个技术团队,组建一个靠谱的技术团队对他们来说真的很难很难。无奈之下只能寻找外包开发者。
然而,当你在不是很懂的领域从事生意时,如果你觉得自己买贵了,那基本上是买贵了,如果你觉得自己买便宜了,很可能是白花钱了。具体到件外包这项活动,其实是需要非常专业的人才能和外包去打交道,这是因为:
需要非常专业的人去跟外包人员描述和定义好需求。你知道什么能做什么不能做吗?
需要非常专业的人去评估报价。你知道一个功能的报价,开发时间估计是否合理吗?多年的老司机都不敢说自己的判断能否准确。
需要非常专业的人去追踪管理进度。在面对外包人员的要求加时加价时,你知道如何去反驳说服吗?
需要非常专业的人去管理需求变化。如何才能以最小的成本来让外包进行功能界面调整?
需要非常专业的人去管理优先级。优先级的管理不仅要考虑业务需要,要兼顾技术路径依赖。
需要非常专业的人去进行项目验收。很好理解吧,现在普通人买个精装修房子都要请专业房产验收师。在社会分工越来越细化的时代,尊重专业是好事。
写到这里,说外包的不是好像占了大部分篇幅,如果据此认为我是完全拒绝和反对外包的,那就不对了。实际上,几乎每个系统都有外包(或采购)的痕迹。比如你的数据库管理系统不会是自己开发的吧… 在以下这些情况中,符合条件之一,我觉得应该优先考虑外包(或采购):
你要的系统是在一个成熟的领域。比如OA系统,一个已经被研究透了的领域。靠谱的OA系统也支持足够的定制化,完全可以满足一般企业的需求。当然在这个领域,因为产品足够标准化,一般是采购多过于外包。
你要的系统是需要由细分领域非常专业的人才来开发,并且结果是很好衡量的。假设你的系统里要加个特殊车牌号识别,你没有图像识别这个细分领域的人才,那么你可以找外包。在这个例子中,而且外包做出来的系统很好衡量,输入是图片,输出就是车牌号,准确率可以规定到多少。这个时候你应该寻求图像识别这个领域内的外包团队,他们更快更好更便宜,因为专业,因为积累。
需要在某个时间点前快速完成一个系统,质量可以忽略不计。常见于学生交作业,应付领导,找投资者或者试试看等场合。在这种情况下,只要明白后果并且可以承担,找外包来开发也是可以的。
具备非常好的系统架构和若干数量的核心工程师,以及很好的项目经理来追踪项目进度。能把系统划分成足够松耦合的模块,并且每个模块都可以清晰定义功能,定义输入输出。可以并行的把这些模块外包出去来提高开发速度。但是这个条件说来容易,做到其实很难。能够做到这个程度的系统架构师市场上薪水不会低。
而在以下这些领域,则应当优先考虑自建技术团队:
技术驱动的互联网创业。如果你把自己定位为一个以技术为中心的互联网公司,很难想象你的产品居然是外包给你开发的。
需要不断迭代的产品。如果你的产品需要随着时间而不停迭代,外包的方式会让你付出沟通和速度的代价。实际上,几乎所有的互联网项目都是需要不停迭代的。所以,互联网创业者们应该要明白一个道理,在技术方面,你需要的不是一个一次性的系统,而是长久的服务。所以某著名CTO说过,技术总是在短期被高估,在长期内被低估。
需求不明确,需要工程师非常理解业务的产品。你更需要组建一个团队,让你的工程师理解业务领域,只有他们成长了,系统才能成长。
创新的,没有先例的项目。
如果你足够细心,你会发现这篇文章中,一直没有使用确定的语气和词语。一直是“很可能”,“优先”,“很多时候”… 这是因为在信息时代,唯一可以确定的就是不确定性。最后看一个可信度很高的小故事,关于滴滴打车和外包的:
“产品最初是找外包软件公司做的。程维觉得两个月要把产品做好,现招团队是来不及的。他找到的公司要价15万元,被他砍到9万元。对方向他信誓旦旦保证,功能肯定全都实现。程维留了一个心眼,先付款30%,做到一半的时候付款50%,做完验收再付20%。结果那20%永远没付出去。后来,程维了解到这家公司在山东有合作的学校,嘀嘀打车最初的产品是一位中专老师带着几个学生给搞出来的。拿到软件,他到交委演示嘀嘀打车,叫10次车,能响6、7次。不响的时候,大家就盯着该响起来的手机,沉默10秒钟。程维尴尬地把话题岔开。他学乖了,第二次再给人演示的时候,就带上两部手机,哪部响就拿哪部出来。软件外包的同时,他也招聘工程师。工程师一看代码,就说这个水平太差了,基本没法用。他找了好几个大公司出来的工程师,都拒绝了他,“创业公司不确定性太大了,很多人觉得打车软件未必靠谱”。直到后来他遇到原百度研发经理张博。这个漏洞多得跟筛子一样的外包产品让嘀嘀打车的技术部门擦了一年的屁股。程维说:“一分钱一分货,我们对创业者的建议是,宁可慢一点,建立起靠谱的团队后再去做,磨刀不误砍柴工。”
这个故事的信息量还是很大的,阅读理解后:
外包对于程维来说很有收获,帮他做出了第一版,至少有些东西可以演示,想法有了一个载体。如果靠这一版拿到了融资,那么后面擦一年屁股也许是值得的。
程维还是很清醒的,如果滴滴打车在第一版以后,没有自建团队,还会有今天的滴滴打车吗?
其实没有绝对的能或者不能找外包,但你要明白找外包的目的,好处,坏处,准备好应对带来的后果。
滴滴打车最初花费9万元,历时两个月,由外包公司开发出来漏洞多得跟筛子一样的的产品,让后来的嘀嘀打车的技术部门擦了一年的屁股,也让程维深切体会到外包公司之坑。于是程维说道: “一分钱一分货,我们对创业者的建议是,宁可慢一点,建立起靠谱的团队后再去做,磨刀不误砍柴工。”
但是程维说的这条路,并不适合所有的创业者!
首先是时间成本,找核心人员,组建团队,招人等等一系列事情周期太长,偏偏市场留给创业者的时间已经不多了。
其次是金钱成本,很多创业公司是差钱的,不差钱的创业公司是少数。而且就是这些差钱的创业公司,即使他们愿意拿出很多钱来聘请互联网一线的开发人员,这些开发人员因为对创业公司风险的担忧,也不大愿意去。
再其次,很多时候就是创业者对于技术不了解,在他们看来,写代码是一种和搭积木一样逻辑简单的事情。
最后一点,大概是很多创业者高估了外包团队的开发实力也忽略了外包团队的不确定因素。并不是每一个团队都有非常靠谱的队友,大多数情况下,大部分外包团队就是坑。
那么回归到问题本身:创业公司到底是应该采用自建团队开发,还是找技术外包公司合作呢?
曾经看到过一片文章,他的建议是:重技术的公司,一定要组建自己的技术团队;重运营的公司,可以需找外包公司合作。
但是这个建议没有解决根本问题:那就是重技术的公司有钱么?时间耗得起么?重运营的公司选择的外包公司做的产品漏洞百出怎么办?
的确,从长远的角度看,如果要真正做好一个项目,最终还是需要建立自己的技术团队,这样才能减少沟通的成本,严格把控好每一个需求点,并打磨好项目的每一个细节。
但很多自建技术团队创业者,往往还会遇到这样一个问题:那就是产品强开发期过后,占据很大部分成本支出的技术团队,反而成了累赘,创造不了相应价值;如果砍掉,后期产品迭代升级又会面临需求大量技术人员的情况,让广大的创业者无比苦恼。
那是否有一种形式,可以解决创业者的这种苦恼呢?
有,那就是技术VC!
技术VC,顾名思义就是以技术入股的方式达成合作协议,创始人给出相应股份,投资者投入技术成为“技术合伙人”。
做为技术VC,我们在运营过程中,通过期权及现金的形式与企业深度合作,服务于之前在外包成本或自建团队消耗过大资源的初创企业和非技术性企业,为他们提供可靠地技术支持,这样一方面既能减少初创企业在强开发期的人工成本、场地成本、运营成本,又为企业提供长期提供技术服务支持;同时,在企业需求技术人才时可以直接向企业推荐最符合企业技术需求的定向专业性技术人才。
我们不仅仅能为企业解决技术问题,拥有投资背景的优格技术工场还整合了不同渠道资源;在技术、产业方面的支持下,结合资本运作方面丰富经验和强大实力,构建了“技术+VC”完整的投融资创新服务链条,并配合链条设立了优格专属项目基金,从企业初创期到成熟期为不同阶段企业搭建出了一条快速有效的融资通道,为合作企业创新发展进行帮扶与助力。
建议外包,外包可以节省好多成本,规避许多风险。少走弯路